@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2) format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2) format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2) format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-italic-O70d2LGK.woff2) format("woff2"),url(/assets/fraunces-latin-600-italic-BlP2rMdV.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-ext-400-normal-by3JarPu.woff2) format("woff2"),url(/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-ext-600-normal-CAhIAdZj.woff2) format("woff2"),url(/assets/poppins-latin-ext-600-normal-Df5ffKXP.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-ext-700-normal-cby-RkWa.woff2) format("woff2"),url(/assets/poppins-latin-ext-700-normal-DctTR6Tg.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-italic-BwNYOmL7.woff2) format("woff2"),url(/assets/fraunces-latin-ext-600-italic-CZUOs6oU.woff) format("woff")}:root{--plum: #3a1730;--plum-dark: #240e1e;--rose: #d63b6a;--rose-dark: #a8244f;--coral: #ff7a6b;--peach: #ffc2a8;--gold: #e9b44c;--cream: #fff8f3;--brand: var(--rose);--brand-dark: var(--rose-dark);--bg: #fbf1ec;--surface: #ffffff;--surface-2: #f8ebe5;--paper: #fffaf6;--text: var(--plum);--text-muted: #7a5a6c;--border: rgba(58, 23, 48, .1);--accent: var(--rose);--accent-text: #ffffff;--heart: var(--rose);--backdrop: rgba(58, 23, 48, .4);--glass: rgba(255, 255, 255, .74);--glass-border: rgba(255, 255, 255, .6);--active-bg: var(--plum);--active-text: #ffffff;--danger: #c4321f;--sticker-peach: #ffe1d3;--sticker-gold: #fde9b8;--sticker-rose: #fcd9e3;--sticker-lilac: #ecdff3;--love-gradient: linear-gradient(140deg, var(--coral) 0%, var(--rose) 52%, #8e2a5c 100%);--love-glow: 0 22px 40px -20px rgba(214, 59, 106, .75);--focus: var(--coral);--shadow-sm: 0 1px 2px rgba(58, 23, 48, .04), 0 4px 16px -8px rgba(58, 23, 48, .16);--shadow-md: 0 2px 4px rgba(58, 23, 48, .04), 0 16px 32px -16px rgba(58, 23, 48, .3);--shadow-lg: 0 24px 64px -16px rgba(58, 23, 48, .4);--font: Poppins, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: Fraunces, Georgia, "Times New Roman", serif;--weight-regular: 400;--weight-bold: 600;--weight-heavy: 700;--tracking-tight: -.02em;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.875rem;--text-2xl: 2.5rem;--text-hero: 4rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 12px;--radius-md: 20px;--radius-lg: 28px;--radius-pill: 999px;--dock-height: 116px;--content-max: 720px;--ease-spring: cubic-bezier(.2, .9, .25, 1.15);--ease-out: cubic-bezier(.2, .8, .2, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1a0d16;--surface: #2a1524;--surface-2: #3a1d32;--paper: #2e1728;--text: #fbefea;--text-muted: #c9a9b8;--border: rgba(251, 239, 234, .09);--heart: #ff5c8a;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(42, 21, 36, .76);--glass-border: rgba(251, 239, 234, .09);--active-bg: var(--cream);--active-text: var(--plum);--danger: #ff8a7a;--sticker-peach: #44202f;--sticker-gold: #3d2e1c;--sticker-rose: #4a1b2f;--sticker-lilac: #33213f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--focus: var(--peach);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-theme=dark]{--bg: #1a0d16;--surface: #2a1524;--surface-2: #3a1d32;--paper: #2e1728;--text: #fbefea;--text-muted: #c9a9b8;--border: rgba(251, 239, 234, .09);--heart: #ff5c8a;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(42, 21, 36, .76);--glass-border: rgba(251, 239, 234, .09);--active-bg: var(--cream);--active-text: var(--plum);--danger: #ff8a7a;--sticker-peach: #44202f;--sticker-gold: #3d2e1c;--sticker-rose: #4a1b2f;--sticker-lilac: #33213f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--focus: var(--peach);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=hav]{--plum: #13233a;--plum-dark: #0b1626;--rose: #2b6cb0;--rose-dark: #1e4e85;--coral: #38a3a5;--peach: #9ec5e8;--gold: #e0a43a;--cream: #f3f7fb;--bg: #edf2f7;--surface: #ffffff;--surface-2: #e2e9f1;--paper: #f7f9fc;--text-muted: #56677d;--border: rgba(19, 35, 58, .1);--backdrop: rgba(19, 35, 58, .45);--sticker-peach: #dceaf5;--sticker-gold: #f4e7c9;--sticker-rose: #d9e6f2;--sticker-lilac: #e1e4f1;--love-gradient: linear-gradient(140deg, #38a3a5 0%, #2b6cb0 52%, #1d3461 100%);--love-glow: 0 22px 40px -20px rgba(43, 108, 176, .7);--shadow-sm: 0 1px 2px rgba(19, 35, 58, .05), 0 4px 16px -8px rgba(19, 35, 58, .18);--shadow-md: 0 2px 4px rgba(19, 35, 58, .05), 0 16px 32px -16px rgba(19, 35, 58, .32);--shadow-lg: 0 24px 64px -16px rgba(19, 35, 58, .42)}@media (prefers-color-scheme: dark){:root[data-palette=hav]:not([data-theme=light]){--bg: #0c1420;--surface: #142032;--surface-2: #1b2a40;--paper: #16243a;--text: #e9eff7;--text-muted: #9db0c7;--border: rgba(233, 239, 247, .09);--heart: #5aa2ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(20, 32, 50, .78);--glass-border: rgba(233, 239, 247, .09);--sticker-peach: #1b2d3f;--sticker-gold: #33291a;--sticker-rose: #1a2c44;--sticker-lilac: #23243f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=hav][data-theme=dark]{--bg: #0c1420;--surface: #142032;--surface-2: #1b2a40;--paper: #16243a;--text: #e9eff7;--text-muted: #9db0c7;--border: rgba(233, 239, 247, .09);--heart: #5aa2ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(20, 32, 50, .78);--glass-border: rgba(233, 239, 247, .09);--sticker-peach: #1b2d3f;--sticker-gold: #33291a;--sticker-rose: #1a2c44;--sticker-lilac: #23243f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=skog]{--plum: #1f3328;--plum-dark: #13211a;--rose: #2f7d55;--rose-dark: #1f5c3d;--coral: #8fbf6a;--peach: #cfe3c0;--gold: #d9a441;--cream: #f5f8f2;--bg: #eef3ec;--surface: #ffffff;--surface-2: #e2ebdf;--paper: #f8faf6;--text-muted: #5c6f62;--border: rgba(31, 51, 40, .1);--backdrop: rgba(31, 51, 40, .45);--sticker-peach: #e1eed8;--sticker-gold: #f3e8c8;--sticker-rose: #d8eadf;--sticker-lilac: #e4e8dc;--love-gradient: linear-gradient(140deg, #8fbf6a 0%, #2f7d55 52%, #1c4a37 100%);--love-glow: 0 22px 40px -20px rgba(47, 125, 85, .7);--shadow-sm: 0 1px 2px rgba(31, 51, 40, .05), 0 4px 16px -8px rgba(31, 51, 40, .18);--shadow-md: 0 2px 4px rgba(31, 51, 40, .05), 0 16px 32px -16px rgba(31, 51, 40, .32);--shadow-lg: 0 24px 64px -16px rgba(31, 51, 40, .42)}@media (prefers-color-scheme: dark){:root[data-palette=skog]:not([data-theme=light]){--bg: #0e1712;--surface: #16241b;--surface-2: #1d3024;--paper: #182a1f;--text: #ecf3ee;--text-muted: #a3b9aa;--border: rgba(236, 243, 238, .09);--heart: #6fd39b;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(22, 36, 27, .78);--glass-border: rgba(236, 243, 238, .09);--sticker-peach: #1f3326;--sticker-gold: #33301b;--sticker-rose: #1b3527;--sticker-lilac: #262f22;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=skog][data-theme=dark]{--bg: #0e1712;--surface: #16241b;--surface-2: #1d3024;--paper: #182a1f;--text: #ecf3ee;--text-muted: #a3b9aa;--border: rgba(236, 243, 238, .09);--heart: #6fd39b;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(22, 36, 27, .78);--glass-border: rgba(236, 243, 238, .09);--sticker-peach: #1f3326;--sticker-gold: #33301b;--sticker-rose: #1b3527;--sticker-lilac: #262f22;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=solnedgang]{--plum: #3b1f3f;--plum-dark: #26122a;--rose: #d9542c;--rose-dark: #a83d1c;--coral: #ffa94d;--peach: #ffd1a8;--gold: #f2c14e;--cream: #fff7ef;--bg: #fdf0e6;--surface: #ffffff;--surface-2: #f9e3d4;--paper: #fffaf4;--text-muted: #80606f;--border: rgba(59, 31, 63, .1);--backdrop: rgba(59, 31, 63, .45);--sticker-peach: #ffe2cc;--sticker-gold: #fdeab5;--sticker-rose: #fcd8d0;--sticker-lilac: #eadcf0;--love-gradient: linear-gradient(140deg, #ffa94d 0%, #d9542c 52%, #8a3b78 100%);--love-glow: 0 22px 40px -20px rgba(217, 84, 44, .7);--shadow-sm: 0 1px 2px rgba(59, 31, 63, .05), 0 4px 16px -8px rgba(59, 31, 63, .18);--shadow-md: 0 2px 4px rgba(59, 31, 63, .05), 0 16px 32px -16px rgba(59, 31, 63, .32);--shadow-lg: 0 24px 64px -16px rgba(59, 31, 63, .42)}@media (prefers-color-scheme: dark){:root[data-palette=solnedgang]:not([data-theme=light]){--bg: #1a0f14;--surface: #2a1820;--surface-2: #3a2129;--paper: #2e1a22;--text: #fdf0e8;--text-muted: #d0aeb0;--border: rgba(253, 240, 232, .09);--heart: #ff8a5c;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(42, 24, 32, .78);--glass-border: rgba(253, 240, 232, .09);--sticker-peach: #45261e;--sticker-gold: #3d311a;--sticker-rose: #47221f;--sticker-lilac: #35223d;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=solnedgang][data-theme=dark]{--bg: #1a0f14;--surface: #2a1820;--surface-2: #3a2129;--paper: #2e1a22;--text: #fdf0e8;--text-muted: #d0aeb0;--border: rgba(253, 240, 232, .09);--heart: #ff8a5c;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(42, 24, 32, .78);--glass-border: rgba(253, 240, 232, .09);--sticker-peach: #45261e;--sticker-gold: #3d311a;--sticker-rose: #47221f;--sticker-lilac: #35223d;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=lavendel]{--plum: #2e2347;--plum-dark: #1d1630;--rose: #7b5cc4;--rose-dark: #5a3fa0;--coral: #c48fe0;--peach: #d9cdf2;--gold: #e6b450;--cream: #f8f5fd;--bg: #f2eefa;--surface: #ffffff;--surface-2: #e7e0f4;--paper: #faf8fe;--text-muted: #6a6085;--border: rgba(46, 35, 71, .1);--backdrop: rgba(46, 35, 71, .45);--sticker-peach: #ece4f8;--sticker-gold: #f5ead0;--sticker-rose: #e9dff6;--sticker-lilac: #e0e2f5;--love-gradient: linear-gradient(140deg, #c48fe0 0%, #7b5cc4 52%, #3f2d7a 100%);--love-glow: 0 22px 40px -20px rgba(123, 92, 196, .7);--shadow-sm: 0 1px 2px rgba(46, 35, 71, .05), 0 4px 16px -8px rgba(46, 35, 71, .18);--shadow-md: 0 2px 4px rgba(46, 35, 71, .05), 0 16px 32px -16px rgba(46, 35, 71, .32);--shadow-lg: 0 24px 64px -16px rgba(46, 35, 71, .42)}@media (prefers-color-scheme: dark){:root[data-palette=lavendel]:not([data-theme=light]){--bg: #13101e;--surface: #1e1930;--surface-2: #282140;--paper: #211b35;--text: #f0ecfa;--text-muted: #b4aacd;--border: rgba(240, 236, 250, .09);--heart: #b294ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(30, 25, 48, .78);--glass-border: rgba(240, 236, 250, .09);--sticker-peach: #2a2342;--sticker-gold: #35301d;--sticker-rose: #2d2246;--sticker-lilac: #24263f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=lavendel][data-theme=dark]{--bg: #13101e;--surface: #1e1930;--surface-2: #282140;--paper: #211b35;--text: #f0ecfa;--text-muted: #b4aacd;--border: rgba(240, 236, 250, .09);--heart: #b294ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(30, 25, 48, .78);--glass-border: rgba(240, 236, 250, .09);--sticker-peach: #2a2342;--sticker-gold: #35301d;--sticker-rose: #2d2246;--sticker-lilac: #24263f;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=terrakotta]{--plum: #3b2219;--plum-dark: #25150f;--rose: #b9532f;--rose-dark: #8c3b20;--coral: #e08a5a;--peach: #f1c9a9;--gold: #d9a441;--cream: #fbf5ef;--bg: #f6ede5;--surface: #ffffff;--surface-2: #efe0d4;--paper: #fcf7f2;--text-muted: #7a5d50;--border: rgba(59, 34, 25, .1);--backdrop: rgba(59, 34, 25, .45);--sticker-peach: #f6e0d0;--sticker-gold: #f3e6c4;--sticker-rose: #f2d9cf;--sticker-lilac: #e8dfe0;--love-gradient: linear-gradient(140deg, #e08a5a 0%, #b9532f 52%, #6e2f1f 100%);--love-glow: 0 22px 40px -20px rgba(185, 83, 47, .7);--shadow-sm: 0 1px 2px rgba(59, 34, 25, .05), 0 4px 16px -8px rgba(59, 34, 25, .18);--shadow-md: 0 2px 4px rgba(59, 34, 25, .05), 0 16px 32px -16px rgba(59, 34, 25, .32);--shadow-lg: 0 24px 64px -16px rgba(59, 34, 25, .42)}@media (prefers-color-scheme: dark){:root[data-palette=terrakotta]:not([data-theme=light]){--bg: #170e0a;--surface: #261813;--surface-2: #33211a;--paper: #2a1b15;--text: #f8ece4;--text-muted: #c8a999;--border: rgba(248, 236, 228, .09);--heart: #ff8f66;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(38, 24, 19, .78);--glass-border: rgba(248, 236, 228, .09);--sticker-peach: #3d2419;--sticker-gold: #3a2e19;--sticker-rose: #42221a;--sticker-lilac: #322527;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=terrakotta][data-theme=dark]{--bg: #170e0a;--surface: #261813;--surface-2: #33211a;--paper: #2a1b15;--text: #f8ece4;--text-muted: #c8a999;--border: rgba(248, 236, 228, .09);--heart: #ff8f66;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(38, 24, 19, .78);--glass-border: rgba(248, 236, 228, .09);--sticker-peach: #3d2419;--sticker-gold: #3a2e19;--sticker-rose: #42221a;--sticker-lilac: #322527;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}:root[data-palette=midnatt]{--plum: #1a1d3a;--plum-dark: #0f1126;--rose: #4a4fb8;--rose-dark: #33378f;--coral: #8f7be0;--peach: #c9cdf0;--gold: #e8c35a;--cream: #f4f5fc;--bg: #eceef8;--surface: #ffffff;--surface-2: #e0e3f2;--paper: #f8f9fd;--text-muted: #5d6283;--border: rgba(26, 29, 58, .1);--backdrop: rgba(26, 29, 58, .45);--sticker-peach: #e3e6f7;--sticker-gold: #f4ecd0;--sticker-rose: #e1e3f6;--sticker-lilac: #e7e1f5;--love-gradient: linear-gradient(140deg, #8f7be0 0%, #4a4fb8 52%, #1a1d4a 100%);--love-glow: 0 22px 40px -20px rgba(74, 79, 184, .7);--shadow-sm: 0 1px 2px rgba(26, 29, 58, .05), 0 4px 16px -8px rgba(26, 29, 58, .18);--shadow-md: 0 2px 4px rgba(26, 29, 58, .05), 0 16px 32px -16px rgba(26, 29, 58, .32);--shadow-lg: 0 24px 64px -16px rgba(26, 29, 58, .42)}@media (prefers-color-scheme: dark){:root[data-palette=midnatt]:not([data-theme=light]){--bg: #0a0b18;--surface: #131529;--surface-2: #1b1e38;--paper: #15182e;--text: #eef0fb;--text-muted: #a4a9cc;--border: rgba(238, 240, 251, .09);--heart: #9aa3ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(19, 21, 41, .78);--glass-border: rgba(238, 240, 251, .09);--sticker-peach: #1c1f3a;--sticker-gold: #2f2b1b;--sticker-rose: #1d2040;--sticker-lilac: #231f3d;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}}:root[data-palette=midnatt][data-theme=dark]{--bg: #0a0b18;--surface: #131529;--surface-2: #1b1e38;--paper: #15182e;--text: #eef0fb;--text-muted: #a4a9cc;--border: rgba(238, 240, 251, .09);--heart: #9aa3ff;--backdrop: rgba(0, 0, 0, .6);--glass: rgba(19, 21, 41, .78);--glass-border: rgba(238, 240, 251, .09);--sticker-peach: #1c1f3a;--sticker-gold: #2f2b1b;--sticker-rose: #1d2040;--sticker-lilac: #231f3d;--love-glow: 0 22px 40px -20px rgba(0, 0, 0, .8);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 16px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);line-height:1.15}h3{font-size:var(--text-md)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}p{margin:0;line-height:1.5}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--text-muted)}.error{color:var(--danger);font-weight:var(--weight-bold)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--brand)}.page{max-width:var(--content-max);margin:0 auto;padding:calc(var(--safe-top) + var(--space-5)) calc(var(--safe-right) + var(--space-4)) calc(var(--safe-bottom) + var(--dock-height) + var(--space-7)) calc(var(--safe-left) + var(--space-4));display:flex;flex-direction:column;gap:var(--space-5)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card{background:var(--surface);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm)}.center-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:center;padding:calc(var(--safe-top) + var(--space-5)) var(--space-4) calc(var(--safe-bottom) + var(--space-5))}.panel{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-4);text-align:center}.panel form{text-align:left}label{display:flex;flex-direction:column;gap:var(--space-2);font-weight:var(--weight-bold);font-size:var(--text-sm)}input,select{font:inherit;font-size:var(--text-md);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);min-height:48px;width:100%;min-width:0;max-width:100%;box-sizing:border-box}input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{text-align:left}.btn{font:inherit;font-weight:var(--weight-heavy);border:0;border-radius:var(--radius-pill);padding:var(--space-3) var(--space-5);min-height:48px;cursor:pointer;transition:transform .15s var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:default}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--border)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-7) var(--space-4)}.dock{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + var(--space-3));transform:translate(-50%);width:min(calc(100% - 2 * var(--space-3)),440px);height:var(--dock-height);display:grid;grid-template-columns:1fr 1fr auto 1fr 1fr;grid-template-rows:1fr 1fr;align-items:center;gap:2px var(--space-1);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6)}.dock a,.dock__soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;height:100%;padding:2px;border:0;border-radius:var(--radius-sm);background:none;text-decoration:none;color:var(--text-muted);font:inherit;font-size:.68rem;font-weight:var(--weight-bold);cursor:pointer}.dock a span,.dock__soon span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock a svg,.dock__soon svg{width:21px;height:21px;flex:none}.dock a.is-active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.dock__soon{opacity:.45}.dock__soon svg{stroke-dasharray:2 2.5}.dock__heart{grid-column:3;grid-row:1 / span 2;width:62px;height:62px;margin:0 var(--space-1);border:0;border-radius:50%;display:grid;place-items:center;color:var(--accent-text);background:var(--heart);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .2s var(--ease-spring)}.dock__heart svg{width:28px;height:28px}.dock__heart:active{transform:scale(.92)}.dock__heart.is-beating{animation:heartbeat .7s var(--ease-out)}@keyframes heartbeat{0%{transform:scale(1)}25%{transform:scale(1.18)}40%{transform:scale(.96)}60%{transform:scale(1.12)}to{transform:scale(1)}}.book-page{position:relative;background:var(--paper);border-radius:var(--radius-sm) var(--radius-md) var(--radius-md) var(--radius-sm);padding:var(--space-5) var(--space-5) var(--space-5) calc(var(--space-5) + 6px);box-shadow:var(--shadow-sm);overflow:hidden}.book-page:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(90deg,var(--brand-dark),var(--brand));opacity:.85}.logo{display:inline-flex;align-items:center;gap:.28em;font-family:var(--font);font-size:var(--text-2xl);font-weight:var(--weight-heavy);letter-spacing:-.03em;line-height:1;color:var(--text)}.logo em{font-style:normal;color:var(--heart)}.logo__symbol{width:1.1em;height:1em;fill:none;stroke-width:36;stroke-linecap:round}.logo__line-a{stroke:var(--text)}.logo__line-b{stroke:var(--heart)}.stack--tight{gap:var(--space-2)}.text-left{text-align:left}small{font-weight:var(--weight-regular);font-size:var(--text-xs)}.eyebrow{margin:0;font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--heart)}.page-header h1{font-size:var(--text-2xl)}.btn--icon{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn--icon svg{width:20px;height:20px}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.today-head{display:flex;align-items:center;gap:var(--space-4)}.today-head__text{flex:1;min-width:0}.today-head h1{font-size:var(--text-2xl)}.avatars--lg .avatar{width:72px;height:72px;font-size:var(--text-xl)}.avatars--lg .avatar--partner{margin-left:-20px}.avatars--lg .avatars__heart{width:30px;height:30px}.avatars--lg .avatars__heart svg{width:18px;height:18px}.avatars{position:relative;display:flex;flex:none;padding-bottom:4px}.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);color:#fff;border:3px solid var(--bg)}.avatar--me{background:var(--coral);transform:rotate(-8deg)}.avatar--partner{background:var(--rose);margin-left:-14px;transform:rotate(8deg)}.avatars__heart{position:absolute;left:50%;bottom:-4px;transform:translate(-50%);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--heart);box-shadow:var(--shadow-sm)}.avatars__heart svg{width:14px;height:14px}.days-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);padding:var(--space-6) var(--space-5) var(--space-5);border-radius:var(--radius-lg);background:var(--love-gradient);color:#fff;box-shadow:var(--love-glow)}.days-card>:not(.days-card__floaters){position:relative}.days-card__number{font-family:var(--font-display);font-size:4.5rem;font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 4px 18px rgba(58,23,48,.25)}.days-card__label{font-weight:var(--weight-heavy);opacity:.92}.days-card__milestone{width:100%;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#ffffff29;font-size:var(--text-sm);font-weight:var(--weight-bold)}.meter{height:8px;border-radius:var(--radius-pill);background:#ffffff40;overflow:hidden}.meter span{display:block;height:100%;border-radius:inherit;background:var(--cream)}.days-card__floaters svg{position:absolute;bottom:-28px;width:18px;height:18px;color:#ffffff3d;animation:float-up 9s linear infinite}.days-card__floaters svg:nth-child(1){left:8%;animation-delay:0s}.days-card__floaters svg:nth-child(2){left:26%;width:26px;height:26px;animation-delay:-3s;animation-duration:11s}.days-card__floaters svg:nth-child(3){left:52%;width:14px;height:14px;animation-delay:-6s}.days-card__floaters svg:nth-child(4){left:72%;width:30px;height:30px;animation-delay:-1.5s;animation-duration:12s}.days-card__floaters svg:nth-child(5){left:88%;animation-delay:-7.5s;animation-duration:10s}@keyframes float-up{0%{transform:translateY(0) rotate(-12deg);opacity:0}12%{opacity:1}85%{opacity:1}to{transform:translateY(-300px) rotate(14deg);opacity:0}}.btn--light{background:#fff;color:var(--rose-dark)}.sticker{position:relative;background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.sticker--peach{background:var(--sticker-peach)}.sticker--gold{background:var(--sticker-gold);transform:rotate(-1.2deg)}.sticker--rose{background:var(--sticker-rose)}.sticker--lilac{background:var(--sticker-lilac)}.sticker .badge{align-self:flex-start}.nudge-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-4)}.nudge-card .btn{grid-column:1 / -1}.nudge-card__heart{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--heart);box-shadow:var(--shadow-sm);animation:pulse 2.6s var(--ease-out) infinite}.nudge-card__heart svg{width:30px;height:30px}@keyframes pulse{0%,50%,to{transform:scale(1)}12%{transform:scale(1.14)}24%{transform:scale(.98)}36%{transform:scale(1.08)}}.question-card{display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden}.question-card p{max-width:30ch}.question-card__mark{position:absolute;right:var(--space-4);top:-12px;font-family:var(--font-display);font-size:7.5rem;font-weight:var(--weight-bold);line-height:1;color:var(--gold);opacity:.6;transform:rotate(14deg);pointer-events:none}.question-card>:not(.question-card__mark){position:relative}.question-card__top{display:flex;align-items:center;gap:var(--space-3);padding-right:4.5rem}.question-card__title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--text-muted)}.question-card__text{font-family:var(--font-display);font-size:1.45rem;line-height:1.25;max-width:24ch;padding-right:3.5rem}.question-card--compact .question-card__top{padding-right:0}.question-card--compact .question-card__text{font-size:1.15rem;max-width:none;padding-right:0}.question-card__input{font:inherit;font-size:var(--text-md);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;min-height:96px;resize:vertical}.question-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.question-card__hint{font-size:var(--text-sm);color:var(--text-muted)}.answers{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--space-3)}.answer{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere}.answer--partner{box-shadow:inset 3px 0 0 var(--rose)}.answer__who{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.answer p{margin:0}.link-btn{font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:none;letter-spacing:0;color:var(--rose);background:none;border:0;padding:4px 0 4px 8px;cursor:pointer}.more-link{align-self:flex-end;margin-top:calc(-1 * var(--space-2));font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--rose);text-decoration:none}.list-heading{margin-top:var(--space-4);font-size:var(--text-lg)}.badge{align-self:flex-start;padding:4px 10px;border-radius:var(--radius-pill);background:var(--active-bg);color:var(--active-text);font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.06em;text-transform:uppercase}@media (prefers-reduced-motion: reduce){.days-card__floaters svg,.nudge-card__heart{animation:none}.days-card__floaters svg{bottom:auto;top:30%}}.couple-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);border-radius:var(--radius-lg);background:var(--love-gradient);color:#fff;box-shadow:var(--love-glow);text-align:center}.couple-card .avatar{border-color:#ffffffd9}.couple-card .avatar--me{background:var(--peach);color:var(--plum)}.couple-card .avatar--partner{background:var(--gold);color:var(--plum)}.couple-names{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.15}.couple-names__amp{font-style:italic;color:var(--peach)}.pill{padding:6px 14px;border-radius:var(--radius-pill);background:#ffffff2e;font-size:var(--text-sm);font-weight:var(--weight-bold)}.bucket-preview{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bucket-preview li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);font-weight:var(--weight-bold);font-size:var(--text-sm)}.bucket-preview li.is-done{color:var(--text-muted);text-decoration:line-through}.bucket-preview__check{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--heart)}.is-done .bucket-preview__check{background:var(--heart) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat}.date-deck{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding-top:var(--space-3)}.date-deck__card,.date-deck__back{width:min(240px,100%);height:150px;border-radius:var(--radius-md)}.date-deck__back{position:absolute;top:var(--space-3);background:var(--surface);opacity:.55;transform:rotate(-6deg)}.date-deck__back+.date-deck__back{opacity:.8;transform:rotate(4deg)}.date-deck__card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);background:var(--surface);box-shadow:var(--shadow-md);text-align:center}.date-deck__emoji{font-size:2.5rem;line-height:1.1}.date-deck__card small{color:var(--text-muted)}.date-deck__buttons{display:flex;gap:var(--space-5)}.date-deck__no,.date-deck__yes{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:var(--text-lg);font-weight:var(--weight-heavy);box-shadow:var(--shadow-sm)}.date-deck__no{background:var(--surface);color:var(--text-muted)}.date-deck__yes{background:var(--heart);color:#fff}.date-deck__yes svg{width:24px;height:24px}.book-art{position:relative;width:220px;height:200px;margin-bottom:var(--space-3)}.book-art__cover{position:absolute;left:50%;top:20px;width:128px;height:164px;margin-left:-64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border-radius:8px 18px 18px 8px;background:var(--love-gradient);color:#fff;box-shadow:var(--love-glow),inset 8px 0 #3a173040;font-weight:var(--weight-heavy);font-size:var(--text-sm);transform:rotate(-4deg)}.book-art__cover svg{width:40px;height:40px}.book-art__photo{position:absolute;width:64px;height:72px;padding:6px 6px 18px;display:grid;place-items:center;font-size:1.6rem;border-radius:6px;background:var(--surface);box-shadow:var(--shadow-md)}.book-art__photo:before{content:"";position:absolute;top:6px;right:6px;bottom:18px;left:6px;border-radius:3px;z-index:-1}.book-art__photo--a{left:0;top:0;transform:rotate(-14deg);background:var(--sticker-gold)}.book-art__photo--b{right:0;top:18px;transform:rotate(12deg);z-index:1;background:var(--sticker-lilac)}.book-art__photo--c{left:18px;bottom:0;transform:rotate(8deg);z-index:1;background:var(--sticker-peach)}.empty .badge{align-self:center}.notes-card .more-link{margin-top:0}.envelope{font:inherit;position:relative;display:flex;align-items:flex-end;min-height:168px;padding:var(--space-4) var(--space-5);border:0;border-radius:var(--radius-md);background:linear-gradient(160deg,#fff6ef,#ffe1d3);color:var(--plum);text-align:left;cursor:pointer;overflow:hidden;box-shadow:var(--shadow-sm);animation:envelope-wiggle 2.8s ease-in-out infinite}.envelope--small{min-height:150px;animation:none}.envelope__flap{position:absolute;inset:0 0 auto 0;height:50%;background:linear-gradient(160deg,#ffd0bd,#ffb8a0);clip-path:polygon(0 0,100% 0,50% 100%)}.envelope__heart{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--rose);color:#fff;font-size:1.1rem;box-shadow:0 2px 8px #a8244f66}.envelope__text{position:relative;display:flex;flex-direction:column;gap:2px}.envelope__text small{color:#7a5a6c}.envelope:active{transform:scale(.98)}@keyframes envelope-wiggle{0%,84%,to{transform:rotate(0)}88%{transform:rotate(-1.5deg)}92%{transform:rotate(1.5deg)}96%{transform:rotate(-.8deg)}}.note-paper{padding:var(--space-5) var(--space-5) var(--space-4);border-radius:var(--radius-sm);background:repeating-linear-gradient(transparent 0 27px,#d63b6a24 27px,#d63b6a24 28px),#fffdf8;background-position:0 14px;color:var(--plum);box-shadow:var(--shadow-sm);transform:rotate(-.6deg);animation:note-in .45s var(--ease-spring)}.note-paper:nth-of-type(2n){transform:rotate(.5deg)}.note-paper__body{margin:0;font-family:var(--font-display);font-size:1.2rem;line-height:28px;white-space:pre-wrap;overflow-wrap:anywhere}.note-paper footer{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);font-size:var(--text-sm);color:#7a5a6c}.note-paper footer span{font-weight:var(--weight-bold);color:var(--rose-dark)}.note-paper--compact .note-paper__body{font-size:1rem;line-height:28px}@keyframes note-in{0%{opacity:0;transform:translateY(8px) rotate(-3deg) scale(.96)}}.note-input{font-family:var(--font-display);font-size:1.1rem}.note-sent{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-3) 0}.note-sent>span{font-size:2.4rem;animation:note-in .5s var(--ease-spring)}.note-pending{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.note-pending p{margin:var(--space-1) 0 0;color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere}.note-pending .btn{flex:none}.letter-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:center;background:#240e1e99;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:letter-fade .3s ease-out}.letter-stage{position:relative;width:min(88vw,360px);height:100%}.letter-envelope{position:absolute;left:0;right:0;bottom:calc(var(--safe-bottom) + 16vh);height:200px;perspective:900px}.letter-envelope__back,.letter-envelope__front,.letter-envelope__flap-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.letter-envelope__back{border-radius:14px;background:#f7b39b;box-shadow:0 18px 40px #0000004d}.letter-envelope__front{z-index:4;border-radius:14px;background:linear-gradient(160deg,#fff6ef,#ffe1d3);clip-path:polygon(0 26%,50% 64%,100% 26%,100% 100%,0 100%)}.letter-envelope__flap{position:absolute;left:0;right:0;top:0;height:64%;z-index:3;transform-origin:top center;background:linear-gradient(160deg,#ffd0bd,#ffb8a0);clip-path:polygon(0 0,100% 0,50% 100%);animation:letter-flap .6s ease-in-out .15s forwards}.letter-envelope__seal{position:absolute;left:50%;bottom:6%;transform:translate(-50%);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--rose);color:#fff;animation:letter-fade .2s ease-in .25s reverse forwards}.letter-envelope__slot{position:absolute;left:7%;right:7%;bottom:14px;height:90vh;z-index:2;overflow:hidden;pointer-events:none}.letter-envelope__letter{position:absolute;left:0;right:0;bottom:0;transform:translateY(105%);animation:letter-rise 1s cubic-bezier(.2,.8,.2,1) .6s forwards;pointer-events:auto}.letter-envelope__letter .note-paper{max-height:48vh;overflow:auto;animation:none;transform:rotate(-1deg);box-shadow:0 10px 30px #00000040}.letter-drop{animation:letter-drop .6s ease-in 1.7s forwards}.letter-actions{position:absolute;left:0;right:0;bottom:calc(var(--safe-bottom) + 16vh + 40px);display:flex;justify-content:center;gap:var(--space-3);opacity:0;pointer-events:none;animation:letter-show .4s ease-out 2.2s forwards}@keyframes letter-fade{0%{opacity:0}}@keyframes letter-flap{0%{transform:rotateX(0);z-index:3}49%{z-index:3}50%{z-index:1}to{transform:rotateX(180deg);z-index:1}}@keyframes letter-rise{to{transform:translateY(-200px)}}@keyframes letter-drop{to{transform:translateY(45vh) rotate(4deg);opacity:0}}@keyframes letter-show{to{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion: reduce){.envelope,.note-paper,.note-sent>span{animation:none}}.mood-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2)}.mood-picker button{font:inherit;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;min-height:64px;border:0;border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .15s var(--ease-spring),background .15s}.mood-picker button span{font-size:1.6rem;line-height:1.1}.mood-picker button small{font-size:.68rem;font-weight:var(--weight-bold)}.mood-picker button:active{transform:scale(.92)}.mood-picker button.is-on{background:var(--active-bg);color:var(--active-text);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.mood-partner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.mood-partner p{margin:0}.mood-partner__emoji{font-size:2.2rem;line-height:1}.mood-partner__note{font-style:italic;overflow-wrap:anywhere}.mood-card>.btn--small{align-self:flex-start}.mood-note{display:flex;gap:var(--space-2);align-items:center}.mood-note input{flex:1}.mood-note .btn{flex:none}.date-proposal__buttons{display:flex;flex-wrap:wrap;gap:var(--space-3)}.date-proposal__buttons .btn{flex:1 1 auto}.date-proposal--mine{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.date-proposal--mine p{flex:1 1 12rem;margin:0;color:var(--text-muted)}.btn--small{min-height:36px;padding:var(--space-2) var(--space-4)}.days-card__waiting{position:relative;max-width:16rem;text-align:center;font-weight:var(--weight-bold)}.section-title{display:flex;align-items:center;gap:var(--space-3)}.section-title__icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--surface);font-size:1.1rem}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-weight:var(--weight-bold);font-size:var(--text-sm)}.segmented{display:flex;flex-wrap:wrap;gap:var(--space-2)}.segmented button{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);min-height:44px;padding:var(--space-2) var(--space-4);border:0;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .15s var(--ease-spring),background .15s}.segmented button:active{transform:scale(.95)}.segmented button.is-on{background:var(--active-bg);color:var(--active-text)}.segmented button.segmented__soon{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;opacity:.7;cursor:default;border:1.5px dashed var(--text-muted);background:transparent}.segmented button.segmented__soon:active{transform:none}.segmented__soon small{font-size:.7rem;font-weight:var(--weight-regular)}.icon-btn{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-spring)}.icon-btn:active{transform:scale(.92) rotate(-20deg)}.icon-btn svg{width:22px;height:22px}.welcome{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.welcome__hero{--text: var(--cream);--heart: #ff5c8a;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:36dvh;padding:calc(var(--safe-top) + var(--space-7)) var(--space-5) calc(var(--space-7) + var(--space-5));background:radial-gradient(circle at 15% 15%,rgba(255,92,138,.35),transparent 45%),radial-gradient(circle at 90% 85%,rgba(255,122,107,.3),transparent 45%),var(--plum);color:var(--cream);text-align:center}.welcome__hero h1{position:relative;font-size:2.75rem}.welcome__hero p{position:relative;max-width:30ch;opacity:.85}.welcome__floaters svg{position:absolute;bottom:-30px;width:20px;height:20px;color:#ff5c8a59;animation:float-up 10s linear infinite}.welcome__floaters svg:nth-child(1){left:6%;animation-delay:-1s}.welcome__floaters svg:nth-child(2){left:22%;width:30px;height:30px;animation-delay:-6s;animation-duration:13s;color:#ff7a6b59}.welcome__floaters svg:nth-child(3){left:40%;width:14px;height:14px;animation-delay:-3s}.welcome__floaters svg:nth-child(4){left:62%;width:24px;height:24px;animation-delay:-8s;animation-duration:12s;color:#fff8f333}.welcome__floaters svg:nth-child(5){left:78%;animation-delay:-4.5s}.welcome__floaters svg:nth-child(6){left:92%;width:28px;height:28px;animation-delay:-10s;animation-duration:14s;color:#e9b44c4d}.welcome__sheet{position:relative;flex:1;width:100%;max-width:480px;margin:calc(-1 * var(--space-6)) auto 0;padding:var(--space-6) calc(var(--safe-right) + var(--space-4)) calc(var(--safe-bottom) + var(--space-6)) calc(var(--safe-left) + var(--space-4));display:flex;flex-direction:column;gap:var(--space-4);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg)}.logo--draw .logo__line-a,.logo--draw .logo__line-b{stroke-dasharray:520;stroke-dashoffset:520;animation:draw-line 1.3s var(--ease-out) .2s forwards}.logo--draw .logo__line-b{animation-delay:.45s}@keyframes draw-line{to{stroke-dashoffset:0}}.label-title{font-family:var(--font-display);font-size:var(--text-md)}.btn--dark{background:var(--active-bg);color:var(--active-text)}.code-tiles{display:flex;justify-content:center;gap:6px;margin:var(--space-1) 0}.code-tiles span{width:42px;height:52px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--text-lg);font-weight:var(--weight-heavy);color:var(--heart);-webkit-user-select:all;user-select:all}.code-tiles span:nth-child(odd){transform:rotate(-3deg)}.code-tiles span:nth-child(2n){transform:rotate(3deg)}.code-input--big{font-size:var(--text-xl);font-weight:var(--weight-heavy);text-align:center;min-height:64px}.invite{align-items:center;text-align:center}.code-input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.18em;text-transform:uppercase}.code-input::placeholder{font-family:var(--font);letter-spacing:normal;text-transform:none}.waiting{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.waiting__dot{width:10px;height:10px;border-radius:50%;background:var(--heart);animation:pulse-dot 1.4s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.divider{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.heart-rain{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:20}.heart-rain span{position:absolute;top:-60px;opacity:0;animation:heart-fall linear forwards;filter:drop-shadow(0 2px 4px rgba(58,23,48,.18))}.heart-rain svg{width:100%;height:100%}@keyframes heart-fall{0%{transform:translate(0) rotate(0) scale(.6);opacity:0}10%{opacity:1;transform:translateY(10vh) rotate(calc(var(--spin) * .2)) scale(1)}50%{transform:translate(var(--sway),55vh) rotate(var(--spin))}85%{opacity:1}to{transform:translate(calc(var(--sway) * -.4),calc(100vh + 80px)) rotate(calc(var(--spin) * -.5));opacity:0}}.toast{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + var(--dock-height) + var(--space-5));transform:translate(-50%);max-width:calc(100vw - 2 * var(--space-4));width:max-content;text-align:center;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);background:var(--active-bg);color:var(--active-text);font-weight:var(--weight-bold);box-shadow:var(--shadow-lg);animation:toast-in .3s var(--ease-spring);z-index:10}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.dock__heart.is-beating,.welcome__floaters svg,.waiting__dot,.toast{animation:none}.heart-rain{display:none}.logo--draw .logo__line-a,.logo--draw .logo__line-b{animation:none;stroke-dashoffset:0}}.advent-card{position:relative;padding:var(--space-5);border-radius:var(--radius-lg);color:#fff;background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.18) 0 2px,transparent 3px),radial-gradient(circle at 78% 10%,rgba(255,255,255,.14) 0 2px,transparent 3px),radial-gradient(circle at 90% 62%,rgba(255,255,255,.12) 0 2px,transparent 3px),radial-gradient(circle at 40% 88%,rgba(255,255,255,.12) 0 2px,transparent 3px),linear-gradient(155deg,#1f5a40,#173d2e,#3a1730);box-shadow:var(--shadow-md)}.advent-card .section-title__icon{background:#ffffff29}.advent-card p{margin:0}.advent-card .muted{color:#ffffffbf}.advent-link{text-decoration:none}.advent-link .btn{align-self:flex-start;display:inline-flex;align-items:center}.advent-hint{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:#ffffff24;font-weight:var(--weight-bold);animation:note-in .35s var(--ease-spring)}.advent-progress{align-self:flex-start;background:var(--surface)}.advent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}@media (min-width: 560px){.advent-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.advent-door{--door: #c8324a;--door-text: #fff;font:inherit;position:relative;aspect-ratio:1;padding:0;border:0;border-radius:var(--radius-sm);background:#00000047;color:inherit;perspective:400px;cursor:pointer}.advent-door--green{--door: #2f7d4f}.advent-door--gold{--door: #e9b44c;--door-text: var(--plum)}.advent-door--plum{--door: #7a2a5c}.advent-door__leaf{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:inherit;background:var(--door);color:var(--door-text);box-shadow:inset 0 0 0 4px #ffffff29,inset 0 0 0 5px #00000014,0 2px 6px #00000038;transform-origin:left center;transition:transform .5s var(--ease-out)}.advent-door__number{font-family:var(--font-display);font-weight:var(--weight-heavy);font-size:1.6rem;line-height:1}.advent-door__mark{position:absolute;top:6px;right:8px;font-size:var(--text-xs);font-weight:var(--weight-heavy)}.advent-door__inside{position:absolute;top:4px;right:4px;bottom:4px;left:4px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#fffdf8;font-size:1.3rem}.advent-door.is-open .advent-door__leaf{transform:rotateY(-72deg)}.advent-door.is-empty{background:transparent}.advent-door.is-empty .advent-door__leaf{background:transparent;color:inherit;box-shadow:none;border:2px dashed currentColor;opacity:.45}.advent-door.is-ready .advent-door__leaf{animation:door-ready 2.2s ease-in-out infinite}.advent-door.is-today{outline:3px solid var(--gold);outline-offset:2px}.advent-door:active .advent-door__leaf{transform:scale(.95)}.advent-door.is-open:active .advent-door__leaf{transform:rotateY(-72deg) scale(.95)}@keyframes door-ready{0%,to{box-shadow:inset 0 0 0 4px #ffffff29,0 0 #e9b44ce6}50%{box-shadow:inset 0 0 0 4px #ffffff29,0 0 0 7px #e9b44c00;transform:rotateY(-8deg)}}.advent-today{font:inherit;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border:0;border-radius:var(--radius-md);background:#ffffff1f;color:#fff;text-align:left;cursor:pointer}.advent-today .envelope__text small{color:#ffffffbf}.advent-today__door{flex:none;width:68px;height:68px;display:grid;place-items:center;border-radius:var(--radius-sm);background:#c8324a;font-family:var(--font-display);font-weight:var(--weight-heavy);font-size:1.8rem;box-shadow:inset 0 0 0 4px #ffffff2e,0 0 0 3px var(--gold);animation:envelope-wiggle 2.8s ease-in-out infinite}.advent-today:active{transform:scale(.98)}.advent-paper{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-md);background:#fffdf8;color:var(--plum);box-shadow:var(--shadow-md)}.advent-paper__day{font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--rose-dark)}.advent-paper__drawing{border-radius:var(--radius-sm);background:#fff;box-shadow:inset 0 0 0 1px #3a173014}.advent-paper__body{margin:0;font-family:var(--font-display);font-size:var(--text-lg);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.advent-paper footer{align-self:flex-end;font-weight:var(--weight-bold);color:#7a5a6c}.drawing{display:block;width:100%;height:auto;aspect-ratio:1}.drawing path{fill:none;stroke-linecap:round;stroke-linejoin:round}.drawing-pad__surface{position:relative;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.drawing-pad__canvas{border-radius:var(--radius-md);background:#fffdf8;box-shadow:inset 0 0 0 1px #3a17301f;touch-action:none;cursor:crosshair}.drawing-pad__hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0;color:#7a5a6c;pointer-events:none}.drawing-pad__tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.drawing-pad__colors{display:flex;gap:var(--space-2)}.drawing-pad__color,.drawing-pad__width{width:34px;height:34px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface);cursor:pointer;transition:transform .15s var(--ease-spring)}.drawing-pad__color.is-on,.drawing-pad__width.is-on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--text)}.drawing-pad__width span{border-radius:50%}.drawing-pad__actions{display:flex;gap:var(--space-2);margin-left:auto}.sheet-backdrop,.advent-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:var(--backdrop);animation:letter-fade .25s ease-out}.sheet,.advent-sheet{width:min(560px,100%);max-height:94dvh;overflow-y:auto;padding:var(--space-5) var(--space-4) calc(var(--space-5) + var(--safe-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg);box-shadow:var(--shadow-lg);animation:sheet-up .35s var(--ease-out)}.advent-sheet__head{display:flex;align-items:center;gap:var(--space-3)}.advent-sheet__head h2{margin:0}.advent-sheet__number{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:var(--radius-sm);background:#c8324a;color:#fff;font-family:var(--font-display);font-weight:var(--weight-heavy);font-size:1.5rem;box-shadow:inset 0 0 0 3px #ffffff2e}.advent-sheet__buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.advent-sheet__delete{margin-left:auto;color:var(--danger)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.advent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:calc(var(--space-5) + var(--safe-top)) var(--space-4) calc(var(--space-5) + var(--safe-bottom));overflow-y:auto;background:radial-gradient(circle at 50% 30%,#1f5a40f0,#1a0d16f7);animation:letter-fade .3s ease-out}.advent-stage{position:relative;width:min(380px,100%);display:flex;flex-direction:column;gap:var(--space-5)}.advent-stage__frame{position:relative;perspective:1000px}.advent-stage__leaf{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:var(--radius-md);background:#c8324a;color:#fff;font-family:var(--font-display);font-weight:var(--weight-heavy);font-size:5rem;box-shadow:inset 0 0 0 8px #ffffff29,0 0 0 4px var(--gold),var(--shadow-lg);transform-origin:left center;backface-visibility:hidden;animation:advent-leaf 1.1s cubic-bezier(.5,0,.3,1) .5s forwards}.is-animated .advent-stage__content{animation:advent-content .8s var(--ease-spring) .9s backwards}.is-animated .advent-stage__actions{animation:letter-fade .4s ease-out 1.6s backwards}.advent-stage__actions{display:flex;justify-content:center}@keyframes advent-leaf{0%{transform:rotateY(0)}15%{transform:rotateY(12deg)}75%{opacity:1}to{transform:rotateY(-115deg);opacity:0}}@keyframes advent-content{0%{transform:scale(.88)}to{transform:scale(1)}}.advent-snow{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.advent-snow span{position:absolute;top:-2rem;color:#fffc;animation:advent-snow 4.5s linear infinite}@keyframes advent-snow{to{transform:translate(30px,110vh) rotate(200deg)}}@media (prefers-reduced-motion: reduce){.advent-door.is-ready .advent-door__leaf,.advent-today__door,.advent-sheet,.advent-hint{animation:none}.advent-snow{display:none}}.advent-test{background:var(--gold);color:var(--plum)}.advent-test a{color:inherit}.scrap{font:inherit;position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);border:0;border-radius:6px;background:#fffdf8;color:var(--plum);text-align:left;box-shadow:var(--shadow-sm);transform:rotate(-1.5deg);cursor:pointer;transition:transform .2s var(--ease-spring)}.scrap:before{content:"";position:absolute;top:-8px;left:50%;width:52px;height:16px;margin-left:-26px;background:#e9b44cb3;transform:rotate(-3deg)}.scrap--mine:before{background:#d63b6a73}.scrap:nth-child(2n){transform:rotate(1.4deg)}.scrap:active{transform:scale(.97)}.scrap .drawing{border-radius:4px;background:#fff}.scrap__body{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--font-display);font-size:var(--text-sm);line-height:1.4;overflow-wrap:anywhere}.scrap__from{align-self:flex-end;font-size:var(--text-xs);font-weight:var(--weight-bold);color:#7a5a6c}.collection-pile{position:relative;height:180px;margin:var(--space-2) 0}.collection-pile .scrap{position:absolute;top:10px;width:116px;max-height:160px;overflow:hidden;pointer-events:none}.collection-pile .scrap:nth-child(1){left:0;transform:rotate(-8deg)}.collection-pile .scrap:nth-child(2){left:18%;top:22px;transform:rotate(4deg)}.collection-pile .scrap:nth-child(3){left:38%;top:0;transform:rotate(-3deg)}.collection-pile .scrap:nth-child(4){left:56%;top:26px;transform:rotate(7deg)}.collection-pile .scrap:nth-child(5){right:0;top:6px;transform:rotate(-5deg)}.collection-card .btn{align-self:flex-start}.scrapbook{display:flex;flex-direction:column;gap:var(--space-6)}.scrapbook__day h3{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4)}.scrapbook__number{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-sm);background:#c8324a;color:#fff;font-family:var(--font-display);box-shadow:inset 0 0 0 3px #ffffff2e}.scrapbook__day:nth-child(2n) .scrapbook__number{background:#2f7d4f}.scrapbook__scraps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--space-4)}.memory-add{align-self:flex-start}.chapter__head{display:flex;flex-direction:column;gap:2px}.chapter__head h2{margin:0;text-transform:capitalize}.chapter__number{font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}.memory-card{font:inherit;display:flex;flex-direction:column;gap:var(--space-3);width:100%;border:0;color:var(--text);text-align:left;cursor:pointer;transition:transform .15s var(--ease-out)}.memory-card:active{transform:scale(.98)}.memory-card__text{display:flex;flex-direction:column;gap:2px}.memory-card__text strong{font-family:var(--font-display);font-size:var(--text-lg)}.memory-card__text small{color:var(--text-muted)}.memory-card__note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:var(--space-1)}.memory-collage{display:grid;gap:4px;height:200px;border-radius:var(--radius-sm);overflow:hidden}.memory-collage--2{grid-template-columns:1fr 1fr}.memory-collage--3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.memory-collage--3 .memory-collage__photo:first-child{grid-row:1 / 3}.memory-collage__photo{position:relative;background:var(--surface-2);min-height:0}.memory-collage__photo img,.memory-photos__item img,.memory-form__photo img,.on-this-day__photo img{display:block;width:100%;height:100%;object-fit:cover}.memory-collage__more{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#3a173073;color:#fff;font-weight:var(--weight-heavy);font-size:var(--text-lg)}.memory-photos{display:flex;gap:var(--space-3);margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.memory-photos::-webkit-scrollbar{display:none}.memory-photos__item{flex:none;width:86%;max-height:70vh;margin:0;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-2);scroll-snap-align:center;box-shadow:var(--shadow-sm)}.memory-photos__item:only-child{width:100%}.memory-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0;font-weight:var(--weight-bold)}.memory-note{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.memory-delete{color:var(--danger)}.memory-form__photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.memory-form__photo,.memory-form__add{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.memory-form__photo button{position:absolute;top:4px;right:4px;width:28px;height:28px;border:0;border-radius:50%;background:#3a1730b3;color:#fff;font-size:var(--text-xs);cursor:pointer}.memory-form__add{font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);border:2px dashed var(--border);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);cursor:pointer}.memory-form__add span{font-size:1.5rem}.sheet h2{margin:0}.on-this-day__item{display:flex;align-items:center;gap:var(--space-3);color:inherit;text-decoration:none}.on-this-day__item>span:last-child{display:flex;flex-direction:column}.on-this-day__item small{color:var(--text-muted)}.on-this-day__photo{flex:none;width:56px;height:56px;display:grid;place-items:center;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface);font-size:1.4rem}.privacy-langs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.privacy-langs button{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:transparent;color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer}.privacy-langs button.is-active{border-color:var(--brand);background:var(--brand);color:#fff}.privacy-home,.login-privacy{margin:0;text-align:center}.privacy-home a,.login-privacy a{color:var(--brand);font-size:var(--text-sm);font-weight:var(--weight-bold)}.terms h3{margin:0;font-size:var(--text-md)}.terms p{margin:0}.terms__bullet{position:relative;margin:0;padding-left:var(--space-5)}.terms__bullet:before{content:"♥";position:absolute;left:2px;color:var(--brand);font-size:var(--text-sm)}.terms-check{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.terms-check label,label.terms-check{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-3);font-weight:var(--weight-bold);font-size:var(--text-sm);cursor:pointer}.terms-check input[type=checkbox]{flex:none;width:22px;height:22px;min-height:0;margin:0;padding:0;accent-color:var(--brand)}.link-btn{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);padding:var(--space-1) 0;border:0;background:none;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:flex-start}.link-btn--danger{color:var(--danger)}.pair-footer{display:flex;justify-content:center;gap:var(--space-5);padding-top:var(--space-4)}.btn--danger{background:var(--danger);color:#fff}.end-option{font:inherit;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-5);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.end-option span{color:var(--text-muted);font-size:var(--text-sm)}.end-option.is-on{border-color:var(--brand);box-shadow:0 0 0 3px #d63b6a2e}.ended-book h3,.ended-book p{margin:0}.memory-add{display:flex;flex-wrap:wrap;gap:var(--space-2)}.capsule{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);color:#fff;background:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 10px,transparent 10px 20px),linear-gradient(150deg,#5a2a4a,#3a1730 60%,#240e1e);box-shadow:var(--shadow-md)}.capsule__seal{font:inherit;width:64px;height:64px;display:grid;place-items:center;padding:0;border:0;border-radius:46% 54% 50% 50%/52% 48%;background:radial-gradient(circle at 35% 30%,#e0546f,#a8244f 60%,#7d1a3a);color:#ffffffd9;font-size:1.5rem;box-shadow:inset 0 -3px 6px #00000040,0 4px 10px #00000059;cursor:default}.capsule.is-ready .capsule__seal{cursor:pointer;animation:seal-pulse 1.8s ease-in-out infinite}.capsule__text{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.capsule__text strong{font-family:var(--font-display);font-size:var(--text-lg)}.capsule__text small{color:#ffffffbf}.capsule__count{margin:var(--space-1) 0;color:#fff}.capsule__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.capsule__actions .btn{display:inline-flex;align-items:center}.capsule__undo{color:#fffc}.capsule-when{margin:0;font-weight:var(--weight-bold)}.capsule-memory{font:inherit;display:flex;align-items:center;gap:var(--space-4);width:100%;border:0;color:var(--text);text-align:left;cursor:pointer}.capsule-memory>span:first-child{font-size:1.8rem}.capsule-memory>span:last-child{display:flex;flex-direction:column}.capsule-memory strong{font-family:var(--font-display);font-size:var(--text-lg)}.capsule-memory small{color:var(--text-muted)}.capsule-letter{display:flex;flex-direction:column;gap:var(--space-3)}.capsule-letter__photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.capsule-letter__photos span{border-radius:var(--radius-sm);overflow:hidden;background:#3a17300f}.capsule-letter__photos img{display:block;width:100%;height:100%;object-fit:cover}@keyframes seal-pulse{0%,to{transform:scale(1);box-shadow:inset 0 -3px 6px #00000040,0 0 #e9b44ccc}50%{transform:scale(1.06);box-shadow:inset 0 -3px 6px #00000040,0 0 0 10px #e9b44c00}}.capsule-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#5a2a4a,#1a0d16);animation:letter-fade .3s ease-out;cursor:pointer}.capsule-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);color:#fff;text-align:center}.capsule-stage__title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);animation:letter-fade .5s ease-out 1.4s backwards}.capsule-stage__hint{margin:0;color:#ffffffb3;animation:letter-fade .5s ease-out 1.8s backwards}.capsule-box{position:relative;width:220px;height:170px;perspective:600px}.capsule-box__body{position:absolute;top:40px;right:0;bottom:0;left:0;border-radius:10px 10px 18px 18px;background:linear-gradient(160deg,#e9b44c,#b98325);box-shadow:inset 0 -8px #0000001f,var(--shadow-lg)}.capsule-box__lid{position:absolute;inset:22px -8px auto;height:34px;border-radius:10px;background:linear-gradient(160deg,#f2c86a,#c99232);box-shadow:0 3px 8px #00000040;transform-origin:0 100%;z-index:2;animation:capsule-lid .8s cubic-bezier(.4,0,.2,1) .5s forwards}.capsule-box__seal{position:absolute;left:50%;top:22px;width:52px;height:52px;margin-left:-26px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e0546f,#a8244f 60%,#7d1a3a);color:#ffffffd9;font-size:1.3rem;z-index:3;animation:capsule-seal .5s ease-in .1s forwards}.capsule-box__papers{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.capsule-box__papers span{position:absolute;left:50%;top:50px;width:120px;height:140px;margin-left:-60px;border-radius:6px;background:repeating-linear-gradient(transparent 0 15px,#d63b6a2e 15px,#d63b6a2e 16px),#fffdf8;box-shadow:0 4px 12px #00000040;animation:capsule-paper .9s var(--ease-spring) 1s forwards}.capsule-box__papers span:nth-child(2){--tilt: 8deg;--shift: 34px;animation-delay:1.2s}.capsule-box__papers span:first-child{--tilt: -6deg;--shift: -28px}@keyframes capsule-seal{40%{transform:scale(1.15)}to{transform:scale(.4) rotate(40deg);opacity:0}}@keyframes capsule-lid{to{transform:translate(-40px,-30px) rotate(-35deg);opacity:0}}@keyframes capsule-paper{to{transform:translate(var(--shift, 0),-110px) rotate(var(--tilt, 0))}}@media (prefers-reduced-motion: reduce){.capsule.is-ready .capsule__seal,.capsule-box__lid,.capsule-box__seal,.capsule-box__papers span{animation:none}}.us-link{color:inherit;text-decoration:none}.us-link:active{transform:scale(.99)}.bucket-add{display:flex;gap:var(--space-2)}.bucket-add input{flex:1}.bucket-add .btn{flex:none}.bucket-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bucket-list li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}.bucket-list__title{flex:1;display:flex;flex-direction:column;font-weight:var(--weight-bold);overflow-wrap:anywhere}.bucket-list__title small{font-weight:var(--weight-regular);color:var(--text-muted)}.bucket-list--done .bucket-list__title{color:var(--text-muted)}.bucket-check{flex:none;width:30px;height:30px;padding:0;display:grid;place-items:center;border:2.5px solid var(--heart);border-radius:50%;background:transparent;color:#fff;font-weight:var(--weight-heavy);cursor:pointer;transition:transform .2s var(--ease-spring)}.bucket-check:active{transform:scale(.85)}.bucket-check.is-done{background:var(--heart)}.bucket-list__delete{flex:none;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.bucket-ideas{display:flex;flex-wrap:wrap;gap:var(--space-2)}.bucket-idea{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);padding:var(--space-2) var(--space-4);border:1.5px dashed var(--border);border-radius:var(--radius-pill);background:transparent;color:var(--text);cursor:pointer}.bucket-done-card{animation:note-in .45s var(--ease-spring)}.bucket-done-card p{margin:0}.countdown-row{font:inherit;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.countdown-row__emoji{font-size:1.6rem}.countdown-row__text{flex:1;display:flex;flex-direction:column}.countdown-row__text small{color:var(--text-muted)}.countdown-row__left{font-weight:var(--weight-heavy);color:var(--brand);white-space:nowrap}.countdown-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--sticker-gold);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm)}.countdown-card__emoji{font-size:2.2rem}.countdown-card__text{flex:1;display:flex;flex-direction:column;min-width:0}.countdown-card__text small{color:var(--text-muted);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;font-size:var(--text-xs)}.countdown-card__text strong{font-family:var(--font-display);font-size:var(--text-lg);overflow-wrap:anywhere}.countdown-card__days{display:flex;flex-direction:column;align-items:center;line-height:1}.countdown-card__days strong{font-family:var(--font-display);font-size:2.2rem;color:var(--brand-dark)}.countdown-card__days small{color:var(--text-muted);font-weight:var(--weight-bold)}.emoji-pick{display:flex;flex-wrap:wrap;gap:var(--space-2)}.emoji-pick button{width:44px;height:44px;border:0;border-radius:var(--radius-sm);background:var(--surface);font-size:1.3rem;cursor:pointer}.emoji-pick button.is-on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--brand)}.filter-toggle{font:inherit;align-self:flex-start;padding:var(--space-2) var(--space-4);border:0;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-weight:var(--weight-bold);font-size:var(--text-sm);cursor:pointer}.filter-toggle.is-on{background:var(--active-bg);color:var(--active-text)}.swipe{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.swipe__stack{position:relative;width:min(320px,100%);height:340px}.swipe__card{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);text-align:center;box-shadow:var(--shadow-md);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;z-index:2}.swipe__card.is-settling{transition:transform .25s var(--ease-out)}.swipe__card--behind{background:var(--surface);opacity:.6;box-shadow:var(--shadow-sm)}.swipe__emoji{font-size:4.5rem;line-height:1}.swipe__title{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2}.swipe__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.swipe__meta .pill{background:#fff9;color:var(--plum)}.swipe__stamp{position:absolute;top:var(--space-5);padding:var(--space-1) var(--space-3);border:3px solid currentColor;border-radius:var(--radius-sm);font-weight:var(--weight-heavy);font-size:var(--text-lg);letter-spacing:.1em;pointer-events:none}.swipe__stamp--yes{left:var(--space-5);color:#2f7d4f;transform:rotate(-12deg)}.swipe__stamp--no{right:var(--space-5);color:var(--danger);transform:rotate(12deg)}.swipe__buttons{display:flex;gap:var(--space-6)}.swipe__no,.swipe__yes{width:64px;height:64px;display:grid;place-items:center;border:0;border-radius:50%;font-size:1.5rem;font-weight:var(--weight-heavy);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .15s var(--ease-spring)}.swipe__no{background:var(--surface);color:var(--text-muted)}.swipe__yes{background:var(--love-gradient);color:#fff}.swipe__yes svg{width:30px;height:30px}.swipe__no:active,.swipe__yes:active{transform:scale(.9)}.swipe__left{margin:0}.swipe-empty{align-items:center;text-align:center}.swipe-empty>span{font-size:2.5rem}.swipe-empty p{margin:0}.match-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}.match-row__emoji{font-size:1.6rem}.match-row__text{flex:1;display:flex;flex-direction:column;min-width:0}.match-row__text small{color:var(--text-muted)}.match-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:var(--space-5);background:var(--love-gradient);color:#fff;text-align:center;animation:letter-fade .3s ease-out;overflow:hidden}.match-overlay__body{position:relative;width:min(360px,100%);align-items:stretch}.match-overlay__body h2{margin:0;font-size:var(--text-2xl);animation:note-in .6s var(--ease-spring)}.match-overlay__body p{margin:0}.match-overlay__idea{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-lg);background:#ffffff29}.match-overlay__idea span{font-size:3.5rem}.match-overlay__idea strong{font-family:var(--font-display);font-size:var(--text-xl)}.match-overlay__close{color:#fff;box-shadow:inset 0 0 0 1.5px #ffffff80}.match-overlay__hearts svg{position:absolute;width:34px;height:34px;color:#ffffff59;animation:match-float 3s ease-in-out infinite}.match-overlay__hearts svg:nth-child(1){left:10%;top:12%}.match-overlay__hearts svg:nth-child(2){right:12%;top:18%;animation-delay:.5s}.match-overlay__hearts svg:nth-child(3){left:18%;bottom:18%;animation-delay:1s}.match-overlay__hearts svg:nth-child(4){right:8%;bottom:26%;animation-delay:1.5s}.match-overlay__hearts svg:nth-child(5){left:46%;top:6%;animation-delay:.8s}.match-overlay__hearts svg:nth-child(6){left:50%;bottom:8%;animation-delay:2s}@keyframes match-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.15)}}@media (prefers-reduced-motion: reduce){.match-overlay__hearts svg,.bucket-done-card{animation:none}}.countdown-card.is-today{background:var(--love-gradient);color:#fff;box-shadow:var(--love-glow)}.countdown-card.is-today .countdown-card__text small{color:#ffffffd9}.countdown-card--tips{width:100%;border:0;font:inherit;text-align:left;cursor:pointer}.countdown-card__hint{display:inline-block;margin-top:2px;font-size:var(--fs-xs, .75rem);font-weight:600;color:var(--brand)}.countdown-card.is-today .countdown-card__hint{color:inherit;opacity:.9;text-decoration:underline;text-underline-offset:3px}.date-tips__head{display:flex;align-items:center;gap:var(--space-3)}.date-tips__head small{display:block;font-size:var(--fs-xs, .75rem);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}.date-tips__head h2{margin:0}.date-tips__emoji{display:grid;flex:none;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--sticker-gold);font-size:1.9rem}.date-tips__intro{margin:0;font-size:1.05rem}.date-tips h3{margin:0 0 var(--space-2);font-size:1.05rem}.date-tips h4{margin:var(--space-3) 0 var(--space-1);font-size:.95rem}.date-tips ul,.date-tips ol{margin:0;padding-left:1.3em}.date-tips li+li{margin-top:4px}.date-tips__checklist{list-style:none;padding-left:0!important}.date-tips__checklist li{position:relative;padding-left:1.6em}.date-tips__checklist li:before{content:"";position:absolute;top:.25em;left:0;width:1em;height:1em;border:2px solid var(--brand);border-radius:5px}.date-tips__steps li::marker{font-weight:700;color:var(--brand)}.date-tips__note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--sticker-lilac)}.date-tips__note--talk{background:var(--sticker-rose)}.date-tips__note p{margin:0}.countdown-card--after{flex-wrap:wrap}.countdown-card__actions{flex-basis:100%;display:flex;gap:var(--space-2)}.both-no{display:flex;flex-direction:column;gap:var(--space-3)}.both-no summary{cursor:pointer;list-style:none}.both-no summary::-webkit-details-marker{display:none}.both-no summary h2{display:inline}.both-no summary h2:after{content:" ▾"}.both-no[open] summary h2:after{content:" ▴"}.both-no>*+*{margin-top:var(--space-3)}.match-row--no{opacity:.7}.game-card{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:start}.game-card .btn{align-self:flex-start}.game-badge{align-self:flex-start;padding:4px 12px;border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold)}.game-badge.is-turn{background:var(--rose);color:#fff;animation:pulse 2s ease-in-out infinite}.game-piece{display:block;width:100%;aspect-ratio:1;border-radius:50%}.game-piece--a{background:radial-gradient(circle at 35% 30%,#f07a9c,var(--rose) 55%,var(--rose-dark))}.game-piece--b{background:radial-gradient(circle at 35% 30%,#fbe0a0,var(--gold) 55%,#b9832a)}.game-board--bondesjakk .game-piece,.mini-board--bondesjakk .game-piece,.game-players--bondesjakk .game-piece{background:none;display:grid;place-items:center;font-family:var(--font-display);line-height:1}.game-board--bondesjakk .game-piece--a:before,.mini-board--bondesjakk .game-piece--a:before,.game-players--bondesjakk .game-piece--a:before{content:"♥";color:var(--rose)}.game-board--bondesjakk .game-piece--b:before,.mini-board--bondesjakk .game-piece--b:before,.game-players--bondesjakk .game-piece--b:before{content:"";width:62%;aspect-ratio:1;border-radius:50%;border:.14em solid var(--gold)}.game-players .game-piece{width:18px;flex:none;font-size:18px}.mini-board{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:3px;width:84px;padding:6px;border-radius:var(--radius-sm);background:var(--plum)}.mini-board>span:not(.game-piece){aspect-ratio:1;border-radius:50%;background:#ffffff1f}.mini-board--bondesjakk{background:var(--surface);gap:2px;padding:0;overflow:hidden;font-size:18px}.mini-board--bondesjakk>span{aspect-ratio:1;background:var(--paper);border-radius:0!important}.game-players{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.game-player{display:flex;align-items:center;gap:var(--space-2);padding:6px 12px;border-radius:var(--radius-pill);font-weight:var(--weight-bold);font-size:var(--text-sm);border:2px solid transparent;transition:border-color .2s,background .2s;min-width:0}.game-player.is-turn{border-color:var(--rose);background:var(--surface)}.game-status{margin:0;min-height:2.6em;display:grid;place-items:center;text-align:center;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold)}.game-status.is-win{color:var(--rose);animation:heartbeat 1.2s ease-in-out 2}.game-board{display:grid;grid-template-columns:repeat(var(--cols),1fr);margin-inline:auto;width:100%}.game-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:default;position:relative;aspect-ratio:1}.game-board.can-play .game-cell:not(:disabled){cursor:pointer}.game-board--firerad{max-width:420px;gap:6px;padding:10px;border-radius:var(--radius-md);background:var(--plum);box-shadow:var(--shadow-md);overflow:hidden}.game-board--firerad .game-cell{border-radius:50%;background:#ffffff1a;box-shadow:inset 0 3px 6px #00000059}.game-board--firerad .game-piece.is-new{animation:piece-drop .45s cubic-bezier(.5,0,.75,1) both,piece-bounce .25s .45s ease-out}@keyframes piece-drop{0%{transform:translateY(calc(var(--drop) * -112%))}to{transform:translateY(0)}}@keyframes piece-bounce{40%{transform:translateY(-10%)}}.game-board--firerad .game-cell.is-win .game-piece{box-shadow:0 0 0 3px #fff,0 0 18px 4px #fff9;animation:pulse 1.4s ease-in-out infinite}.game-board--bondesjakk{max-width:320px;gap:4px;border-radius:var(--radius-md);background:var(--border);overflow:hidden;box-shadow:var(--shadow-md)}.game-board--bondesjakk .game-cell{background:var(--paper);font-size:clamp(44px,16vw,72px);display:grid;place-items:center}.game-board--bondesjakk.can-play .game-cell:not(:disabled):active{background:var(--sticker-rose)}.game-board--bondesjakk .game-piece{width:80%}.game-board--bondesjakk .game-piece.is-new{animation:piece-pop .35s var(--ease-spring) both}@keyframes piece-pop{0%{transform:scale(.2) rotate(-20deg);opacity:0}}.game-board--bondesjakk .game-cell.is-win{background:var(--sticker-gold)}.game-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.game-actions .link-btn{align-self:center}.game-poke{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-4);text-align:center}.game-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.game-history a{display:grid;grid-template-columns:1fr auto;gap:0 var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);color:inherit;text-decoration:none;font-size:var(--text-sm)}.game-history a span:first-child{font-weight:var(--weight-bold)}.game-history small{grid-column:1 / -1}.game-today{display:flex;align-items:center;gap:var(--space-4);color:inherit;text-decoration:none}.game-today__icon{font-size:2rem}.game-today p{margin:0}@media (prefers-reduced-motion: reduce){.game-piece.is-new,.game-badge.is-turn,.game-status.is-win,.game-cell.is-win .game-piece{animation:none!important}}.chess{position:relative;display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:440px;margin-inline:auto}.chess-board{display:grid;grid-template-columns:repeat(8,1fr);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-md);border:6px solid var(--plum)}.chess-square{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;font:inherit;position:relative;aspect-ratio:1;display:grid;place-items:center;cursor:default;color:inherit}.chess-square:not(:disabled){cursor:pointer}.chess-square.is-light{background:#fde8dc}.chess-square.is-dark{background:#d98ca3}.chess-square.is-last.is-light{background:#fbd58f}.chess-square.is-last.is-dark{background:#e9a55e}.chess-square.is-selected{box-shadow:inset 0 0 0 3px var(--rose-dark)}.chess-square.is-check{background:radial-gradient(circle,#ff5a5a 0%,rgba(255,90,90,.5) 45%,transparent 75%),#d98ca3}.chess-square.is-target:after{content:"";width:28%;aspect-ratio:1;border-radius:50%;background:#3a17304d}.chess-square.is-capture:after{content:"";position:absolute;top:4%;right:4%;bottom:4%;left:4%;border-radius:50%;border:4px solid rgba(58,23,48,.3)}.chess-coord{position:absolute;font-size:9px;font-weight:var(--weight-bold);color:#3a17308c;line-height:1;pointer-events:none}.chess-coord--rank{top:3px;left:3px}.chess-coord--file{bottom:3px;right:4px}.chess-piece{font-family:Segoe UI Symbol,Apple Symbols,DejaVu Sans,sans-serif;font-size:clamp(26px,9.5vw,44px);line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none}.chess-piece--w{color:#fffaf6;text-shadow:0 0 1px var(--plum),0 0 1px var(--plum),0 0 1px var(--plum),0 2px 2px rgba(58,23,48,.35)}.chess-piece--b{color:var(--plum);text-shadow:0 0 1px rgba(255,255,255,.6),0 2px 2px rgba(58,23,48,.3)}.chess-square>.chess-piece{width:100%;height:100%;display:grid;place-items:center;position:relative;z-index:1}.chess-piece.is-new{animation:chess-slide .35s var(--ease-out) both}@keyframes chess-slide{0%{transform:translate(calc(var(--dx, 0) * 100%),calc(var(--dy, 0) * 100%))}}.chess-captured{display:flex;flex-wrap:wrap;min-height:22px;gap:1px}.chess-captured .chess-piece{font-size:18px}.game-players .chess-piece{font-size:20px}.game-players .chess-piece--b{text-shadow:0 0 2px rgba(255,255,255,.9),0 0 1px rgba(255,255,255,.9)}.chess-promotion{position:absolute;inset:30% 6% auto;z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg);animation:piece-pop .25s var(--ease-spring) both}.chess-promotion p{margin:0;font-weight:var(--weight-bold)}.chess-promotion>div{display:flex;gap:var(--space-2)}.chess-promotion .chess-piece{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;border:0;border-radius:var(--radius-sm);background:#fde8dc;width:56px;height:56px;font-size:40px;cursor:pointer}.chess-promotion .link-btn{align-self:center}.mini-board--sjakk{padding:0;gap:0;overflow:hidden;border:4px solid var(--plum)}.mini-board--sjakk>span,.mini-board--sjakk>span:not(.game-piece){aspect-ratio:1;display:grid;place-items:center;background:#fde8dc;border-radius:0!important}.mini-board--sjakk>span.is-dark{background:#d98ca3}.mini-board--sjakk .chess-piece{font-size:17px}@media (prefers-reduced-motion: reduce){.chess-piece.is-new{animation:none}}.train-card__art{position:relative;flex:none;width:84px}.train-card__owl{position:absolute;right:-10px;bottom:-10px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);font-size:1.3rem}.train-choices,.train-colors{display:grid;gap:var(--space-2)}.train-colors{grid-template-columns:repeat(3,1fr)}.train-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:2px solid transparent;background:var(--surface);cursor:pointer;transition:border-color .15s,transform .15s var(--ease-spring)}.train-colors .train-choice{text-align:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--weight-bold);padding:var(--space-3) var(--space-2)}.train-choice small{color:var(--text-muted)}.train-choice.is-on{border-color:var(--rose)}.train-choice:active{transform:scale(.97)}.train-meter{height:8px;max-width:440px;width:100%;margin-inline:auto;border-radius:var(--radius-pill);background:var(--plum);overflow:hidden}.train-meter span{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--rose));transition:width .6s var(--ease-out)}.train-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.train-actions .btn{padding-inline:var(--space-4)}.train-coach{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-md);background:var(--sticker-lilac);animation:piece-pop .3s var(--ease-spring) both}.train-coach__face{font-size:2.2rem;line-height:1}.train-tip{margin:0;padding-left:var(--space-3);border-left:3px solid var(--text-muted)}.train-tip--good{border-color:#3c9d5d}.train-tip--warn{border-color:var(--gold)}.train-tip--bad{border-color:var(--rose)}.train-level{text-align:center;font-size:var(--text-xs)}.train-principles summary{cursor:pointer;font-weight:var(--weight-bold)}.train-principles ol{margin:var(--space-3) 0 0;padding-left:1.2em;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}.chess-square.is-hint{box-shadow:inset 0 0 0 4px #3c9d5d}.chess-square.is-hint.is-dark,.chess-square.is-hint.is-light{animation:hint-glow 1.2s ease-in-out infinite}@keyframes hint-glow{50%{box-shadow:inset 0 0 0 4px #3c9d5d4d}}@media (prefers-reduced-motion: reduce){.train-coach,.chess-square.is-hint{animation:none!important}}.mini-board--tegn{width:84px;height:84px;padding:8px;background:#fffdf8;border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px #3a17301f}.mini-board--tegn path{fill:none;stroke:var(--rose);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.mini-board--tegn .mini-board__pen{stroke:var(--plum);stroke-width:8}.draw-words{display:grid;gap:var(--space-2)}.draw-word{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--plum);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border:0;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease-spring)}.draw-word strong{font-family:var(--font-display);font-size:var(--text-lg)}.draw-word small{font-weight:var(--weight-bold);opacity:.7}.draw-word:active{transform:scale(.97)}.draw-word--1{background:#fde9b8}.draw-word--2{background:#fcd9e3}.draw-word--3{background:#ecdff3}.draw-reroll{align-self:center}.draw-rule{margin-top:calc(var(--space-2) * -1);text-align:center;font-size:var(--text-sm)}.draw-frame{position:relative;border-radius:var(--radius-md);background:#fffdf8;box-shadow:inset 0 0 0 1px #3a17301f,var(--shadow-sm);overflow:hidden}.draw-frame__word{position:absolute;top:var(--space-3);left:var(--space-3);padding:4px 12px;border-radius:var(--radius-pill);background:var(--plum);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-bold)}.draw-replay path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw-stroke calc(2.6s / var(--n)) ease-in-out forwards;animation-delay:calc(var(--i) * 2.6s / var(--n) + .3s)}@keyframes draw-stroke{to{stroke-dashoffset:0}}.draw-feedback{margin:0;text-align:center;font-weight:var(--weight-bold);animation:piece-pop .3s var(--ease-spring) both}.draw-feedback--nesten{color:#d9822b}.draw-feedback--feil,.draw-feedback--error{color:var(--text-muted)}.draw-guesses{display:flex;flex-wrap:wrap;gap:var(--space-2)}.draw-guess{padding:4px 12px;border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-sm)}.draw-last{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);text-align:center;font-weight:var(--weight-bold)}.draw-last.is-solved{background:#fde9b8;color:var(--plum);animation:piece-pop .4s var(--ease-spring) both}.draw-waiting{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center}.draw-waiting>span{font-size:3rem;animation:heartbeat 2.4s ease-in-out infinite}.draw-waiting p{margin:0}.draw-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.draw-gallery li{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.draw-gallery .drawing{border-radius:var(--radius-sm);background:#fffdf8;margin-bottom:var(--space-1)}.draw-gallery li:nth-child(odd){transform:rotate(-1deg)}.draw-gallery li:nth-child(2n){transform:rotate(1deg)}.draw-gallery strong{font-family:var(--font-display)}.draw-gallery small{font-size:var(--text-xs)}@media (prefers-reduced-motion: reduce){.draw-replay path{animation:none;stroke-dashoffset:0}.draw-waiting>span{animation:none}}.mini-board--hangman{width:84px;height:84px;padding:6px;border-radius:var(--radius-sm);background:#fffdf8}.mini-board--hangman{display:block;box-shadow:inset 0 0 0 1px #3a17301f}.mini-board--hangman path,.mini-board--hangman circle{fill:none;stroke-linecap:round;stroke-linejoin:round}.mini-board--hangman .gallows{stroke:#8a5a3c;stroke-width:4}.mini-board--hangman .figure path,.mini-board--hangman .figure circle{stroke:var(--plum);stroke-width:3.5}.mini-board--hangman .figure .face{stroke-width:2}.mini-board--hangman .blank{stroke:var(--rose);stroke-width:3}.mini-board--hangman text{fill:var(--plum);font-family:var(--font);font-size:13px;font-weight:700}.hangman-lang{margin:0;font-size:var(--text-xs);text-align:center}.hangman-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.hangman-flower{width:150px;height:auto;overflow:visible}.hangman-flower__stem{fill:none;stroke:#3c9d5d;stroke-width:6;stroke-linecap:round}.hangman-flower__leaf{fill:#5fb77d}.hangman-flower__petal{fill:#f6a5bd;stroke:#e0789a;stroke-width:2;transform-origin:100px 86px;transform:rotate(var(--a));transition:transform 1s ease-in,opacity 1s ease-in}.hangman-flower__petal.is-gone{transform:rotate(var(--a)) translateY(160px) rotate(40deg);opacity:0}.hangman-flower__heart{fill:var(--gold)}.hangman-flower.is-solved .hangman-flower__petal{fill:#ff8fb1}.hangman-left{margin:0;font-weight:var(--weight-bold);color:var(--text-muted)}.hangman-hint{margin:0;text-align:center;font-style:italic}.hangman-word{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.hangman-letter{display:grid;place-items:center;width:30px;height:40px;border-bottom:3px solid var(--text);font-family:var(--font-display);font-size:1.6rem;font-weight:var(--weight-bold)}.hangman-letter.is-found{color:var(--rose);animation:piece-pop .35s var(--ease-spring) both}.hangman-letter.is-dash{border-bottom-color:transparent}.hangman-space{width:14px}.hangman-keys{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px}.hangman-key{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-weight:var(--weight-bold);height:44px;border:0;border-radius:10px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);cursor:pointer}.hangman-key:active{transform:scale(.94)}.hangman-key.is-hit{background:#3c9d5d;color:#fff}.hangman-key.is-miss{opacity:.35}.draw-guess.is-hit{background:#3c9d5d;color:#fff}.hangman-history{display:flex;flex-direction:column;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface);font-weight:var(--weight-bold)}@media (prefers-reduced-motion: reduce){.hangman-flower__petal{transition:none}}.mini-board--ord{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;width:84px;padding:4px;border-radius:var(--radius-sm);background:#2f5d55}.mini-board--ord>span{aspect-ratio:1;border-radius:2px;background:#ffffff1f}.mini-board--ord .word-tile{font-size:10px;box-shadow:none}.word-scores{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.word-score{padding:6px 12px;border-radius:var(--radius-pill);border:2px solid transparent;font-size:var(--text-sm);font-weight:var(--weight-bold)}.word-score strong{font-family:var(--font-display);font-size:var(--text-lg);margin-left:4px}.word-score.is-turn{border-color:var(--rose);background:var(--surface)}.word-bag{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.word-last{margin:calc(var(--space-2) * -1) 0 0;text-align:center;font-size:var(--text-sm)}.word-board-wrap{overflow:auto;border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch}.word-board{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;padding:3px;background:#2f5d55;border-radius:var(--radius-sm);width:100%;max-width:560px;margin-inline:auto}.word-board-wrap.is-zoomed .word-board{width:200%;max-width:none}.word-square{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;aspect-ratio:1;border-radius:3px;background:#3e7469;display:grid;place-items:center;font:inherit;color:#fff;cursor:pointer;min-width:0}.word-square--wT{background:#d9534f}.word-square--wD{background:#e78fa6}.word-square--lt{background:#3b6fd6}.word-square--ld{background:#7fb0e8}.word-square.is-center:after{content:"★";font-size:clamp(8px,2.6vw,14px)}.word-premium{font-size:clamp(6px,1.9vw,10px);font-weight:var(--weight-bold);line-height:1}.word-tile{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:3px;background:#fbe3b5;color:var(--plum);font-family:var(--font);font-weight:var(--weight-heavy);font-size:clamp(11px,3.4vw,20px);line-height:1;box-shadow:inset 0 -2px #3a173033}.word-tile small{position:absolute;right:2px;bottom:1px;font-size:clamp(5px,1.5vw,9px);font-weight:var(--weight-bold)}.word-tile.is-blank{color:var(--rose-dark)}.word-tile.is-pending{background:#ffd1df;animation:piece-pop .25s var(--ease-spring) both}.word-tile.is-last{background:#ffe9a8;box-shadow:inset 0 0 0 2px #e9a522}.word-square.is-center:has(.word-tile):after{content:none}.word-preview{margin:0;text-align:center;font-weight:var(--weight-bold);color:var(--text-muted)}.word-preview.is-ok{color:#3c9d5d}.word-rack{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:420px;width:100%;margin-inline:auto}.word-tile--rack{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;aspect-ratio:1;font-size:1.5rem;cursor:pointer;transition:transform .15s var(--ease-spring),opacity .15s}.word-tile--rack small{font-size:.65rem;right:4px;bottom:3px}.word-tile--rack.is-selected{transform:translateY(-8px);box-shadow:0 0 0 3px var(--rose)}.word-tile--rack.is-used{opacity:.25}.word-tile--rack.is-swap{box-shadow:0 0 0 3px #3b6fd6;transform:translateY(-4px)}.word-note{margin:0;text-align:center;font-size:var(--text-sm)}.word-credit{text-align:center;font-size:10px}.word-blank{position:fixed;inset:auto 16px 22% 16px;z-index:50}.word-blank__letters{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;width:100%}.days-card--button{cursor:pointer;transition:transform .2s var(--ease-spring)}.days-card--button:active{transform:scale(.985)}.days-card--button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.days-card__number{isolation:isolate}.days-card__last{position:relative;display:inline-block}.days-card__level{margin-top:var(--space-2);padding:4px 12px;border-radius:var(--radius-pill);background:#ffffff29;font-size:var(--text-sm);font-weight:var(--weight-bold)}.level-symbol{position:absolute;z-index:-1;overflow:visible;pointer-events:none;filter:drop-shadow(0 3px 6px rgba(58,23,48,.35))}.level-symbol__band{fill:none;stroke:#f7c95c;stroke-width:4}.level-symbol__band--rose{stroke:#f3b0a0}.level-symbol__stone{fill:#eaf6ff;stroke:#b9dcf5;stroke-width:1.5;stroke-linejoin:round}.level-symbol__shine{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;opacity:.9}.level-symbol__string{stroke:#ffffffd9;stroke-width:1.5}.level-symbol--ring{width:54px;height:81px;top:-18px;right:-18px;transform-origin:50% 0;animation:ring-swing 3.2s ease-in-out infinite}@keyframes ring-swing{0%,to{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}.level-symbol--rings{width:86px;height:59px;top:-26px;right:-40px;transform:rotate(-12deg);animation:rings-glint 4s ease-in-out infinite}@keyframes rings-glint{0%,to{filter:drop-shadow(0 3px 6px rgba(58,23,48,.35))}50%{filter:drop-shadow(0 3px 6px rgba(58,23,48,.35)) drop-shadow(0 0 8px rgba(255,236,170,.9))}}.levels{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.levels__step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:2px dashed var(--border);background:var(--surface);color:var(--text)}.levels__step.is-reached{border-style:solid;border-color:transparent;background:var(--sticker-rose)}.levels__icon{font-size:1.6rem}.levels__text{display:flex;flex-direction:column}.levels__text small{color:var(--text-muted);font-size:var(--text-sm)}.levels__step .link-btn{font-size:var(--text-sm)}.levels__edit{grid-column:1 / -1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}@media (prefers-reduced-motion: reduce){.level-symbol--ring,.level-symbol--rings{animation:none}}.days-card__milestone--button{cursor:pointer;transition:background .2s}.days-card__milestone--button:active{background:#ffffff42}.days-card__more{opacity:.8}.anniversaries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:55vh;overflow-y:auto}.anniversaries__row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:2px dashed var(--border);background:var(--surface)}.anniversaries__name{display:flex;flex-direction:column;min-width:0}.anniversaries__name small{color:var(--text-muted);font-size:var(--text-sm)}.anniversaries__state{font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap}.anniversaries__row.is-past{border-style:solid;border-color:transparent;background:var(--sticker-rose)}.anniversaries__row.is-past .anniversaries__state{color:#3c9d5d;font-size:var(--text-lg)}.anniversaries__row.is-next,.anniversaries__row.is-upcoming{border-style:solid;border-color:var(--rose);box-shadow:var(--shadow-sm)}.anniversaries__row.is-next .anniversaries__state{color:var(--rose)}.days-card>.days-card__badge{position:absolute;top:var(--space-4);left:var(--space-4);display:grid;place-items:center;width:52px;height:52px;padding:6px;border-radius:50%;background:var(--cream);box-shadow:0 0 0 3px #ffffff73,var(--shadow-md)}.anniversary-icon{display:block;width:100%;height:100%}.anniversaries__symbol{display:grid;place-items:center;width:40px;height:40px;padding:4px;border-radius:50%;background:var(--cream)}.anniversaries__row:not(.is-past):not(.is-next):not(.is-upcoming) .anniversaries__symbol{filter:grayscale(.7);opacity:.7}.days-card__number--split{display:flex;align-items:flex-start;justify-content:center;gap:var(--space-5);font-size:3.75rem}.days-card__part{display:flex;flex-direction:column;align-items:center}.days-card__part small{margin-top:2px;font-family:var(--font);font-size:var(--text-md);font-weight:var(--weight-heavy);opacity:.9;text-shadow:none}.days-card--badge{padding-top:76px}.cal{display:flex;flex-direction:column;gap:var(--space-2)}.cal__head{display:flex;align-items:center;justify-content:space-between}.cal__head h2{margin:0;font-size:var(--text-lg)}.cal__head .icon-btn{font-size:1.6rem;line-height:1}.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cal__weekday{text-align:center;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-muted);text-transform:uppercase}.cal__day{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;color:inherit;aspect-ratio:1;min-width:0;border-radius:var(--radius-sm);background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-weight:var(--weight-bold);font-size:var(--text-sm)}.cal__day.is-other{opacity:.35}.cal__day.is-today>span:first-child{display:grid;place-items:center;width:1.9em;height:1.9em;border-radius:50%;border:2px solid var(--brand)}.cal__day.is-selected{background:var(--brand);color:#fff}.cal__day.is-selected.is-today>span:first-child{border-color:#fff}.cal__day{position:relative}.cal__day.has-1{background:color-mix(in srgb,var(--brand) 18%,transparent)}.cal__day.has-2{background:color-mix(in srgb,var(--brand) 32%,transparent)}.cal__day.has-3{background:color-mix(in srgb,var(--brand) 46%,transparent)}.cal__day.has-auto{background:color-mix(in srgb,var(--gold) 30%,transparent)}.cal__day.is-today[class*=has-]>span:first-child{width:1.55em;height:1.55em}.cal__emoji{font-size:.8rem;line-height:1}.cal__count{position:absolute;top:2px;right:4px;font-size:.6rem;line-height:1;color:var(--brand)}.cal__day.is-selected[class*=has-]{background:var(--brand)}.cal__day.is-selected .cal__count{color:#fff}.cal__today{align-self:center}.cal__dayhead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.cal__dayhead .list-heading{margin:0}.cal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.cal-list li{display:flex;align-items:center;gap:var(--space-2);padding-right:var(--space-2);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.cal-list li.is-auto{background:var(--sticker-gold);box-shadow:none}.cal-list__main{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.cal-list__main:disabled{cursor:default}.cal-list__emoji{font-size:1.5rem}.cal-list__text{display:flex;flex-direction:column;min-width:0}.cal-list__text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-list__text small{color:var(--text-muted)}.cal-list__add{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--surface-2);border-radius:50%;width:38px;height:38px;flex:none;font-size:1.1rem;cursor:pointer}.cal-toggle{display:flex;flex-direction:row;align-items:center;align-self:flex-start;cursor:pointer;gap:var(--space-2);font-weight:var(--weight-bold)}.cal-toggle input{width:22px;min-height:22px;height:22px;accent-color:var(--brand)}.cal-times{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.cal-sync__buttons{display:flex;flex-direction:column;gap:var(--space-2)}.cal-sync__buttons .btn{text-align:center;text-decoration:none}.cal-sync__buttons .is-disabled{pointer-events:none;opacity:.5}.cal-sync__help summary{cursor:pointer;font-weight:var(--weight-bold)}.cal-sync__help ul{margin:var(--space-2) 0 0;padding-left:1.2em;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}.cal-today__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.cal-today__list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}.cal-today__list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-today__list small{color:var(--text-muted);font-weight:var(--weight-bold)}.story-add{align-self:flex-start}.story,.story ol{list-style:none;margin:0;padding:0}.story{display:flex;flex-direction:column;gap:var(--space-4)}.story__year h2{margin:0 0 var(--space-2);font-size:var(--text-xl);color:var(--brand)}.story__year>ol{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding-left:46px}.story__year>ol:before{content:"";position:absolute;left:19px;top:6px;bottom:6px;width:3px;border-radius:3px;background:linear-gradient(var(--coral),var(--brand));opacity:.5}.story__item{position:relative}.story__dot{position:absolute;left:-46px;top:10px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm),0 0 0 3px var(--bg);font-size:1.2rem}.story__item.is-level .story__dot{background:var(--love-gradient)}.story__card{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);font:inherit;color:inherit;text-align:left;cursor:pointer}.story__card:disabled{cursor:default}.story__item.is-level .story__card{background:var(--sticker-rose);box-shadow:none}.story__card small{color:var(--text-muted);font-weight:var(--weight-bold)}.story__card strong{font-family:var(--font-display);font-size:var(--text-lg)}.story__card p{margin:var(--space-1) 0 0;white-space:pre-wrap}.story__tag{align-self:flex-start;margin-top:var(--space-1);padding:2px 10px;border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-muted)}.story-precision{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.story-precision button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);padding:var(--space-2);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);color:inherit;cursor:pointer}.story-precision button.is-on{border-color:var(--brand);background:var(--surface)}.diary-lock{margin:0}.diary-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--radius-pill);background:var(--surface-2)}.diary-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:var(--radius-pill);background:none;padding:var(--space-2) var(--space-3);font:inherit;font-weight:var(--weight-bold);color:var(--text-muted);cursor:pointer}.diary-tabs button.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.diary-tabs__count{margin-left:6px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-size:var(--text-xs)}.diary-compose__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.diary-compose__head input{width:auto;min-height:40px;padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.diary-prompt{margin:0;font-style:italic;color:var(--text-muted)}.diary-compose__text{min-height:120px}.diary-moods button{font-size:1.2rem}.diary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.diary-entry{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-sm)}.diary-entry__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--text-muted)}.diary-entry__mood{margin-right:6px;font-size:1.1rem}.diary-badge{padding:2px 10px;border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--text-xs);white-space:nowrap}.diary-badge.is-shared{background:var(--sticker-rose)}.diary-entry__body{margin:0;white-space:pre-wrap;font-family:var(--font-display);font-size:1.05rem;line-height:1.55}.diary-entry__body.is-clamped{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.diary-entry__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.pin{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) 0;text-align:center}.pin h2{margin:0}.pin__icon{font-size:2.4rem}.pin__dots{display:flex;gap:var(--space-4);margin:var(--space-3) 0 0}.pin__dots span{width:16px;height:16px;border-radius:50%;border:2px solid var(--brand);transition:background .15s,transform .15s var(--ease-spring)}.pin__dots span.is-filled{background:var(--brand);transform:scale(1.1)}.pin__dots.is-error{animation:pin-shake .4s}@keyframes pin-shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pin__message{min-height:1.4em;margin:0;color:var(--danger);font-size:var(--text-sm);font-weight:var(--weight-bold)}.pin__keys{display:grid;grid-template-columns:repeat(3,72px);gap:var(--space-3)}.pin__key{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:72px;height:72px;border:0;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);font:inherit;font-family:var(--font-display);font-size:1.8rem;font-weight:var(--weight-bold);color:var(--text);cursor:pointer;transition:transform .1s}.pin__key:active{transform:scale(.92);background:var(--sticker-rose)}.pin__key--back{background:none;box-shadow:none;font-size:1.5rem}.pin__key:disabled{opacity:.4}.pin__forgot,.pin__note{max-width:320px}.pin__note{font-size:var(--text-sm)}@media (prefers-reduced-motion: reduce){.pin__dots.is-error{animation:none}}.wr{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;padding:calc(var(--safe-top) + var(--space-3)) var(--space-4) calc(var(--safe-bottom) + var(--space-4));color:#fff;overflow:hidden;background:var(--love-gradient);transition:background .8s;user-select:none;-webkit-user-select:none;touch-action:manipulation}.wr--bg2{background:linear-gradient(160deg,var(--plum) 0%,var(--rose-dark) 60%,var(--rose) 100%)}.wr--bg3{background:linear-gradient(150deg,var(--coral) 0%,var(--gold) 100%)}.wr--bg4{background:linear-gradient(200deg,var(--rose) 0%,var(--rose-dark) 45%,var(--plum-dark) 100%)}.wr:before,.wr:after{content:"";position:absolute;width:70vmax;height:70vmax;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 60%);pointer-events:none;animation:wr-drift 14s ease-in-out infinite alternate}.wr:before{top:-30vmax;left:-25vmax}.wr:after{bottom:-35vmax;right:-30vmax;animation-duration:18s;animation-direction:alternate-reverse}@keyframes wr-drift{to{transform:translate(18vmax,12vmax) scale(1.15)}}.wr.is-paused:before,.wr.is-paused:after,.wr.is-paused *{animation-play-state:paused!important}.wr__bars{position:relative;z-index:1;display:flex;gap:4px}.wr__bar{flex:1;height:3px;border-radius:3px;background:#ffffff4d;overflow:hidden}.wr__bar>span{display:block;height:100%;width:0;background:#fff}.wr__top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3)}.wr__brand{font-weight:var(--weight-heavy);font-size:var(--text-sm);letter-spacing:.04em;opacity:.9}.wr__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#ffffff2e;color:#fff;cursor:pointer}.wr__stage{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.wr__slide{width:100%;max-width:460px;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.wr__slide p{margin:0}.wr-in{max-width:100%;opacity:0;animation:wr-in .7s var(--ease-out) forwards;animation-delay:var(--d, 0s)}@keyframes wr-in{0%{opacity:0;transform:translateY(24px) scale(.96);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}.wr-eyebrow{font-size:var(--text-sm);font-weight:var(--weight-heavy);letter-spacing:.2em;text-transform:uppercase;opacity:.85}.wr-huge{font-family:var(--font-display);font-size:clamp(4.5rem,24vw,7.5rem);font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 8px 30px rgba(0,0,0,.18)}.wr-huge--word{font-size:clamp(2.6rem,13vw,4.2rem)}.wr-lead{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.2}.wr-small{font-size:var(--text-sm);opacity:.9}.wr-emoji{font-size:3.4rem;line-height:1}.wr-float{animation:wr-float 2.4s ease-in-out infinite}@keyframes wr-float{50%{transform:translateY(-10px) rotate(-6deg)}}.wr-spin{animation:wr-spin 1.6s var(--ease-out) .3s both}@keyframes wr-spin{0%{transform:rotate(-540deg) scale(.3)}}.wr-hearts svg{position:absolute;bottom:-40px;width:22px;height:22px;color:#ffffff59;animation:wr-heart-up 5s linear infinite}.wr-hearts svg:nth-child(3n){width:32px;height:32px}.wr-hearts svg:nth-child(4n+1){width:14px;height:14px}.wr-hearts svg:nth-child(1){left:37%;animation-delay:-.73s;animation-duration:5s}.wr-hearts svg:nth-child(2){left:74%;animation-delay:-1.46s;animation-duration:6s}.wr-hearts svg:nth-child(3){left:15%;animation-delay:-2.19s;animation-duration:7s}.wr-hearts svg:nth-child(4){left:52%;animation-delay:-2.92s;animation-duration:4s}.wr-hearts svg:nth-child(5){left:89%;animation-delay:-3.65s;animation-duration:5s}.wr-hearts svg:nth-child(6){left:30%;animation-delay:-4.38s;animation-duration:6s}.wr-hearts svg:nth-child(7){left:67%;animation-delay:-.11s;animation-duration:7s}.wr-hearts svg:nth-child(8){left:8%;animation-delay:-.84s;animation-duration:4s}.wr-hearts svg:nth-child(9){left:45%;animation-delay:-1.57s;animation-duration:5s}.wr-hearts svg:nth-child(10){left:82%;animation-delay:-2.3s;animation-duration:6s}.wr-hearts svg:nth-child(11){left:23%;animation-delay:-3.03s;animation-duration:7s}.wr-hearts svg:nth-child(12){left:60%;animation-delay:-3.76s;animation-duration:4s}.wr-hearts svg:nth-child(13){left:1%;animation-delay:-4.49s;animation-duration:5s}.wr-hearts svg:nth-child(14){left:38%;animation-delay:-.22s;animation-duration:6s}.wr-hearts svg:nth-child(15){left:75%;animation-delay:-.95s;animation-duration:7s}.wr-hearts svg:nth-child(16){left:16%;animation-delay:-1.68s;animation-duration:4s}@keyframes wr-heart-up{0%{transform:translateY(0) rotate(-10deg);opacity:0}15%{opacity:1}to{transform:translateY(-110vh) rotate(14deg);opacity:0}}.wr-bars{width:min(320px,80vw);display:flex;flex-direction:column;gap:var(--space-2)}.wr-bars__row{display:grid;grid-template-columns:70px 1fr 44px;align-items:center;gap:var(--space-2);font-weight:var(--weight-bold)}.wr-bars__label{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wr-bars__track{height:14px;border-radius:var(--radius-pill);background:#fff3;overflow:hidden}.wr-bars__track span{display:block;height:100%;width:0;border-radius:inherit;background:#fff;animation:wr-bar 1.2s var(--ease-out) forwards;animation-delay:var(--d)}@keyframes wr-bar{to{width:var(--w)}}.wr-pair{display:flex;justify-content:center;gap:var(--space-6)}.wr-pair__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.wr-pair__item .wr-emoji{font-size:4.2rem}.wr-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}.wr-collage__photo{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:#fff3;box-shadow:0 8px 20px #0003}.wr-collage__photo:nth-child(odd){transform:rotate(-2deg)}.wr-collage__photo img,.wr-collage__photo span{display:block;width:100%;height:100%;object-fit:cover}.wr-stats{display:flex;justify-content:center;gap:var(--space-5)}.wr-stats span{display:flex;flex-direction:column;font-size:var(--text-sm);font-weight:var(--weight-bold)}.wr-stats strong{font-family:var(--font-display);font-size:2.2rem}.wr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);width:100%}.wr-list li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#ffffff29;font-weight:var(--weight-bold);text-align:left}.wr-list li span{font-size:1.5rem}.wr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);width:100%}.wr-grid__item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-4) var(--space-2);border-radius:var(--radius-md);background:#ffffff29}.wr-grid__item .wr-emoji{font-size:2rem}.wr-grid__item strong{font-family:var(--font-display);font-size:2.4rem;line-height:1.1}.wr-grid__item small{font-weight:var(--weight-bold);opacity:.9}.wr__end{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.wr__end-close{color:#fff;border-color:#ffffff80}.wr__paused{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + var(--space-5));transform:translate(-50%);margin:0;padding:4px 14px;border-radius:var(--radius-pill);background:#00000040;font-size:var(--text-sm);font-weight:var(--weight-bold)}.wr-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:linear-gradient(140deg,var(--plum) 0%,var(--rose-dark) 55%,var(--coral) 120%);color:#fff;text-decoration:none;box-shadow:var(--love-glow)}.wr-card small{font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;opacity:.85}.wr-card strong{font-family:var(--font-display);font-size:var(--text-lg)}.wr-card--small{padding:var(--space-4)}.wr-card__play{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:50%;background:#fff;color:var(--rose);font-size:1.2rem;box-shadow:0 0 0 6px #fff3;animation:pulse 2.6s ease-in-out infinite}.wr-years{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.wr-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--love-gradient);color:#fff;font:inherit;text-align:left;cursor:pointer;box-shadow:var(--love-glow)}.wr-year strong{font-family:var(--font-display);font-size:2.2rem;line-height:1}.wr-year__play{font-size:1rem;opacity:.9}@media (prefers-reduced-motion: reduce){.wr-in{animation-duration:.01s}.wr:before,.wr:after,.wr-hearts svg,.wr-float,.wr-spin,.wr-card__play{animation:none}}.dock{z-index:18}.season{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;pointer-events:none;overflow:hidden}.season-secret{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;border:0;padding:0;background:none;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}.season-pop{position:absolute;left:50%;top:38%;transform:translate(-50%);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-weight:var(--weight-heavy);box-shadow:var(--shadow-lg);white-space:nowrap;animation:season-pop 2.6s var(--ease-spring) both}@keyframes season-pop{0%{opacity:0;transform:translate(-50%,20px) scale(.6)}12%{opacity:1;transform:translate(-50%) scale(1)}85%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-20px) scale(.9)}}.cobweb{position:absolute;top:0;width:120px;height:120px;opacity:.55}.cobweb path{fill:none;stroke:var(--text-muted);stroke-width:.8}.cobweb--left{left:0}.cobweb--right{right:0;transform:scaleX(-1)}.spider{position:absolute;top:0;right:70px;display:flex;flex-direction:column;align-items:center;animation:spider-drop 9s ease-in-out infinite}.spider__thread{width:1px;height:120px;background:var(--text-muted);opacity:.6}.spider__body{width:26px;height:26px;animation:spider-wiggle 1.2s ease-in-out infinite}@keyframes spider-drop{0%,to{transform:translateY(-110px)}40%,60%{transform:translateY(40px)}}@keyframes spider-wiggle{50%{transform:rotate(8deg)}}.bat{position:absolute;top:var(--y);left:-80px;width:calc(56px * var(--s, 1));fill:#2a1f26;animation:bat-fly var(--dur, 10s) linear infinite;animation-delay:var(--delay, 0s)}.bat__wings{transform-origin:30px 13px;animation:bat-flap .35s ease-in-out infinite alternate}@keyframes bat-fly{0%{transform:translate(0)}25%{transform:translate(30vw,-4vh)}50%{transform:translate(60vw,3vh)}75%{transform:translate(90vw,-2vh)}to{transform:translate(calc(100vw + 160px),2vh)}}@keyframes bat-flap{to{transform:scaleY(.35)}}.season-pumpkin{left:10px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 22px);width:54px}.pumpkin{display:block;width:100%;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25));animation:pumpkin-bob 3s ease-in-out infinite}.pumpkin__glow{animation:pumpkin-glow 1.4s ease-in-out infinite alternate}@keyframes pumpkin-bob{50%{transform:rotate(-4deg) translateY(-2px)}}@keyframes pumpkin-glow{to{fill:#ffad3a}}.ghost{position:absolute;left:30px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 60px);font-size:3rem;animation:ghost-up 2.6s ease-out forwards}@keyframes ghost-up{0%{opacity:0;transform:translateY(20px) scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(40px,-50vh) scale(1.4) rotate(10deg)}}.lights{position:absolute;top:calc(var(--safe-top) - 2px);left:0;width:100%;height:30px}.lights__bulbs span{position:absolute;width:8px;height:12px;margin-top:var(--safe-top);border-radius:50% 50% 45% 45%;background:hsl(calc(var(--i) * 70) 80% 60%);box-shadow:0 0 10px hsl(calc(var(--i) * 70) 90% 60%);animation:bulb-twinkle 1.6s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.3s)}@keyframes bulb-twinkle{to{opacity:.35;box-shadow:none}}.snowflake{position:absolute;top:-12px;width:calc(7px * var(--s));height:calc(7px * var(--s));border-radius:50%;background:#fff;box-shadow:0 0 4px #96aac8cc;opacity:.9;animation:snow-fall linear infinite}@keyframes snow-fall{to{transform:translate(var(--drift),105vh)}}.santa-peek{right:-6px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 18px);width:54px;animation:santa-peek 12s ease-in-out infinite}.santa-peek svg{display:block;width:100%;transform:rotate(-18deg)}@keyframes santa-peek{0%,30%,to{transform:translate(46px)}40%,70%{transform:translate(0)}}.firework{position:absolute;width:0;height:0}.firework span{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);animation:firework 1.6s ease-out forwards}@keyframes firework{0%{transform:rotate(var(--a)) translate(0) scale(1.2);opacity:1}70%{opacity:1}to{transform:rotate(var(--a)) translate(70px) translateY(14px) scale(.3);opacity:0}}.confetti{position:absolute;top:-12px;width:7px;height:11px;border-radius:2px;animation:confetti-fall linear infinite}@keyframes confetti-fall{to{transform:translate(var(--drift),105vh) rotate(720deg)}}.cheers{right:12px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 22px);font-size:2.2rem;animation:cheers-clink 2.4s ease-in-out infinite}@keyframes cheers-clink{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-14deg)}90%{transform:rotate(10deg)}}.bunny{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + var(--dock-height) - 10px);width:64px;margin-left:-32px;animation:bunny-peek 10s ease-in-out infinite}.bunny__ear{transform-origin:22px 34px;animation:ear-wiggle 1.4s ease-in-out infinite}.bunny__ear--r{transform-origin:38px 34px;animation-delay:-.7s}@keyframes bunny-peek{0%,35%,to{transform:translateY(80px)}45%,75%{transform:translateY(0)}}@keyframes ear-wiggle{50%{transform:rotate(-8deg)}}.egg{display:block;width:100%;filter:drop-shadow(0 3px 5px rgba(0,0,0,.2))}.egg-corner{position:absolute;top:calc(var(--safe-top) + 6px);width:26px;animation:egg-rock 3s ease-in-out infinite}.egg-corner--left{left:8px}.egg-corner--right{right:64px;animation-delay:-1.5s}.hidden-egg{width:30px;animation:egg-rock 2.4s ease-in-out infinite}@keyframes egg-rock{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.chick{position:absolute;left:50%;top:46%;margin-left:-24px;font-size:3rem;animation:chick-hop 2.4s ease-out forwards}@keyframes chick-hop{0%{opacity:0;transform:translateY(30px) scale(.4)}20%{opacity:1;transform:translateY(-20px) scale(1.1)}35%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px)}65%,85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}.shamrock{position:absolute;top:-40px;width:calc(26px * var(--s));opacity:.6;animation:shamrock-fall linear infinite}@keyframes shamrock-fall{to{transform:translate(var(--drift),108vh) rotate(380deg)}}.rainbow{position:absolute;right:-20px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 30px);width:120px;opacity:.55}.gold-pot{right:6px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 24px);width:44px}.gold-pot svg{display:block;width:100%}.coins span{position:absolute;right:26px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 50px);width:14px;height:14px;border-radius:50%;background:#f2c45a;border:2px solid #b8862a;animation:coin-burst 1.4s ease-out forwards;animation-delay:var(--d)}@keyframes coin-burst{0%{transform:rotate(var(--a)) translateY(0);opacity:1}60%{transform:rotate(var(--a)) translateY(-120px);opacity:1}to{transform:rotate(var(--a)) translateY(-90px);opacity:0}}:root[data-season=halloween] .days-card{background:linear-gradient(140deg,#f38b37,#c2410c,#4c1d95)}:root[data-season=patrick] .days-card{background:linear-gradient(140deg,#6cc78a,#2f8a4a 55%,#1d5c35)}:root[data-season=paske] .days-card{background:linear-gradient(140deg,#eaa93b,#db6a92 55%,#8f6bc2)}:root[data-season=nyttar] .days-card{background:linear-gradient(140deg,#3a1730,#1d2b52 60%,#b8862a 130%)}@media (prefers-reduced-motion: reduce){.season *,.season-pop{animation:none!important}.snowflake,.confetti,.shamrock,.bat,.firework{display:none}}.float-heart{position:absolute;bottom:-30px;width:calc(20px * var(--s));opacity:.75;animation:heart-rise linear infinite}@keyframes heart-rise{0%{transform:translate(0) rotate(-8deg);opacity:0}10%{opacity:.75}to{transform:translate(var(--drift),-110vh) rotate(10deg);opacity:0}}.cupid{top:22%;left:-80px;width:64px;animation:cupid-fly 16s ease-in-out infinite}.cupid svg{display:block;width:100%}.cupid__wing{transform-origin:35px 18px;animation:cupid-flap .4s ease-in-out infinite alternate}@keyframes cupid-fly{0%{transform:translate(0)}45%{transform:translate(calc(50vw + 40px),-6vh)}55%{transform:translate(calc(50vw + 40px),-4vh)}to{transform:translate(calc(100vw + 160px),4vh)}}@keyframes cupid-flap{to{transform:scaleY(.5)}}.heart-burst{position:absolute;left:50%;top:30%}.heart-burst span{position:absolute;color:var(--rose);font-size:1.4rem;animation:heart-burst 1.4s ease-out forwards}@keyframes heart-burst{0%{transform:rotate(var(--a)) translateY(0) scale(.4);opacity:1}to{transform:rotate(var(--a)) translateY(-110px) scale(1.2);opacity:0}}.anniv-ribbon{position:absolute;bottom:calc(var(--safe-bottom) + var(--dock-height) + 26px);left:50%;transform:translate(-50%);max-width:calc(100% - 140px);padding:6px 16px;border-radius:var(--radius-pill);background:linear-gradient(90deg,#f2c45a,#f28fb0,#f2c45a);background-size:200% 100%;color:#3a1730;font-size:var(--text-sm);font-weight:var(--weight-heavy);text-align:center;box-shadow:var(--shadow-md);animation:ribbon-shine 4s linear infinite;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font-family:inherit;display:inline-flex;align-items:center;gap:8px;pointer-events:auto;cursor:pointer;transition:opacity .4s ease,transform .4s var(--ease-out)}.anniv-ribbon__close{display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:#3a173026;font-size:.62rem}.anniv-ribbon.is-leaving{opacity:0;transform:translate(-50%) translateY(14px) scale(.92)}@keyframes ribbon-shine{to{background-position:-200% 0}}.gift{right:12px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 22px);width:50px;animation:pumpkin-bob 2.6s ease-in-out infinite}.gift svg{display:block;width:100%;overflow:visible}.gift__lid{transition:transform .6s var(--ease-spring);transform-origin:46px 24px}.gift.is-open .gift__lid{transform:rotate(35deg) translate(6px,-14px)}.advent-candles{left:8px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 20px);width:86px}.advent-candles svg{display:block;width:100%;overflow:visible}.candle-flame{transform-origin:4px 16px;filter:drop-shadow(0 0 4px #ffb03a);animation:flame .9s ease-in-out infinite alternate}@keyframes flame{0%{transform:scale(1) rotate(-3deg)}to{transform:scale(.85,1.15) rotate(4deg);fill:#ffd76a}}.bunting{position:absolute;top:calc(var(--safe-top) - 2px);left:0;width:100%;height:46px;transform-origin:50% 0;animation:bunting-sway 4s ease-in-out infinite}@keyframes bunting-sway{50%{transform:rotate(.8deg) translateY(2px)}}.bunting__flags{position:absolute;top:calc(var(--safe-top) - 2px);left:0;width:100%;animation:bunting-sway 4s ease-in-out infinite}.bunting__flag{position:absolute;width:34px;margin-left:-17px;transform-origin:50% 0;animation:flag-swing 2.6s ease-in-out infinite}.bunting__flag img,.national-flag__cloth img{display:block;width:100%;height:auto;border-radius:2px;box-shadow:0 2px 4px #0003}@keyframes flag-swing{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.national-flag{right:14px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 18px);width:64px;height:70px}.national-flag__pole{position:absolute;left:0;bottom:0;width:3px;height:70px;border-radius:2px;background:linear-gradient(90deg,#d8d2c8,#8a8378)}.national-flag__pole:before{content:"";position:absolute;top:-5px;left:-2.5px;width:8px;height:8px;border-radius:50%;background:#f2c45a}.national-flag__cloth{position:absolute;left:3px;top:2px;width:56px;overflow:hidden;transform-origin:0 50%;animation:flag-wave 1.8s ease-in-out infinite}.national-flag__cloth:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 30%,transparent 50%,rgba(255,255,255,.2) 70%,transparent 100%);background-size:200% 100%;animation:flag-shade 1.8s linear infinite}@keyframes flag-wave{0%,to{transform:skewY(0) scaleX(1)}25%{transform:skewY(4deg) scaleX(.96)}75%{transform:skewY(-3deg) scaleX(.98)}}@keyframes flag-shade{to{background-position:-200% 0}}.bonfire-glow{position:absolute;left:-10%;right:-10%;bottom:-30vh;height:60vh;background:radial-gradient(ellipse at 50% 100%,rgba(255,140,50,.35),transparent 65%);animation:glow-flicker 2.2s ease-in-out infinite alternate}@keyframes glow-flicker{to{opacity:.6}}.spark{position:absolute;bottom:calc(var(--safe-bottom) + var(--dock-height));width:4px;height:4px;border-radius:50%;background:#ffb03a;box-shadow:0 0 6px #ff7a2a;animation:spark-rise ease-out infinite}@keyframes spark-rise{0%{transform:translate(0);opacity:1}to{transform:translate(var(--drift),-55vh);opacity:0}}.flower-crown{position:absolute;top:calc(var(--safe-top) + 2px);left:6px;width:92px;transform:rotate(-12deg)}.bonfire{left:12px;bottom:calc(var(--safe-bottom) + var(--dock-height) + 22px);font-size:2.4rem;animation:flame .8s ease-in-out infinite alternate}:root[data-season=valentin] .days-card{background:linear-gradient(140deg,#ff8fa8,#e0245e 55%,#8e1543)}:root[data-season=arsdag] .days-card{background:linear-gradient(140deg,#f2c45a,#e0607e 55%,#a8244f)}:root[data-season=midtsommer] .days-card{background:linear-gradient(140deg,#ffcf6b,#f08a3c,#c2410c)}@media (prefers-reduced-motion: reduce){.float-heart,.spark,.cupid{display:none}}.tester-tools__sounds{display:flex;flex-wrap:wrap;gap:6px}.head-actions{flex:none;display:flex;gap:var(--space-2)}.icon-btn--bell{position:relative;border:0;cursor:pointer}.icon-btn--bell:active{transform:scale(.92) rotate(12deg)}.icon-btn__badge{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-size:.68rem;font-weight:var(--weight-bold);line-height:1;box-shadow:0 0 0 2px var(--bg);animation:badge-pop .4s var(--ease-spring)}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.notif-sheet__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.notif-sheet__head h2{margin:0}.notif-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.notif-list li{display:flex;flex-direction:column;gap:var(--space-2)}.notif{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm)}.notif.is-new{background:color-mix(in srgb,var(--brand) 12%,var(--surface));box-shadow:inset 3px 0 0 var(--brand),var(--shadow-sm)}.notif__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif__text span{color:var(--text-muted);font-size:var(--text-sm)}.notif__when{flex:none;color:var(--text-muted);font-size:.72rem;white-space:nowrap}.notif__heart{align-self:flex-start}.memories-top{display:flex;flex-direction:column;gap:var(--space-3)}.memories-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.memories-stats span{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text-muted);font-size:var(--text-xs)}.memories-stats b{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.1;color:var(--text)}.memories-top .memory-add{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-2);align-self:stretch}.memory-add__new,.memory-add__capsule{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:52px;padding:var(--space-3);border:0;border-radius:var(--radius-md);font:inherit;font-weight:var(--weight-bold);cursor:pointer;transition:transform .15s var(--ease-out)}.memory-add__new:active,.memory-add__capsule:active{transform:scale(.97)}.memory-add__new{background:var(--love-gradient);color:#fff;box-shadow:0 8px 20px -10px var(--brand)}.memory-add__new span{font-size:1.4rem;line-height:1}.memory-add__capsule{background:var(--sticker-lilac);color:var(--text)}.chapter{position:relative;padding-left:22px}.chapter:before{content:"";position:absolute;left:5px;top:14px;bottom:calc(-1 * var(--space-5));width:2px;border-radius:2px;background:linear-gradient(var(--brand),color-mix(in srgb,var(--brand) 15%,transparent));opacity:.45}.chapter:last-of-type:before{bottom:0}.chapter .chapter__head{position:relative;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:var(--space-2)}.chapter .chapter__head:before{content:"";position:absolute;left:-22px;top:7px;width:12px;height:12px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 22%,var(--bg))}.chapter .chapter__head h2{font-size:1.5rem}.chapter .chapter__number{padding:2px var(--space-2);border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,transparent);font-size:.66rem}.memory-card{position:relative;overflow:hidden;padding:0;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:0}.memory-card__date{position:absolute;top:var(--space-3);left:var(--space-3);z-index:1;display:flex;flex-direction:column;align-items:center;min-width:42px;padding:5px 6px 4px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);line-height:1}.memory-card__date b{font-family:var(--font-display);font-size:1.15rem}.memory-card__date small{margin-top:2px;font-size:.62rem;font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}.memory-card--photo .memory-collage{height:240px;border-radius:0;gap:3px}.memory-card--photo .memory-card__text{position:absolute;inset:auto 0 0 0;padding:var(--space-7) var(--space-4) var(--space-4);background:linear-gradient(transparent,#1a0a16c7);color:#fff}.memory-card--photo .memory-card__text small{color:#ffffffd9}.memory-card--photo .memory-card__note{-webkit-line-clamp:1;color:#ffffffe6;font-size:var(--text-sm)}.memory-card--plain{padding:var(--space-4) var(--space-4) var(--space-5) calc(var(--space-3) + 42px + var(--space-3));min-height:84px}.memory-card--plain .memory-card__note{-webkit-line-clamp:3;font-style:italic;color:var(--text);opacity:.85}.memory-card--peach{background:var(--sticker-peach)}.memory-card--rose{background:var(--sticker-rose)}.memory-card--gold{background:var(--sticker-gold)}.memory-card--lilac{background:var(--sticker-lilac)}.sheet,.advent-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sheet__actions{position:sticky;bottom:calc(-1 * (var(--space-5) + var(--safe-bottom)));z-index:1;margin:0 calc(-1 * var(--space-4)) calc(-1 * (var(--space-5) + var(--safe-bottom)));padding:var(--space-3) var(--space-4) calc(var(--space-3) + var(--safe-bottom));background:var(--bg);box-shadow:0 -8px 16px -12px #00000040}.date-tips .tip-checks,.date-tips .date-run__notes{list-style:none;margin:0;padding:0}.tip-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.date-tips .tip-checks li+li,.date-tips .date-run__notes li+li{margin-top:0}.tip-check{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:flex-start;gap:var(--space-3);padding:10px var(--space-3);border:0;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .2s ease,transform .12s var(--ease-out)}.tip-check:active{transform:scale(.98)}.tip-check__box{flex:none;display:grid;place-items:center;width:24px;height:24px;border:2px solid var(--brand);border-radius:50%;color:var(--brand);font-size:.72rem;font-weight:var(--weight-heavy);transition:background .2s ease,color .2s ease}.tip-check__text{padding-top:1px}.tip-check.is-on{background:color-mix(in srgb,var(--brand) 10%,transparent)}.tip-check.is-on .tip-check__box{background:var(--brand);color:#fff;animation:badge-pop .3s var(--ease-spring)}.tip-check.is-on .tip-check__text{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--text) 45%,transparent);opacity:.6}.date-run__progress{display:flex;flex-direction:column;gap:4px}.date-run__progress small{color:var(--text-muted)}.date-run{padding:var(--space-4);border-radius:var(--radius-md);background:var(--sticker-lilac)}.date-run h3{margin:0}.date-run__notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.date-run__notes li{position:relative;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface)}.date-run__notes p{margin:2px 0 0}.date-run__notes .link-btn{position:absolute;top:var(--space-2);right:var(--space-3);font-size:var(--text-xs)}.date-run__add-note{display:flex;gap:var(--space-2)}.date-run__add-note input{flex:1;min-width:0}.date-run__cancel-link{align-self:flex-start;color:var(--danger);font-size:var(--text-sm)}.date-run__start-hint{font-size:var(--text-sm)}.date-run__saved{align-items:center;text-align:center;padding:var(--space-5) 0}.date-run__saved h2{margin:0}.date-run__saved-icon{font-size:3rem;animation:badge-pop .5s var(--ease-spring)}.date-run__progress .meter{background:color-mix(in srgb,var(--brand) 15%,transparent)}.date-run__progress .meter span{background:var(--love-gradient);transition:width .3s var(--ease-out)}.date-run__end{padding-top:var(--space-4);border-top:1px dashed color-mix(in srgb,var(--text) 18%,transparent)}.date-run__end .advent-sheet__buttons{align-items:center}.date-run__end .date-run__cancel-link{margin-left:auto}.date-run__confirm{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb,var(--brand) 10%,var(--surface));animation:sheet-up .25s var(--ease-out)}.date-run__confirm.is-cancel{background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.date-run__confirm p{margin:0}.sheet__actions>.date-run__confirm{flex:1 1 100%}.date-tips__recipe-name{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--sticker-peach);font-size:var(--text-sm)}.notif-sheet__tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.notif-sheet__clear{margin-left:auto;color:var(--danger);font-size:var(--text-sm)}.notif-sheet__confirm{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-left:auto;font-size:var(--text-sm)}.review-controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.review-controls select,.review-controls input{flex:1 1 140px;min-width:0}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.review-item{border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}.review-item--row,.review-item__head{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3)}.review-item__head{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.review-item__id{flex:none;min-width:2em;color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold)}.review-pair{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.review-pair span+span{color:var(--text-muted);font-size:var(--text-sm)}.review-tip{padding:0 var(--space-4) var(--space-4);font-size:var(--text-sm)}.review-tip h4{margin:var(--space-3) 0 var(--space-1)}.review-tip ul,.review-tip ol{margin:0;padding-left:1.3em}.mail-letter{position:relative;display:block;width:190px;height:128px;border-radius:10px;background:linear-gradient(160deg,#fff6ef,#ffe1d3);box-shadow:0 18px 40px -16px #3a17308c,inset 0 0 0 1px #3a17300f;overflow:hidden}.mail-letter:before,.mail-letter:after{content:"";position:absolute;bottom:0;width:60%;height:70%;background:linear-gradient(160deg,#ffe7da,#ffd6c4)}.mail-letter:before{left:0;clip-path:polygon(0 0,100% 100%,0 100%)}.mail-letter:after{right:0;clip-path:polygon(100% 0,100% 100%,0 100%)}.mail-letter__flap{position:absolute;inset:0 0 auto 0;z-index:1;height:58%;background:linear-gradient(160deg,#ffd0bd,#ffb8a0);clip-path:polygon(0 0,100% 0,50% 100%)}.mail-letter__seal{position:absolute;left:50%;top:56%;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8577f,#a8244f);color:#fff;font-size:1rem;box-shadow:0 2px 6px #3a173059}.mail-letter.is-locked .mail-letter__seal{font-size:.9rem}.mail-letter--small{width:52px;height:36px;border-radius:5px;box-shadow:0 6px 14px -6px #3a173099,inset 0 0 0 1px #3a173014}.mail-letter--small .mail-letter__seal{width:16px;height:16px;font-size:.5rem}.mail-letter--small.is-locked .mail-letter__seal{font-size:.45rem}.mail-fly{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5);background:#1a0a168c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:letter-fade .3s ease-out}.mail-fly__letter{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;cursor:pointer;animation:mail-fly-in 1.6s cubic-bezier(.22,.9,.3,1) both,mail-hover 3.2s ease-in-out 1.6s infinite}.mail-fly__text,.mail-fly__buttons{animation:mail-text-in .4s ease-out 1.2s both}.mail-fly__text{display:flex;flex-direction:column;align-items:center;gap:4px;color:#fff;text-align:center}.mail-fly__text strong{font-family:var(--font-display);font-size:var(--text-lg)}.mail-fly__buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.mail-fly.is-leaving{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .5s ease}.mail-fly.is-leaving .mail-fly__text,.mail-fly.is-leaving .mail-fly__buttons{opacity:0;transition:opacity .2s ease}.mail-fly.is-leaving .mail-fly__letter{animation:mail-to-heart .65s cubic-bezier(.55,0,.7,.4) forwards}@keyframes mail-fly-in{0%{transform:translate(55vw,-60vh) rotate(38deg) scale(.45);opacity:0}15%{opacity:1}45%{transform:translate(-14vw,-14vh) rotate(-16deg) scale(.8)}70%{transform:translate(8vw,4vh) rotate(9deg) scale(.95)}86%{transform:translate(-2vw,-1vh) rotate(-4deg) scale(1.02)}to{transform:translate(0) rotate(-2deg) scale(1)}}@keyframes mail-hover{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes mail-text-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes mail-to-heart{to{transform:translateY(calc(50vh - var(--dock-height) - 40px)) rotate(8deg) scale(.27);opacity:.6}}.mail-dock{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:fixed;left:50%;bottom:calc(var(--safe-bottom) + var(--space-3) + var(--dock-height) - 12px);z-index:19;padding:4px;border:0;background:none;cursor:pointer;transform:translate(-50%) rotate(-4deg);animation:mail-land .5s var(--ease-spring)}.mail-dock.can-open .mail-letter{animation:envelope-wiggle 2.8s ease-in-out infinite}.mail-dock__count{position:absolute;top:-4px;right:-6px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-size:.66rem;font-weight:var(--weight-bold);box-shadow:0 0 0 2px var(--bg)}.mail-dock__hint{position:absolute;bottom:calc(100% + 8px);left:50%;width:max-content;max-width:240px;transform:translate(-50%) rotate(4deg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--plum);color:#fff;font-size:var(--text-sm);box-shadow:var(--shadow-md);animation:mail-text-in .25s ease-out}@keyframes mail-land{0%{transform:translate(-50%) translateY(-30px) rotate(10deg) scale(1.4);opacity:0}to{transform:translate(-50%) rotate(-4deg);opacity:1}}.notes-card__waiting{font-weight:var(--weight-bold)}@media (prefers-reduced-motion: reduce){.mail-fly__letter,.mail-fly__text,.mail-fly__buttons,.mail-dock,.mail-dock.can-open .mail-letter{animation:none}}.countdown-card--date{gap:var(--space-3);padding:var(--space-3)}.countdown-card__main{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1);border:0;border-radius:var(--radius-md);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.countdown-card__main:active{transform:scale(.98)}.countdown-card__start{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:78px;min-height:72px;padding:var(--space-2);border:0;border-radius:var(--radius-md);background:var(--love-gradient);color:#fff;font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.2;text-align:center;cursor:pointer;box-shadow:0 8px 18px -10px var(--brand);transition:transform .15s var(--ease-out)}.countdown-card__start span{font-size:1.2rem}.countdown-card__start:active{transform:scale(.95)}.countdown-card.is-today .countdown-card__start{background:#fff;color:var(--brand-dark)}.countdown-card--date .countdown-card__hint{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-2);padding:5px 12px 5px 10px;border-radius:999px;background:var(--surface);color:var(--brand-dark);font-size:var(--text-sm);font-weight:var(--weight-bold);text-decoration:none;box-shadow:0 2px 8px -3px #3a173059}.countdown-card--date .countdown-card__hint-icon{font-size:1.05rem;line-height:1}.countdown-card--date.is-today .countdown-card__hint{background:#fffffff2;color:var(--brand-dark);opacity:1;text-decoration:none}.countdown-card--date .countdown-card__hint,.countdown-card--date.is-today .countdown-card__hint,.countdown-card__start,.countdown-card.is-today .countdown-card__start{background:var(--heart);color:var(--accent-text);box-shadow:var(--shadow-sm)}.countdown-card--date.is-today .countdown-card__hint,.countdown-card.is-today .countdown-card__start{box-shadow:0 0 0 2px #ffffffbf,var(--shadow-sm)}.app-icons__pro{align-self:center;margin-left:auto}.app-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:var(--space-3) var(--space-2)}.app-icons__item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 2px;border:0;border-radius:var(--radius-md);background:none;color:var(--text);font:inherit;cursor:pointer;transition:transform .15s var(--ease-spring)}.app-icons__item:active{transform:scale(.94)}.app-icons__art{display:block;width:60px;height:60px;overflow:hidden;border-radius:22%;box-shadow:0 2px 6px #0000002e;outline:3px solid transparent;outline-offset:3px;transition:outline-color .15s}.app-icons__art svg{display:block;width:100%;height:100%}.app-icons__item.is-on .app-icons__art{outline-color:var(--brand)}.app-icons__name{font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.2;text-align:center}.app-icons__tag{position:absolute;top:0;right:4px;padding:1px 6px;border-radius:var(--radius-pill);background:var(--active-bg);color:var(--active-text);font-size:.6rem;font-weight:var(--weight-heavy);letter-spacing:.04em;text-transform:uppercase}.app-icons__how{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.app-icons__how p,.app-icons__how ol{margin:0}.app-icons__how p{font-size:var(--text-sm)}.app-icons__how ol{padding-left:1.3em;display:grid;gap:var(--space-1);font-size:var(--text-sm)}.app-icons__tag--gift{background:#1d5a3c;color:#fff8f3}.pro-status{margin:0}.promo-form{display:grid;gap:var(--space-2)}.promo-form__row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.promo-form__row input{flex:1 1 200px;min-width:0;font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.promo-form__row .btn{flex:1 0 auto}.promo-form__ok{color:var(--success, #2e8b57);font-weight:var(--weight-bold)}.promo-gifts{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.promo-gifts li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.promo-gifts li>span:nth-child(2){flex:1;font-weight:var(--weight-bold)}.gift-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:22;display:grid;place-items:center;padding:var(--space-5);background:radial-gradient(circle at 50% 35%,#2a7a52,#12372a 70%);color:#fff8f3;text-align:center;overflow:hidden;animation:letter-fade .3s ease-out}.gift-overlay__snow span{position:absolute;top:-10px;width:7px;height:7px;border-radius:50%;background:#fff;opacity:.8;animation:gift-snow 6s linear infinite}@keyframes gift-snow{to{transform:translate(20px,105vh)}}.gift-overlay__wrapped{position:relative;align-items:center;max-width:340px}.gift-overlay__wrapped h2{margin:0;color:#fff8f3}.gift-overlay__wrapped p{margin:0;opacity:.85}.gift-overlay__later{align-self:center;color:#fff8f3;opacity:.75}.gift-box{position:relative;width:150px;height:150px;margin:var(--space-4) 0 var(--space-2);border:0;padding:0;background:none;cursor:pointer;animation:gift-wiggle 2.4s ease-in-out infinite}.gift-box__body{position:absolute;left:12px;right:12px;bottom:0;height:100px;border-radius:10px;background:linear-gradient(90deg,transparent 44%,#f3d48a 44%,#f3d48a 56%,transparent 56%),#e8423f;box-shadow:0 12px 24px #0000004d}.gift-box__lid{position:absolute;left:2px;right:2px;top:28px;height:30px;z-index:1;border-radius:8px;background:linear-gradient(90deg,transparent 44%,#f3d48a 44%,#f3d48a 56%,transparent 56%),#c92f2c}.gift-box__lid:before,.gift-box__lid:after{content:"";position:absolute;bottom:100%;width:30px;height:22px;border:7px solid #f3d48a;border-radius:50% 50% 0}.gift-box__lid:before{right:50%}.gift-box__lid:after{left:50%;border-radius:50% 50% 50% 0}.gift-box__emoji{position:absolute;left:50%;bottom:22px;transform:translate(-50%);font-size:2.2rem;z-index:2}@keyframes gift-wiggle{0%,70%,to{transform:rotate(0)}75%{transform:rotate(-6deg)}80%{transform:rotate(6deg)}85%{transform:rotate(-4deg)}90%{transform:rotate(3deg)}}.gift-card{position:relative;width:min(100%,380px);max-height:85vh;overflow-y:auto;background:var(--bg);color:var(--text);text-align:left;animation:gift-card-up .6s var(--ease-spring)}.gift-card h2,.gift-card p{margin:0}.gift-card__emoji{font-size:3rem;text-align:center;animation:gift-pop .7s var(--ease-spring)}.gift-card__list{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-2)}.gift-card__list li{padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm)}@keyframes gift-card-up{0%{opacity:0;transform:translateY(60px) scale(.9)}}@keyframes gift-pop{0%{transform:scale(0) rotate(-30deg)}}@media (prefers-reduced-motion: reduce){.gift-box,.gift-overlay__snow span,.gift-card,.gift-card__emoji{animation:none}}.app-icon-row{display:flex;align-items:center;gap:var(--space-3)}.app-icon-row .app-icons__art{width:44px;height:44px}.app-icon-row strong{flex:1}.app-icons__tag--inline{position:static;margin-left:4px;vertical-align:2px}.pro-settings.sticker--gold{transform:none}.segmented button.segmented__soon{min-height:36px;padding:2px var(--space-3);font-size:var(--text-xs)}.settings-note,.field p.muted{margin:0;font-size:var(--text-sm)}.pro-codes{padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.pro-codes__row{display:flex;gap:var(--space-2)}.pro-codes__row label{flex:1;display:grid;gap:4px}.pro-codes__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.pro-codes__list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.pro-codes__list code{font-weight:var(--weight-bold);letter-spacing:.06em}.pro-codes__all{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.pro-codes__all li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--border)}.pro-codes__all li>div{display:grid;gap:2px;min-width:0}.pro-codes__all code{font-weight:var(--weight-bold);letter-spacing:.06em}.pro-codes__confirm{display:flex;gap:var(--space-1);flex:none}.test-partner__actions{display:grid;gap:var(--space-2)}.test-partner__row{display:flex;gap:var(--space-2)}.test-partner__row select{flex:1;min-width:0}.test-partner__row .btn{flex:none}.test-partner__row .btn:only-child,.test-partner__row:not(:has(select)) .btn{flex:1}.login__spam{font-size:var(--text-sm)}.test-notice h2,.test-notice p{margin:0}.test-notice__emoji{font-size:2.6rem;text-align:center}.test-notice__list{margin:0;padding-left:1.2em;display:grid;gap:var(--space-1)}.test-notice .advent-sheet__buttons{flex-direction:column-reverse}.test-notice .advent-sheet__buttons .btn{width:100%;justify-content:center}.book-key h2,.book-key p{margin:0}.book-key__emoji{font-size:2.6rem;text-align:center}.book-key__code{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.15rem;font-weight:var(--weight-bold);letter-spacing:.06em;text-align:center;word-break:break-all;-webkit-user-select:all;user-select:all}.book-key__input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.04em;text-transform:uppercase}.book-key__buttons{display:grid;gap:var(--space-2)}.book-key__reject{color:var(--danger)}.book-key__device{font-weight:600;padding:var(--space-2) var(--space-3);border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,transparent)}.story__item.is-future .story__card{background:transparent;box-shadow:none;border:2px dashed color-mix(in srgb,var(--brand) 45%,transparent)}.story__item.is-future .story__dot{background:var(--bg);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 45%,transparent),0 0 0 5px var(--bg)}.story__item.is-future:before{content:"";position:absolute;left:-27px;top:-14px;bottom:-14px;width:3px;background:repeating-linear-gradient(to top,var(--brand) 0 6px,transparent 6px 12px);animation:story-march .9s linear infinite}@keyframes story-march{to{background-position:0 -12px}}.story__now{position:relative}.story__now-dot{position:absolute;left:-46px;top:6px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--love-gradient);box-shadow:0 0 0 3px var(--bg);z-index:1}.story__now-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--brand);animation:story-ping 1.8s ease-out infinite}.story__now-dot span{font-size:1.1rem;animation:story-hop 1.8s ease-in-out infinite}@keyframes story-ping{0%{transform:scale(1);opacity:.8}to{transform:scale(1.8);opacity:0}}@keyframes story-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.story__now-card{display:flex;flex-direction:column;gap:4px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--sticker-rose)}.story__now-card strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--brand)}.story__now-card small{color:var(--text-muted);font-weight:var(--weight-bold)}.story__progress{position:relative;height:8px;margin-top:var(--space-1);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--brand) 15%,transparent);overflow:hidden}.story__progress span{position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);border-radius:inherit;background:var(--love-gradient);animation:story-fill 1.4s var(--ease-out) both}@keyframes story-fill{0%{width:0}}@media (prefers-reduced-motion: reduce){.story__item.is-future:before,.story__now-dot:after,.story__now-dot span,.story__progress span{animation:none}}@property --ms{syntax: "<number>"; inherits: false; initial-value: 0;}.milestones-card{text-decoration:none;color:inherit}.milestones-card__hype{margin:0;font-family:var(--font-display);font-size:var(--text-lg);color:var(--brand)}.milestones-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3) var(--space-2)}.milestone-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);background:var(--surface);text-align:center;animation:milestone-in .5s var(--ease-spring) both}.milestone-tile strong{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.1}.milestone-tile small{font-size:var(--text-xs);color:var(--text-muted);line-height:1.2}.milestone-tile .milestone-next{font-weight:var(--weight-bold)}.milestone-ring{display:grid;place-items:center;width:54px;height:54px;margin-bottom:var(--space-1);border-radius:50%;background:conic-gradient(var(--brand) calc(var(--ms) * 1turn),color-mix(in srgb,var(--brand) 15%,transparent) 0);animation:milestone-ring 1.2s var(--ease-out) both}.milestone-ring span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--surface);font-size:1.3rem}.milestone-tile.is-done .milestone-ring{background:conic-gradient(var(--gold, #f3c55b),var(--brand),var(--gold, #f3c55b))}.milestone-goals{display:flex;gap:3px;margin:2px 0}.milestone-goals i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--brand) 20%,transparent)}.milestone-goals i.is-on{background:var(--brand);box-shadow:0 0 6px color-mix(in srgb,var(--brand) 60%,transparent)}@keyframes milestone-ring{0%{--ms: 0}}@keyframes milestone-in{0%{opacity:0;transform:translateY(10px) scale(.95)}}.milestone-party{position:fixed;top:0;right:0;bottom:0;left:0;z-index:23;display:grid;place-items:center;padding:var(--space-5);background:color-mix(in srgb,#1b0b16 70%,transparent);overflow:hidden;animation:letter-fade .3s ease-out}.milestone-party__confetti span{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;background:var(--brand);animation:milestone-fall 2.6s ease-in infinite}.milestone-party__confetti span:nth-child(4n+1){background:#f3c55b}.milestone-party__confetti span:nth-child(4n+2){background:#ff8a5c}.milestone-party__confetti span:nth-child(4n+3){background:#8a5cf6;border-radius:50%;width:10px;height:10px}@keyframes milestone-fall{to{transform:translate(30px,110vh) rotate(720deg)}}.milestone-party__card{position:relative;width:min(100%,360px);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--bg);text-align:center;align-items:stretch;animation:gift-card-up .6s var(--ease-spring)}.milestone-party__card h2,.milestone-party__card p{margin:0}.milestone-party__emoji{font-size:4rem;line-height:1;animation:gift-pop .8s var(--ease-spring)}.milestone-party__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:var(--weight-heavy);color:var(--brand)}@media (prefers-reduced-motion: reduce){.milestone-tile,.milestone-ring,.milestone-party__confetti span,.milestone-party__card,.milestone-party__emoji{animation:none}}.trophy{position:relative;display:inline-block;line-height:0;animation:trophy-pop .7s var(--ease-spring) both}.trophy svg{display:block;overflow:visible}.trophy--bronze svg{filter:drop-shadow(0 3px 6px rgba(199,122,62,.45))}.trophy--silver svg{filter:drop-shadow(0 3px 8px rgba(213,219,227,.55))}.trophy--gold svg{filter:drop-shadow(0 4px 10px rgba(240,185,58,.65))}.trophy--platinum svg{filter:drop-shadow(0 4px 12px rgba(150,215,255,.7))}.trophy--diamond svg{filter:drop-shadow(0 4px 14px rgba(95,212,255,.85)) drop-shadow(0 0 6px rgba(179,139,255,.7))}.trophy--legendary svg{filter:drop-shadow(0 4px 16px rgba(255,92,138,.9)) drop-shadow(0 0 10px rgba(255,210,92,.7))}.trophy__shine{animation:trophy-shine 3.2s ease-in-out infinite}.trophy--gold .trophy__shine,.trophy--platinum .trophy__shine{animation-duration:2.6s}.trophy--diamond .trophy__shine,.trophy--legendary .trophy__shine{animation-duration:2s}.trophy__sparkle{transform-box:view-box;animation:trophy-twinkle 1.8s ease-in-out infinite}.trophy__aura{fill:#5fd4ff2e;transform-origin:50px 52px;animation:trophy-aura 2.4s ease-in-out infinite}.trophy--legendary .trophy__aura{fill:#ff5c8a38}.trophy__holo{animation:trophy-holo 4s linear infinite}.trophy__gem{transform-origin:50px 11px;animation:trophy-gem 2.4s ease-in-out infinite}.trophy--legendary .trophy__metal{animation:trophy-holo 6s linear infinite}@keyframes trophy-pop{0%{transform:scale(.2) rotate(-12deg);opacity:0}60%{transform:scale(1.15) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0)}}@keyframes trophy-shine{0%,35%{transform:translate(0)}75%,to{transform:translate(170px)}}@keyframes trophy-twinkle{0%,to{transform:scale(.2);opacity:0}45%{transform:scale(1.1);opacity:1}60%{transform:scale(.9);opacity:.9}}@keyframes trophy-aura{0%,to{transform:scale(.9);opacity:.6}50%{transform:scale(1.08);opacity:1}}@keyframes trophy-holo{to{filter:hue-rotate(360deg)}}@keyframes trophy-gem{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.12)}}.milestones-card{position:relative}.milestones-card__trophy{position:absolute;top:8px;right:12px;display:flex;flex-direction:column;align-items:center;gap:2px;transform:rotate(6deg)}.milestones-card__trophy small{padding:1px 8px;border-radius:var(--radius-pill);background:var(--surface);font-size:.65rem;font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;box-shadow:var(--shadow-sm)}.milestones-card .milestones-card__hype{padding-right:72px}.milestone-party__trophy{display:grid;place-items:center;padding-top:var(--space-2)}.trophy-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4) var(--space-2);padding:var(--space-4) var(--space-2);border-radius:var(--radius-md);background:var(--surface)}.trophy-showcase>span{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.trophy-showcase small{font-size:var(--text-xs);font-weight:var(--weight-bold)}@media (prefers-reduced-motion: reduce){.trophy,.trophy__shine,.trophy__sparkle,.trophy__aura,.trophy__holo,.trophy__gem,.trophy--legendary .trophy__metal{animation:none}}.story__item.is-trophy .story__dot{background:radial-gradient(circle at 50% 35%,#3a2440,#1b0f1d);box-shadow:0 0 0 2px #f3c55b,0 0 12px #f3c55b8c,0 0 0 5px var(--bg);overflow:visible}.story__item.is-trophy .story__card{background:linear-gradient(135deg,color-mix(in srgb,var(--gold, #f3c55b) 22%,var(--surface)),var(--surface) 70%)}.trophy-showcase--future{grid-template-columns:repeat(2,1fr);background:radial-gradient(circle at 50% 0%,#2a1530,#120a14)}.trophy-showcase--future small{color:#fff;text-align:center}.trophy--future svg{filter:drop-shadow(0 6px 16px rgba(0,0,0,.45))}.future__rays{animation:future-spin 24s linear infinite}.future__wing{animation:future-flap 3.2s ease-in-out infinite}.future__halo{animation:future-float 2.6s ease-in-out infinite}.future__flame{animation:future-flame .9s ease-in-out infinite alternate}.future__holo{animation:trophy-holo 6s linear infinite}@keyframes future-spin{to{transform:rotate(360deg)}}@keyframes future-flap{0%,to{transform:rotate(0)}50%{transform:rotate(-6deg)}}@keyframes future-float{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(-2.5px);opacity:1}}@keyframes future-flame{0%{transform:scaleY(.85) scaleX(1.05);opacity:.85}to{transform:scaleY(1.12) scaleX(.95);opacity:1}}@media (prefers-reduced-motion: reduce){.future__rays,.future__wing,.future__halo,.future__flame,.future__holo{animation:none}}.palettes{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-top:6px}.palettes__item{position:relative;width:48px;height:48px;padding:3px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer;transition:transform .2s var(--ease-spring),border-color .2s}.palettes__item:active{transform:scale(.92)}.palettes__item.is-on{border-color:var(--text)}.palettes__swatch{display:block;width:100%;height:100%;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff40,var(--shadow-sm)}.palettes__item .app-icons__tag{top:-6px;right:-8px}.packs__lead{margin:0;font-size:var(--text-sm)}.packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.pack-tile{display:flex;flex-direction:column;gap:6px;padding:var(--space-4);color:var(--text);text-decoration:none;transform:none;transition:transform .2s var(--ease-spring)}.pack-tile:active{transform:scale(.97)}.pack-tile .app-icons__tag{top:10px;right:10px}.pack-tile__emoji{font-size:2rem;line-height:1}.pack-tile__name{font-family:var(--font-display);font-size:1.05rem;line-height:1.2}.pack-tile__foot{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:4px}.pack-tile__bar{display:block;height:6px;border-radius:var(--radius-pill);background:var(--border);overflow:hidden}.pack-tile__bar>span{display:block;height:100%;border-radius:inherit;background:var(--love-gradient);transition:width .6s var(--ease-out)}.pack-tile__progress,.pack-tile__ahead{color:var(--text-muted);font-size:var(--text-xs);line-height:1.3}.pack-tile__ahead{color:var(--rose-dark);font-weight:var(--weight-bold)}.pack-page__back{align-self:flex-start;color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-bold);text-decoration:none}.pack-hero{display:flex;flex-direction:column;gap:var(--space-2)}.pack-hero__emoji{font-size:3rem;line-height:1}.pack-hero__name{margin:0;font-size:var(--text-xl)}.pack-hero__intro{margin:0;color:var(--text-muted)}.pack-hero small{color:var(--text-muted)}.pack-page__more{align-self:center}.pack-page__done{text-align:center;font-weight:var(--weight-bold)}.pack-list{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-4) 0 0;padding:0;list-style:none}.pack-list__item{display:flex;flex-direction:column;gap:var(--space-2)}.pack-list__row{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.pack-list__num{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);font-size:var(--text-xs);font-weight:var(--weight-bold)}.pack-list__item.is-done .pack-list__num{background:var(--rose);color:var(--accent-text)}.pack-list__text{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm);line-height:1.4}.pack-list__chip{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold)}.pack-idea{flex-wrap:wrap}.pack-idea .match-row__text{flex:1 1 0}.pack-idea__actions{display:flex;justify-content:flex-end;gap:var(--space-2);width:100%}.milestone-tile{position:relative}.milestone-tile .app-icons__tag{top:-6px;right:-2px}.pro-sheet__hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);border-radius:var(--radius-lg);background:var(--love-gradient);box-shadow:var(--love-glow);color:#fff;text-align:center}.pro-sheet__hero h2{margin:0;color:#fff}.pro-sheet__hero p{margin:0;opacity:.92}.pro-sheet__badge{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#ffffff38;font-size:1.8rem;animation:pro-badge 2.4s ease-in-out infinite}@keyframes pro-badge{50%{transform:scale(1.08) rotate(6deg)}}@media (prefers-reduced-motion: reduce){.pro-sheet__badge{animation:none}}.pro-sheet__eyebrow{font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;opacity:.85}.pro-sheet__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.pro-sheet__list li:before{content:"✨ "}.pro-sheet__unlocked{text-align:center;font-weight:var(--weight-bold)}.pro-lock-card{transform:none}.pro-lock-card p{margin:0}.milestone-tile.is-locked{cursor:pointer;opacity:.5;filter:grayscale(.7)}.pro-sheet__soon{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);font-size:var(--text-sm);text-align:center}.stats-refresh{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.stat-tile{display:flex;flex-direction:column;gap:2px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.stat-tile strong{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.1}.stat-tile span{font-size:var(--text-sm)}.stat-tile small{color:var(--text-muted);font-size:var(--text-xs)}.stat-chart{margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.stat-chart figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-sm)}.stat-chart__plot{position:relative;display:flex;align-items:flex-end;gap:2px;height:120px;padding-top:16px;border-bottom:1px solid var(--border)}.stat-chart__max{position:absolute;top:0;left:0;color:var(--text-muted);font-size:var(--text-xs)}.stat-chart__col{position:relative;flex:1;display:flex;align-items:flex-end;height:100%}.stat-chart__bar{display:block;width:100%;min-height:1px;border-radius:4px 4px 0 0;background:var(--rose)}.stat-chart__col:hover .stat-chart__bar{background:var(--rose-dark)}.stat-chart__tip{position:absolute;bottom:calc(100% + 4px);left:50%;z-index:2;display:none;padding:4px 8px;border-radius:var(--radius-sm);background:var(--active-bg);color:var(--active-text);font-size:var(--text-xs);white-space:nowrap;transform:translate(-50%);pointer-events:none}.stat-chart__col:hover .stat-chart__tip{display:block}.stat-chart__col:first-of-type .stat-chart__tip{left:0;transform:none}.stat-chart__col:last-child .stat-chart__tip{right:0;left:auto;transform:none}.stat-chart__ticks{display:flex;gap:2px;margin-top:4px}.stat-chart__ticks span{flex:1;overflow:visible;color:var(--text-muted);font-size:.6rem;white-space:nowrap}.stat-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.stat-table th{padding:6px 0;border-bottom:1px solid var(--border);font-weight:var(--weight-regular);text-align:left}.stat-table td{padding:6px 0;border-bottom:1px solid var(--border);font-weight:var(--weight-bold);text-align:right}.pull-refresh{position:fixed;top:calc(var(--safe-top) + 8px);left:50%;z-index:40;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.pull-refresh.is-settling{transition:transform .25s var(--ease-out),opacity .25s}.pull-refresh__heart{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-md);color:var(--heart)}.pull-refresh__heart svg{width:22px;height:22px}.pull-refresh.is-ready .pull-refresh__heart{background:var(--love-gradient);color:#fff}.pull-refresh.is-refreshing .pull-refresh__heart{background:var(--love-gradient);color:#fff;animation:pull-beat .9s ease-in-out infinite}.pull-refresh small{padding:2px 10px;border-radius:var(--radius-pill);background:var(--glass);color:var(--text);font-size:var(--text-xs);font-weight:var(--weight-bold);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@keyframes pull-beat{0%,to{transform:scale(1)}30%{transform:scale(1.18)}60%{transform:scale(.95)}}@media (prefers-reduced-motion: reduce){.pull-refresh.is-refreshing .pull-refresh__heart{animation:none}}.admin-hub{display:flex;flex-direction:column;gap:var(--space-2)}.admin-hub__row,.admin-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none}.admin-link{border-radius:var(--radius-lg);background:var(--sticker-lilac)}.admin-hub__emoji{font-size:1.6rem}.admin-hub__text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.admin-hub__chevron{color:var(--text-muted);font-size:1.6rem;line-height:1}.admin-jump{display:flex;flex-wrap:wrap;gap:var(--space-2)}.admin-jump .pill{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold)}.admin-group{transform:none;scroll-margin-top:var(--space-4)}.attachments{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.attachment{display:flex;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2)}.attachment__main{display:flex;flex:1;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-3);border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.attachment__main:disabled{cursor:default}.attachment__icon{font-size:1.4rem}.attachment__text{display:flex;flex-direction:column;min-width:0}.attachment__text strong{overflow:hidden;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.attachment__text small{color:var(--text-muted);font-size:var(--text-xs)}.attachment__remove{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer}.attachment-viewer{z-index:30}.attachment-viewer__title{overflow-wrap:anywhere;font-size:var(--text-lg)}.attachment-viewer__img{display:block;width:100%;max-height:60vh;border-radius:var(--radius-md);object-fit:contain;background:var(--surface-2)}.attachment-viewer__pdf{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-md);background:var(--surface-2);font-weight:var(--weight-bold);overflow-wrap:anywhere;text-align:center}.attachment-viewer__pdf span{font-size:3rem}.photo-day{display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden}.photo-day__mark{position:absolute;right:var(--space-4);top:var(--space-3);font-size:3.4rem;line-height:1;opacity:.85;transform:rotate(12deg);pointer-events:none}.photo-day>:not(.photo-day__mark){position:relative}.photo-day__top{display:flex;align-items:center;gap:var(--space-3);padding-right:4rem}.photo-day--compact .photo-day__top{padding-right:0}.photo-day__title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--text-muted)}.photo-day__prompt{font-family:var(--font-display);font-size:1.4rem;line-height:1.25;padding-right:3rem}.photo-day--compact .photo-day__prompt{font-size:1.1rem;padding-right:0}.photo-day__pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);padding:var(--space-2) var(--space-1) 0}.polaroid{margin:0;padding:8px 8px 0;background:var(--surface);border-radius:6px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-width:0;transition:transform .25s var(--ease-out, ease)}.polaroid--left{transform:rotate(-2.5deg)}.polaroid--right{transform:rotate(2deg)}.polaroid__photo{position:relative;aspect-ratio:3 / 4;width:100%;border:0;padding:0;border-radius:3px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;cursor:pointer;font:inherit;color:inherit}div.polaroid__photo{cursor:default}.polaroid__photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.polaroid__loading{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--brand);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.polaroid figcaption{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) 2px var(--space-3);font-size:var(--text-xs);color:var(--text-muted);min-height:2.6rem;overflow-wrap:anywhere}.polaroid figcaption b{font-family:var(--font-display);font-size:var(--text-sm);color:var(--text)}.polaroid__take{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border:2px dashed color-mix(in srgb,var(--brand) 55%,transparent);border-radius:3px;background:color-mix(in srgb,var(--brand) 8%,var(--surface));color:var(--brand);font:inherit;font-weight:var(--weight-bold);font-size:var(--text-sm);cursor:pointer}.polaroid__take span{font-size:2.2rem}.polaroid__wait{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.polaroid__wait.is-locked{color:var(--text);font-weight:var(--weight-bold)}.polaroid__wait.is-locked span{font-size:1.8rem}.polaroid--draft{align-self:center;width:min(100%,260px);padding-bottom:8px;transform:rotate(-1.5deg)}.polaroid--draft img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:3px;display:block}.photo-day__caption-input{width:100%;font:inherit;padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text)}.photo-day__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.photo-day__links{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-sm)}.photo-day__hint{font-size:var(--text-sm);color:var(--text-muted)}.photo-day__more{align-self:flex-start;font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--brand-dark);text-decoration:none}.photo-book__stats{margin-top:var(--space-2)}.photo-book__month-title{font-family:var(--font-display);font-size:var(--text-lg);text-transform:capitalize}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a0408eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5) var(--space-4);animation:fade-in .2s ease}.photo-viewer img{max-width:100%;max-height:80vh;border-radius:var(--radius-sm);object-fit:contain}.photo-viewer p{color:#fff;text-align:center;max-width:34ch}@keyframes fade-in{0%{opacity:0}}.photo-shelf{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);color:var(--text);text-decoration:none}.photo-shelf__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.photo-shelf__text small{color:var(--text-muted)}.photo-shelf__thumbs{display:flex}.photo-shelf__thumbs span{width:40px;height:48px;margin-left:-12px;padding:3px 3px 7px;background:var(--surface);border-radius:3px;box-shadow:var(--shadow-sm);transform:rotate(-4deg)}.photo-shelf__thumbs span:nth-child(2n){transform:rotate(5deg)}.photo-shelf__thumbs img{width:100%;height:100%;object-fit:cover;display:block}.photo-shelf__arrow{font-size:1.6rem;color:var(--text-muted)}@media (prefers-reduced-motion: reduce){.polaroid__loading,.photo-viewer{animation:none}}.photo-reminders__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.photo-reminders__row select{min-width:7rem}.photo-reminders__note{margin-top:var(--space-1);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--sticker-peach);font-size:var(--text-sm);line-height:1.45}html,body{overscroll-behavior-y:none}html{touch-action:manipulation}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:max(16px,1em)!important}}.menu-check{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.menu-check th,.menu-check td{padding:6px 4px;border-bottom:1px solid var(--border);text-align:left}.menu-check th{font-weight:400;color:var(--text-muted)}.menu-check tr.is-wrong td{color:var(--danger);font-weight:var(--weight-heavy)}.menu-log{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.menu-log li{display:grid;gap:2px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm)}.photo-day__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.today-head__who{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}.streak-badge{display:flex;align-items:center;gap:2px;padding:2px 12px 2px 6px;border:1px solid color-mix(in srgb,#ff7a2f 30%,transparent);border-radius:var(--radius-pill);background:color-mix(in srgb,#ff7a2f 14%,var(--surface));color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm)}.streak-badge b{font-size:var(--text-sm);font-weight:var(--weight-heavy);font-variant-numeric:tabular-nums}.streak-badge--waiting{border-style:dashed;border-color:color-mix(in srgb,#ff7a2f 55%,transparent)}.flame{overflow:visible;flex:none}.flame__body{transform-origin:32px 60px;animation:flame-flicker var(--flame-speed) ease-in-out infinite}.flame__core{transform-box:fill-box;transform-origin:50% 100%;animation:flame-core calc(var(--flame-speed) * .8) ease-in-out infinite}.flame__back{animation:flame-flicker calc(var(--flame-speed) * 1.3) ease-in-out infinite reverse}.flame__glow{animation:flame-glow calc(var(--flame-speed) * 2) ease-in-out infinite}.flame__halo{transform-origin:32px 36px;animation:flame-spin 8s linear infinite}.flame__rays{transform-origin:32px 36px;animation:flame-spin 14s linear infinite}.flame__spark{animation:flame-spark 1.8s ease-out infinite;opacity:0}.flame__star{transform-box:fill-box;transform-origin:center;animation:flame-twinkle 2.2s ease-in-out infinite}.flame__crown{animation:flame-crown 3s ease-in-out infinite}.flame--rainbow .flame__body{animation:flame-flicker var(--flame-speed) ease-in-out infinite,flame-rainbow 6s linear infinite}.flame--aurora .flame__body{animation:flame-flicker var(--flame-speed) ease-in-out infinite,flame-aurora 5s ease-in-out infinite}.flame--dim{filter:none}.flame--none .flame__body{animation:none}@keyframes flame-flicker{0%,to{transform:scale(1) skew(0)}25%{transform:scale(.97,1.04) skew(-2deg)}50%{transform:scale(1.02,.97) skew(1.5deg)}75%{transform:scale(.98,1.03) skew(-1deg)}}@keyframes flame-core{0%,to{transform:scale(1)}50%{transform:scale(.9,1.08)}}@keyframes flame-glow{0%,to{opacity:.7}50%{opacity:1}}@keyframes flame-spin{to{transform:rotate(360deg)}}@keyframes flame-spark{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(4px,-26px)}}@keyframes flame-twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}@keyframes flame-crown{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes flame-rainbow{to{filter:hue-rotate(360deg)}}@keyframes flame-aurora{0%,to{filter:hue-rotate(0deg) saturate(1.1)}50%{filter:hue-rotate(-70deg) saturate(1.4)}}.streak-sheet__head{display:flex;align-items:center;justify-content:space-between}.streak-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);padding:var(--space-3) 0}.streak-hero__count{font-size:var(--text-lg)}.streak-hero__count b{font-family:var(--font-display);font-size:var(--text-2xl)}.streak-hero__level{font-weight:var(--weight-bold);color:var(--brand-dark)}.streak-today{display:flex;justify-content:center;gap:var(--space-3)}.streak-today span{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-muted);font-weight:var(--weight-bold);font-size:var(--text-sm)}.streak-today span.is-done{background:color-mix(in srgb,#ff7a2f 22%,var(--surface));color:var(--text)}.streak-today__text{text-align:center;font-size:var(--text-sm)}.streak-next p{margin-top:var(--space-2);font-size:var(--text-sm)}.streak-freeze{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb,#6db6ff 16%,var(--surface))}.streak-freeze h3{font-size:var(--text-md)}.streak-freeze .btn{align-self:flex-start}.streak-freeze__dots{margin-right:var(--space-2);letter-spacing:2px}.streak-freeze__dots span{opacity:.25}.streak-freeze__dots span.is-left{opacity:1;color:#2b6fe0}.streak-how{font-size:var(--text-sm);color:var(--text-muted)}.streak-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.streak-levels li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2);text-align:center;font-size:var(--text-xs)}.streak-levels li b{font-size:var(--text-xs)}.streak-levels li small{color:var(--text-muted)}.streak-levels li:not(.is-reached){opacity:.7}@media (prefers-reduced-motion: reduce){.flame *,.flame__body{animation:none!important}}.count-dot{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-size:.7rem;font-style:normal;font-weight:var(--weight-heavy);line-height:1;vertical-align:middle;animation:badge-pop .4s var(--ease-spring)}.feedback-backdrop{z-index:25}.feedback-sheet textarea,.feedback-item textarea{font:inherit;font-size:var(--text-md);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;box-sizing:border-box;min-height:9rem;resize:vertical}.feedback-item textarea{min-height:5rem}.feedback-kinds{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.feedback-kind{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:96px;padding:var(--space-3);border:1.5px solid transparent;border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:transform .15s var(--ease-spring)}.feedback-kind:active{transform:scale(.97)}.feedback-kind:last-child:nth-child(odd){grid-column:1 / -1;min-height:0}.feedback-kind--bug{background:var(--sticker-peach)}.feedback-kind--idea{background:var(--sticker-gold)}.feedback-kind--text{background:var(--sticker-lilac)}.feedback-kind--praise{background:var(--sticker-rose)}.feedback-kind--complaint{background:var(--surface-2)}.feedback-kind__emoji{font-size:1.6rem;line-height:1.2}.feedback-kind small{color:var(--text-muted);font-size:var(--text-xs);line-height:1.35}.feedback-kind--chosen{min-height:0;flex-direction:row;align-items:center;gap:var(--space-2);border-color:var(--border)}.feedback-kind--chosen small{margin-left:auto;color:var(--brand);font-weight:var(--weight-bold);text-decoration:underline}.feedback-count{align-self:flex-end}.feedback-info{font-size:var(--text-sm)}.feedback-info summary{cursor:pointer;color:var(--brand);font-weight:var(--weight-bold)}.feedback-info ul{margin:var(--space-2) 0 0;padding-left:1.2rem;overflow-wrap:anywhere;color:var(--text-muted)}.feedback-privacy{font-size:var(--text-xs);text-align:center}.feedback-thanks{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) 0;text-align:center}.feedback-thanks h3,.feedback-thanks p{margin:0}.feedback-thanks .btn{width:100%}.feedback-thanks__emoji{font-size:3.2rem;animation:feedback-pop .5s var(--ease-spring)}@keyframes feedback-pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.feedback-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.feedback-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);border:1.5px solid transparent}.feedback-item.is-new{border-color:var(--brand)}.feedback-item__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.feedback-item__text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-item__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.feedback-status{flex-shrink:0;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-heavy);background:var(--surface-2);color:var(--text-muted)}.feedback-status--new{background:var(--active-bg);color:var(--active-text)}.feedback-status--done{background:var(--sticker-gold);color:var(--text)}.feedback-reply{padding:var(--space-2) var(--space-3);border-left:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--sticker-rose)}.feedback-reply p{margin:var(--space-1) 0 0;white-space:pre-wrap}.feedback-report{align-self:center;font-size:var(--text-xs);color:var(--text-muted)}.love-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:52px;padding:var(--space-2) var(--space-5);border:0;border-radius:var(--radius-pill);background:var(--love-gradient);color:#fff;font-family:var(--font-display);font-size:1.15rem;font-weight:var(--weight-heavy);text-decoration:none;box-shadow:0 6px 18px var(--love-glow);cursor:pointer;transition:transform .15s var(--ease-spring)}.love-btn:active{transform:scale(.96)}.love-btn--small{min-height:44px;font-size:1rem}.love-btn__heart{display:inline-block;animation:love-beat 1.6s ease-in-out infinite}@keyframes love-beat{0%,60%,to{transform:scale(1)}20%{transform:scale(1.22)}40%{transform:scale(.95)}}.support-settings--off{opacity:.6;text-decoration:none;color:inherit;border:1.5px dashed var(--text-muted)}.support-sheet{align-items:stretch;text-align:center}.support-sheet__art{display:flex;justify-content:center;margin-top:calc(var(--space-5) * -1)}.support-sheet__title{margin:0;font-family:var(--font-display)}.support-sheet__lead{margin:0;font-size:1.05rem}.support-sheet__points{margin:0;padding-left:1.2rem;text-align:left;color:var(--text-muted);font-size:var(--text-sm)}.support-sheet__tiers-box{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--sticker-rose)}.support-sheet__tiers{display:flex;gap:var(--space-2)}.support-sheet__note{text-align:center}.support-heart{overflow:visible;flex-shrink:0}.support-heart.is-animated .support-heart__body{transform-origin:24px 24px;animation:love-beat 1.8s ease-in-out infinite}.support-heart.is-animated .support-heart__glow{transform-origin:24px 24px;animation:support-glow 2.4s ease-in-out infinite}.support-heart.is-animated .support-heart__spark{transform-box:fill-box;transform-origin:center;animation:support-spark 2.2s ease-in-out infinite}.support-heart.is-animated .support-heart__spark--late{animation-delay:1.1s}@keyframes support-glow{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}@keyframes support-spark{0%,to{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}.support-badge{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1);padding:4px 14px 4px 6px;border:0;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-bold);box-shadow:var(--shadow-sm);cursor:pointer}.support-tiers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);text-align:left}.support-tiers__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface);opacity:.55}.support-tiers__row.is-reached{opacity:1}.support-tiers__row.is-current{background:var(--sticker-rose);box-shadow:inset 0 0 0 1.5px var(--brand)}.support-tiers__text{display:flex;flex-direction:column;flex:1}.supporters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.supporters__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface)}.supporters__text{display:flex;flex-direction:column;flex:1;min-width:0;overflow-wrap:anywhere}.supporters__sum{display:flex;flex-direction:column;align-items:flex-end}.support-code{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-xs);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.support-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-1)}.support-gallery__item{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-2) 0;border:0;border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:.65rem;text-align:center;cursor:pointer}@media (prefers-reduced-motion: reduce){.love-btn__heart,.support-heart.is-animated .support-heart__body,.support-heart.is-animated .support-heart__glow,.support-heart.is-animated .support-heart__spark{animation:none}}.weekly-shelf{display:flex;flex-direction:column;gap:var(--space-2)}.weekly-shelf__title{margin:var(--space-2) 0 0;font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.weekly-shelf__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.weekly-tile{position:relative;display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease-spring)}.weekly-tile:active{transform:scale(.97)}.weekly-tile--questions{background:var(--sticker-gold)}.weekly-tile--notes{background:var(--sticker-rose)}.weekly-tile--hearts{background:var(--sticker-peach)}.weekly-tile--weather{background:var(--sticker-lilac)}.weekly-tile__emoji{font-size:1.4rem;flex-shrink:0}.weekly-tile__text{display:flex;flex-direction:column;min-width:0;flex:1}.weekly-tile__text strong{font-size:var(--text-sm);line-height:1.25}.weekly-tile__text small{color:var(--text-muted);font-size:.7rem}.weekly-tile__new{position:absolute;top:-6px;right:-4px;padding:1px 7px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-size:.6rem;font-style:normal;font-weight:var(--weight-heavy);animation:badge-pop .4s var(--ease-spring)}.weekly-today{text-decoration:none;color:var(--text)}.weekly-today__eyebrow{font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}.weekly-today__row{display:flex;align-items:center;gap:var(--space-3)}.weekly-today__emoji{font-size:2rem}.weekly-detail__range{margin:calc(var(--space-2) * -1) 0 var(--space-3)}.weekly-detail__lead{margin:0}.weekly-hearts{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);text-align:center}.weekly-hearts__total{font-family:var(--font-display);font-size:3.4rem;line-height:1;color:var(--brand)}.weekly-bars{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:var(--space-2);height:140px}.weekly-bars__col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;font-size:var(--text-xs)}.weekly-bars__bar{width:100%;max-width:28px;border-radius:8px 8px 3px 3px;background:var(--brand);opacity:.35;transition:height .6s var(--ease-out)}.weekly-bars__col.is-best .weekly-bars__bar{background:var(--love-gradient);opacity:1}.weekly-parts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.weekly-parts__item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;border-radius:var(--radius-md);background:var(--surface);font-size:1.3rem}.weekly-parts__item strong{font-size:var(--text-md)}.weekly-parts__item small{font-size:.65rem}.weekly-parts__item.is-top{box-shadow:inset 0 0 0 1.5px var(--brand)}.weekly-forecast{display:flex;align-items:center;gap:var(--space-3)}.weekly-forecast>span:last-child{display:flex;flex-direction:column}.weekly-forecast__emoji{font-size:3rem}.weekly-weather{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(7,minmax(0,1fr));align-items:center;row-gap:var(--space-2);text-align:center}.weekly-weather__row{display:contents}.weekly-weather__name{text-align:left;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-weather__day{font-size:.65rem}.weekly-weather__cell{font-size:1.3rem;color:var(--text-muted)}.weekly-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.weekly-notes li{display:flex;gap:var(--space-2);align-items:flex-start}.weekly-notes p{margin:0;font-size:var(--text-sm)}.question-card__locked{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:0;text-transform:none;color:var(--text-muted)}.photo-day__locked{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.game-stats-card__art{display:grid;place-items:center;width:84px;height:84px;border-radius:var(--radius-md);background:var(--surface);font-size:2.6rem}.game-stats__hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);text-align:center}.game-stats__total{font-family:var(--font-display);font-size:3.4rem;line-height:1;color:var(--brand)}.game-stats__versus{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.game-stats__player{position:relative;display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-2) var(--space-2);border-radius:var(--radius-md);background:var(--surface);text-align:center}.game-stats__player strong{font-family:var(--font-display);font-size:2.2rem;line-height:1.1}.game-stats__player small{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-bold)}.game-stats__player--me strong{color:var(--brand)}.game-stats__player--partner strong{color:var(--gold)}.game-stats__player.is-leading{box-shadow:inset 0 0 0 2px var(--gold)}.game-stats__crown{position:absolute;top:-14px;font-size:1.4rem;animation:feedback-pop .5s var(--ease-spring)}.game-stats__split{display:flex;height:12px;overflow:hidden;border-radius:var(--radius-pill);background:var(--surface)}.game-stats__split span{transition:width .6s var(--ease-out)}.game-stats__split--me{background:var(--brand)}.game-stats__split--draw{background:var(--text-muted);opacity:.4}.game-stats__split--partner{background:var(--gold)}.game-stats__kinds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.game-stats__kinds li{display:flex;flex-direction:column;gap:4px}.game-stats__kind-name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.game-stats__kind-name small{margin-left:auto}.game-stats__fav{padding:1px 8px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-size:.65rem;font-weight:var(--weight-heavy)}.game-stats__bar{display:block;height:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--surface)}.game-stats__bar span{display:block;height:100%;border-radius:inherit;background:var(--love-gradient)}.game-stats__kind-wins{font-size:var(--text-xs)}.game-stats__facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.game-stats__facts li{display:flex;gap:var(--space-2);align-items:flex-start}.game-stats__game-title{margin:0;font-size:var(--text-md);display:flex;gap:var(--space-2);align-items:center}.game-stats__note{font-size:var(--text-xs)}.game-reactions{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + var(--space-3) + var(--dock-height) + 8px);z-index:17;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);transform:translate(-50%)}html:has(.mail-dock) .game-reactions{bottom:calc(var(--safe-bottom) + var(--space-3) + var(--dock-height) + 52px)}.game-reactions__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:50%;background:var(--surface);color:var(--text);font-size:1.6rem;box-shadow:var(--shadow-md);cursor:pointer;transition:transform .2s var(--ease-spring)}.game-reactions__toggle:active{transform:scale(.9)}.game-reactions__toggle.is-open{font-size:1.1rem;color:var(--text-muted)}.game-reactions__tray{display:flex;gap:2px;padding:6px;border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-md);animation:reactions-tray .25s var(--ease-spring);transform-origin:center bottom}@keyframes reactions-tray{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.game-reactions__emoji{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:1.6rem;cursor:pointer;transition:transform .15s var(--ease-spring)}.game-reactions__emoji:active{transform:scale(1.35)}.game-reactions__error{padding:2px 10px;border-radius:var(--radius-pill);background:var(--surface);color:var(--danger);font-size:var(--text-xs)}.game-reactions__sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;overflow:hidden;pointer-events:none}.game-reactions__fly{position:absolute;bottom:calc(var(--dock-height) + var(--safe-bottom) + 40px);display:flex;flex-direction:column;align-items:center;gap:2px;transform:translate(-50%);animation:reaction-fly 2.6s var(--ease-out) forwards}.game-reactions__fly-emoji{font-size:3.4rem;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25));animation:reaction-wobble .8s ease-in-out infinite alternate}.game-reactions__fly-name{padding:1px 8px;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:var(--text-xs);font-weight:var(--weight-bold);box-shadow:var(--shadow-sm)}.game-reactions__fly.is-mine{left:50%;bottom:calc(var(--dock-height) + var(--safe-bottom) + 70px);animation-name:reaction-fly-mine}.game-reactions__fly.is-mine .game-reactions__fly-emoji{font-size:2rem}@keyframes reaction-fly{0%{opacity:0;transform:translate(-50%,30px) scale(.4)}15%{opacity:1;transform:translate(-50%) scale(1.15)}25%{transform:translate(-50%,-20px) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-55vh) scale(.9)}}@keyframes reaction-fly-mine{0%{opacity:0;transform:translate(-50%,10px) scale(.5)}15%{opacity:1;transform:translate(-50%) scale(1.1)}to{opacity:0;transform:translate(-50%,-35vh) scale(.8)}}@keyframes reaction-wobble{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@media (prefers-reduced-motion: reduce){.game-reactions__fly,.game-reactions__fly-emoji{animation-duration:.01s;animation-iteration-count:1}.game-reactions__fly{animation:none;opacity:1}}.word-hint{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);text-align:center}.word-hint.is-shown{background:var(--sticker-gold);font-weight:var(--weight-bold)}.game-cell.is-hint{box-shadow:inset 0 0 0 3px var(--gold);animation:hint-glow 1.2s ease-in-out infinite alternate}@keyframes hint-glow{0%{background-color:transparent}to{background-color:color-mix(in srgb,var(--gold) 35%,transparent)}}.move-hint{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.hangman-hint-btn{align-self:center}.draw-hint__pattern{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.05em;white-space:pre-wrap}@media (prefers-reduced-motion: reduce){.game-cell.is-hint{animation:none;background-color:color-mix(in srgb,var(--gold) 30%,transparent)}}.weekly-tile--games{background:var(--sticker-gold)}.drawing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.drawing-tile{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:var(--space-2);border-radius:var(--radius-md);background:#fffdf8;color:#3a1730;box-shadow:var(--shadow-sm)}.drawing-tile:nth-child(odd){transform:rotate(-1.2deg)}.drawing-tile:nth-child(2n){transform:rotate(1deg)}.drawing-tile__art{display:block;width:100%;aspect-ratio:1;border-radius:var(--radius-sm);background:#fff}.drawing-tile figcaption{display:flex;flex-direction:column;text-align:center}.drawing-tile figcaption strong{font-family:var(--font-display);text-transform:capitalize}.drawing-tile figcaption small{color:#7a6070;font-size:.68rem}.drawing-collection{display:flex;align-items:center;gap:var(--space-3);color:var(--text);text-decoration:none}.drawing-collection__fan{position:relative;flex:none;width:92px;height:76px}.drawing-collection__card{position:absolute;top:6px;left:14px;width:60px;height:60px;padding:3px;border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}.drawing-collection__card svg{display:block;width:100%;height:100%}.drawing-collection__card--0{transform:rotate(-12deg) translate(-12px)}.drawing-collection__card--1{transform:rotate(8deg) translate(14px)}.drawing-collection__card--2{transform:rotate(-2deg) translateY(4px);z-index:1}.drawing-collection__text{display:flex;flex-direction:column;flex:1}input.input--match,input.input--strong{border-color:#2fa36b;box-shadow:0 0 0 1px #2fa36b}input.input--match:focus-visible,input.input--strong:focus-visible{outline-color:#2fa36b}input.input--ok{border-color:#e0a526;box-shadow:0 0 0 1px #e0a526}input.input--ok:focus-visible{outline-color:#e0a526}input.input--weak{border-color:#d64545;box-shadow:0 0 0 1px #d64545}input.input--weak:focus-visible{outline-color:#d64545}.pw-strength{display:block;margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-bold)}.pw-strength--weak{color:#d64545}.pw-strength--ok{color:#c98d10}.pw-strength--strong{color:#2fa36b}.mfa-qr{align-self:center;background:#fff;border-radius:var(--radius-sm);padding:var(--space-2)}.mfa-secret{display:flex;align-items:center;gap:var(--space-2)}.mfa-secret code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--text-sm);letter-spacing:.05em}.settings-version{margin:0;text-align:center;font-size:var(--text-sm)}.welcome__lang{position:absolute;top:calc(var(--safe-top) + var(--space-3));right:var(--space-3);z-index:2;display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border:1px solid rgb(255 255 255 / .25);border-radius:999px;background:#ffffff1a;color:var(--cream);font-size:var(--text-sm);font-weight:var(--weight-bold);min-height:36px}.welcome__lang select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;padding:0;opacity:0;font-size:16px;cursor:pointer}.settings-sub+.settings-sub{padding-top:var(--space-3);border-top:1px solid var(--border)}button.admin-hub__row{width:100%;border:0;font:inherit;text-align:left;cursor:pointer}.favorites{display:grid;gap:.5rem;margin:0}.favorites__row{display:grid;gap:.1rem;padding-bottom:.5rem;border-bottom:1px dashed color-mix(in srgb,currentColor 18%,transparent)}.favorites__row:last-child{border-bottom:0;padding-bottom:0}.favorites dt{font-size:.8rem;opacity:.75}.favorites dd{margin:0;font-weight:600;overflow-wrap:anywhere}.favorites-mine summary{cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;gap:.4rem}.favorites-mine summary::-webkit-details-marker{display:none}.favorites-mine summary:after{content:"›";margin-left:auto;font-size:1.3rem;transition:transform .2s}.favorites-mine[open] summary:after{transform:rotate(90deg)}.favorites-mine[open] summary{margin-bottom:.75rem}
