:root{--paper: #f6efe3;--paper-2: #ede4d3;--card: #fffaf1;--card-2: #fbf4e8;--overlay: rgba(30, 25, 21, .45);--ink: #1e1915;--ink-2: #554a40;--ink-3: #6e6256;--on-accent: #fffaf1;--line: #e2d7c3;--line-2: #c8b99e;--line-strong: #8a7c67;--accent: #b4462a;--accent-hover: #9a3a22;--accent-ink: #8d3520;--accent-soft: #f6e2d8;--accent-soft-2: #edc9b9;--gold: #e0a428;--gold-ink: #755000;--gold-soft: #fbeccb;--on-gold: #1e1915;--danger: #a12d2d;--danger-soft: #f7dede;--success: #2f6b4a;--success-soft: #dcefe3;--focus: var(--ink);--selection: var(--gold-soft);--shadow-1: 0 1px 2px rgba(30, 25, 21, .06), 0 1px 1px rgba(30, 25, 21, .04);--shadow-2: 0 6px 20px -8px rgba(30, 25, 21, .22), 0 2px 6px -2px rgba(30, 25, 21, .08);--shadow-3: 0 24px 60px -20px rgba(30, 25, 21, .35), 0 8px 24px -8px rgba(30, 25, 21, .14);--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-text: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: clamp(2rem, 1.4rem + 2vw, 2.75rem);--text-display: clamp(2.6rem, 1.8rem + 3.2vw, 4.25rem);--leading-tight: 1.15;--leading-snug: 1.3;--leading-body: 1.55;--tracking-tight: -.015em;--tracking-caps: .08em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--radius-sm: 6px;--radius: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 999px;--measure: 66rem;--measure-narrow: 30rem;--gutter: 1rem;--header-h: 3.5rem;--tabbar-h: 3.75rem;--tap: 2.75rem;--ease-out: cubic-bezier(.2, .7, .2, 1);--ease-in-out: cubic-bezier(.6, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-1: .12s;--dur-2: .22s;--dur-3: .42s;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #171310;--paper-2: #100d0b;--card: #211b17;--card-2: #2a231e;--overlay: rgba(0, 0, 0, .6);--ink: #f3ebdd;--ink-2: #c6b9a8;--ink-3: #9a8c7c;--on-accent: #fffaf1;--line: #332b25;--line-2: #4c4137;--line-strong: #7d6f5f;--accent: #c24a2b;--accent-hover: #ad401f;--accent-ink: #f09b7e;--accent-soft: #3b231b;--accent-soft-2: #57301f;--gold: #e8b444;--gold-ink: #f3cf7a;--gold-soft: #3a2f14;--on-gold: #1e1915;--danger: #f08a8a;--danger-soft: #3d1f1f;--success: #8fcaa6;--success-soft: #1f3327;--focus: var(--ink);--selection: var(--gold-soft);--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-3: 0 24px 60px -20px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--paper: #171310;--paper-2: #100d0b;--card: #211b17;--card-2: #2a231e;--overlay: rgba(0, 0, 0, .6);--ink: #f3ebdd;--ink-2: #c6b9a8;--ink-3: #9a8c7c;--on-accent: #fffaf1;--line: #332b25;--line-2: #4c4137;--line-strong: #7d6f5f;--accent: #c24a2b;--accent-hover: #ad401f;--accent-ink: #f09b7e;--accent-soft: #3b231b;--accent-soft-2: #57301f;--gold: #e8b444;--gold-ink: #f3cf7a;--gold-soft: #3a2f14;--on-gold: #1e1915;--danger: #f08a8a;--danger-soft: #3d1f1f;--success: #8fcaa6;--success-soft: #1f3327;--focus: var(--ink);--selection: var(--gold-soft);--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-3: 0 24px 60px -20px rgba(0, 0, 0, .7);color-scheme:dark}@media(min-width:48rem){:root{--gutter: 1.5rem;--header-h: 4rem}}@media screen{.print-sheet{color-scheme:light;--paper: #fffaf1;--paper-2: #ede4d3;--card: #fffaf1;--ink: #1e1915;--ink-2: #554a40;--ink-3: #6e6256;--line: #e2d7c3;--line-2: #c8b99e;--accent: #b4462a;--accent-ink: #8d3520;--accent-soft: #f6e2d8;color:var(--ink);background:var(--card)}}@media print{:root{--paper: #fff;--card: #fff;--paper-2: #f2f2f2;--line: #bbb;--line-2: #888;--ink: #000;--ink-2: #222;--ink-3: #555;--accent: #7a2d1a;--accent-ink: #7a2d1a;--accent-soft: #fff;--gold: #c78a00;--gold-soft: #fff;--shadow-1: none;--shadow-2: none;--shadow-3: none}}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-latin-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-latin-ext-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-4))}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:1.0625rem;line-height:var(--leading-body);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}::selection{background:var(--selection);color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-3);color:var(--ink);font-variation-settings:"opsz" 60,"SOFT" 30;text-wrap:balance}h1{font-size:var(--text-3xl);font-weight:500;font-variation-settings:"opsz" 96,"SOFT" 50}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg);font-family:var(--font-text);font-weight:600;letter-spacing:0}p{margin:0 0 var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--accent-soft-2);text-underline-offset:.18em;border-radius:var(--radius-sm)}a:hover{color:var(--accent);text-decoration-color:currentColor}small{font-size:var(--text-sm)}strong{font-weight:600}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}svg{display:inline-block;vertical-align:middle}img{max-width:100%;display:block}ul,ol{padding-left:1.25em}address{font-style:normal}hr{border:0;border-top:1px solid var(--line);margin:var(--space-5) 0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.muted{color:var(--ink-3)}.soft{color:var(--ink-2)}.eyebrow{font-family:var(--font-text);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-3)}.display{font-family:var(--font-display)}.num{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.dagger{color:var(--ink-3);font-family:var(--font-display)}.plain-list{list-style:none;margin:0;padding:0}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ring-draw{0%{stroke-dashoffset:110}to{stroke-dashoffset:0}}.stagger>*{animation:rise-in var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 28ms)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton:after{display:none}}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);appearance:none;border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--card);color:var(--ink);font-weight:600;font-size:var(--text-md);line-height:1.2;padding:.55rem 1.1rem;min-height:var(--tap);text-decoration:none;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-1);transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.5;cursor:default;box-shadow:none}.button .icon{flex:none}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.button--quiet{border-color:transparent;background:transparent;color:var(--ink-2);box-shadow:none}.button--quiet:hover:not(:disabled){background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}.button--danger{color:var(--danger)}.button--danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.button--small{min-height:2.25rem;padding:.3rem .8rem;font-size:var(--text-sm)}@media(pointer:coarse){.button--small:after{content:"";position:absolute;inset:-.25rem 0}}.button--icon{width:var(--tap);padding:0;border-radius:50%}.button--icon.button--small{width:2.25rem}.button--block{width:100%}.link-button{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;cursor:pointer;border-radius:var(--radius-sm)}.link-button:disabled{color:var(--ink);text-decoration:none;cursor:default}.form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.field__label{font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}.field__hint{font-size:var(--text-sm);color:var(--ink-3)}.field__error{color:var(--danger);font-size:var(--text-sm);margin:0}.field-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.field-row--end{align-items:flex-end}.field--auto{flex:none;width:auto}.input-inline{width:auto;min-height:2.25rem;padding:.2rem 2rem .2rem .75rem}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:var(--tap);padding:.55rem .9rem;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:inset 0 1px 2px #00000008;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}input:hover,select:hover,textarea:hover{border-color:var(--ink-2)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--ink)}input:disabled,select:disabled{opacity:.6}select{padding-right:2.25rem;cursor:pointer}input[type=search]{-webkit-appearance:none;appearance:none}input[type=search]::-webkit-search-cancel-button{cursor:pointer}.surface{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.surface--pad{padding:var(--space-5)}.surface--sunken{background:var(--paper-2);border-color:transparent;box-shadow:none}.panel{margin-top:var(--space-6);padding:var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.unions+.rows,.union+.rows,.unions+.section,.unions+.cluster{margin-top:var(--space-5)}.row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);min-height:var(--tap);padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}.row:hover{border-color:var(--line-2)}.row__icon{color:var(--ink-3);flex:none;display:inline-flex}.row__body{flex:1 1 10rem;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.row__title{font-weight:600;max-width:100%}.row__meta{max-width:100%;font-size:var(--text-sm);color:var(--ink-3)}.row__trailing{margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:.3em;font-family:var(--font-text);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;padding:.22rem .55rem;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-ink);vertical-align:middle;white-space:nowrap}.badge--milestone{background:var(--gold);color:var(--on-gold)}.badge--role,.badge--kind{background:var(--paper-2);color:var(--ink-2)}.badge--kind{text-transform:none;letter-spacing:0;font-weight:600}.badge--gold{background:var(--gold-soft);color:var(--gold-ink)}.badge--me{background:var(--ink);color:var(--paper)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-display);font-weight:600;font-size:var(--text-md);flex:none;text-transform:uppercase}.avatar--lg{width:3.5rem;height:3.5rem;font-size:var(--text-xl)}.notice{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--line);background:var(--card);margin-bottom:var(--space-4)}.notice p{margin:0}.notice__icon{flex:none;margin-top:.15rem;color:var(--ink-3)}.notice__body{flex:1;min-width:0}.notice__body .button{margin-top:var(--space-2)}.notice--error{border-color:var(--danger);background:var(--danger-soft)}.notice--error .notice__icon{color:var(--danger)}.notice--warn{background:var(--gold-soft);border-color:var(--gold)}.notice--warn .notice__icon{color:var(--gold-ink)}.notice--info{color:var(--ink-2)}.notice--success{background:var(--success-soft);border-color:var(--success)}.notice--success .notice__icon{color:var(--success)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);border:1px dashed var(--line-2);border-radius:var(--radius-lg);color:var(--ink-2)}.empty__art{color:var(--accent);width:4rem;height:4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft)}.empty h2{margin:0}.empty p{max-width:34rem;margin:0}.empty .button{margin-top:var(--space-2)}.skeleton{position:relative;overflow:hidden;background:var(--paper-2);border-radius:var(--radius-sm);color:transparent!important;pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--card),transparent);animation:shimmer 1.4s var(--ease-in-out) infinite}.skeleton--text{height:1em;width:60%;margin:.25em 0}.skeleton--title{height:1.5em;width:40%;margin-bottom:var(--space-3)}.skeleton--block{height:8rem;border-radius:var(--radius-lg)}.skeleton--row{height:var(--tap);border-radius:var(--radius)}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-3)}.menu{position:relative}.menu>summary{list-style:none;cursor:pointer;border-radius:var(--radius-pill)}.menu>summary::-webkit-details-marker{display:none}.menu__panel{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:15rem;max-width:calc(100vw - 2 * var(--gutter));padding:var(--space-2);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);z-index:40;transform-origin:top right}.menu__panel--left{right:auto;left:0;transform-origin:top left}.menu[open] .menu__panel{animation:pop-in var(--dur-2) var(--ease-spring)}.menu__head{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--line);margin-bottom:var(--space-2)}.menu__head strong{display:block;font-family:var(--font-display);font-size:var(--text-lg)}.menu__head small{color:var(--ink-3);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius);background:transparent;color:var(--ink);text-align:left;text-decoration:none;font-weight:500;cursor:pointer}.menu__item:hover{background:var(--accent-soft);color:var(--accent-ink)}.menu__item-text{display:flex;flex-direction:column;min-width:0;line-height:var(--leading-snug)}.menu__item-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);font-size:var(--text-xs);font-weight:400}.menu__item[aria-current=true],.menu__item.is-active{background:var(--paper-2)}.menu__item[aria-disabled=true]{color:var(--ink-3);cursor:default}.menu__item[aria-disabled=true]:hover{background:transparent;color:var(--ink-3)}.menu__item .icon{color:var(--ink-3);flex:none}.menu__item:hover .icon{color:inherit}.menu__item__check{margin-inline-start:auto;color:var(--accent)}.menu__item__more{margin-inline-start:auto;color:var(--ink-3)}.menu__back{font-weight:700}.menu__label{padding:var(--space-3) var(--space-3) var(--space-1)}.menu__sep{border-top:1px solid var(--line);margin:var(--space-2) 0}.menu__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.segmented{display:inline-flex;padding:.2rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper-2)}.segmented__option{appearance:none;border:0;background:transparent;color:var(--ink-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;padding:.35rem .7rem;min-height:2rem;border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.segmented__option.is-active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-1)}.lang{display:inline-flex;padding:.2rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper-2)}.lang__option{appearance:none;border:0;background:transparent;color:var(--ink-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;padding:.35rem .7rem;min-height:2rem;border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.lang__option.is-active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-1)}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:end center;padding:var(--gutter);background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--dur-2) var(--ease-out)}.dialog{width:100%;max-width:28rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);padding:var(--space-5);animation:sheet-in var(--dur-3) var(--ease-spring)}.dialog__title{margin:0 0 var(--space-2);font-size:var(--text-xl)}.dialog__body{color:var(--ink-2);margin:0 0 var(--space-5)}.dialog__actions{display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}@media(min-width:48rem){.dialog-backdrop{place-items:center}.dialog{animation-name:pop-in}}.toasts{position:fixed;left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:70;display:flex;flex-direction:column;gap:var(--space-2);width:min(26rem,calc(100vw - 2 * var(--gutter)));pointer-events:none}.has-tabbar .toasts{bottom:calc(var(--tabbar-h) + var(--space-3) + env(safe-area-inset-bottom))}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow-3);animation:toast-in var(--dur-3) var(--ease-spring)}.toast .icon{color:var(--gold);flex:none}.toast--error .icon{color:var(--danger)}.toast--success .icon{color:var(--success)}.toast__text{flex:1}.toast__close{color:inherit;opacity:.7}.pills{display:flex;gap:var(--space-2);list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pills::-webkit-scrollbar{display:none}.pill{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:.3rem .85rem;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-weight:600;font-size:var(--text-sm);text-decoration:none;white-space:nowrap;flex:none;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.pill:hover{color:var(--accent-ink);border-color:var(--accent)}.pill.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.subnav{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}.sheet{max-width:34rem;max-height:calc(100dvh - 2 * var(--gutter));display:flex;flex-direction:column;padding:0}.sheet .form{display:flex;flex-direction:column;min-height:0;gap:0}.sheet__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-3);border-bottom:1px solid var(--line)}.sheet__head .dialog__title{margin:0}.sheet__body{overflow:auto;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.sheet__body>*{flex:none}.sheet__actions{padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--line);margin:0}.date-fields{border:0;padding:0;margin:0;min-width:0}.date-fields legend{padding:0;margin-bottom:var(--space-1)}.date-fields__row{display:grid;grid-template-columns:4.5rem 1fr 5.5rem;gap:var(--space-2)}.date-fields__qualifier{grid-column:1 / -1}@media(min-width:30rem){.date-fields__row{grid-template-columns:4.5rem 1fr 5.5rem 8rem}.date-fields__qualifier{grid-column:auto}}.check-group{border:0;padding:0;margin:0;min-width:0}.check-group legend{padding:0;margin-bottom:var(--space-1)}.check{display:flex;align-items:flex-start;gap:var(--space-2);min-height:var(--tap);cursor:pointer}.check input{width:1.25rem;height:1.25rem;margin-top:.2rem;accent-color:var(--accent);flex:none}.check__text{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0}textarea{min-height:5rem;resize:vertical}.diff{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);font-size:var(--text-sm)}.diff__col{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--paper-2)}.diff__col--after{background:var(--success-soft)}.diff__col--before{background:var(--danger-soft)}.diff dl{margin:0}.diff dt{color:var(--ink-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.diff dd{margin:0 0 var(--space-1);overflow-wrap:anywhere}.matrix{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.matrix th,.matrix td{padding:var(--space-2);border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}.matrix th{color:var(--ink-3);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.matrix td:first-child{font-weight:500;color:var(--ink)}.matrix input[type=checkbox]{width:1.4rem;height:1.4rem;accent-color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{appearance:none;border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);border-radius:var(--radius-pill);padding:.15rem .6rem;min-height:1.9rem;font-size:var(--text-xs);font-weight:600;cursor:pointer}.chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.inbox-day{margin-bottom:var(--space-5)}.inbox-day__title{margin-bottom:var(--space-2)}.notification{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;cursor:pointer}.notification--unread{border-left:3px solid var(--gold)}.notification__icon{color:var(--accent);flex:none;margin-top:.1rem}.notification__title{font-weight:600}.notification__meta{font-size:var(--text-sm);color:var(--ink-3)}.notification__body{display:block;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.tabbar__badge{position:absolute;top:.15rem;right:calc(50% - 1.6rem);min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.header__badge{min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.code{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:.12em;padding:var(--space-3) var(--space-4);background:var(--paper-2);border-radius:var(--radius);display:inline-block;-webkit-user-select:all;user-select:all}.copy-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.copy-row input{flex:1 1 14rem;font-family:var(--font-mono);font-size:var(--text-sm)}.settings-nav{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.settings-nav__group{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.settings-part{position:relative;margin-bottom:var(--space-8);padding-inline-start:var(--space-5);border-inline-start:2px solid var(--line)}.settings-part--you{border-inline-start-color:var(--accent-soft-2)}.settings-part--families{border-inline-start-color:var(--gold-soft)}.settings-part__head{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);margin-inline-start:calc(-1 * var(--space-5) - 1px - 1.25rem)}.settings-part__mark{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);box-shadow:0 0 0 4px var(--paper)}.settings-part--families .settings-part__mark{background:var(--gold-soft);color:var(--gold-ink)}.settings-part__title{font-size:var(--text-2xl);line-height:var(--leading-tight);margin-bottom:var(--space-1)}.settings-sub{margin-top:var(--space-6)}.settings-sub__title{font-size:var(--text-lg);margin-bottom:var(--space-1)}.field--narrow{flex:0 1 13rem}.settings-use-name{align-self:flex-start;font-size:var(--text-sm)}.page__title-row.page__title-row--start{justify-content:flex-start;align-items:center}.settings-groups{display:flex;flex-direction:column}.settings-group{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:var(--space-3) var(--space-6);padding:var(--space-5) 0;border-top:1px solid var(--line)}.settings-group__intro h3{font-size:var(--text-xl);margin-bottom:var(--space-1)}.settings-group__intro p{font-size:var(--text-sm)}.settings-group__body{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.settings-group__body .field--narrow{flex:none;max-width:13rem}.settings-group--danger .settings-group__intro h3{color:var(--danger)}.settings-groups__unsaved{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--gold-ink)}.settings-groups__unsaved:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--gold)}.family-pick{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.family-pick__label{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-3)}.family-pick select{max-width:min(22rem,100%)}.settings-part,.settings-sub,.settings-group,.page--settings .section{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.settings-groups__save{position:sticky;bottom:var(--space-3);z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-3) 0 var(--space-5);margin-bottom:var(--space-5);border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,var(--paper) 35%)}.family-card__line{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);flex-wrap:wrap}.family-card__person{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;align-self:flex-start}.family-card__warn{color:var(--danger);font-weight:600}@media(max-width:40rem){.field--narrow{flex:none}.settings-group{grid-template-columns:minmax(0,1fr)}.has-tabbar .settings-groups__save{bottom:calc(var(--tabbar-h) + var(--space-2))}.settings-part{padding-inline-start:var(--space-4)}.settings-part__head{margin-inline-start:calc(-1 * var(--space-4) - 1px - 1.25rem)}}.admin-links{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.admin-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;font-weight:600;min-height:var(--tap)}.admin-link:hover{border-color:var(--accent);color:var(--accent-ink)}.admin-link .icon{color:var(--accent)}.consent-banners{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}.consent-banner .notice__body{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3)}.consent-card{display:grid;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);margin-bottom:var(--space-4)}.consent-card__head{display:grid;gap:var(--space-1)}.consent-card__head p{margin:0}.consent-card__name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-xl)}.consent-toggles{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.switch{position:relative;display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--tap);cursor:pointer}.switch input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.switch__track{flex:none;position:relative;width:2.6rem;height:1.5rem;margin-top:.1rem;border-radius:var(--radius-pill);background:var(--line-strong);transition:background var(--dur-1) var(--ease-out)}.switch__track:after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--paper);box-shadow:var(--shadow-1);transition:transform var(--dur-1) var(--ease-out)}.switch input:checked+.switch__track{background:var(--accent)}.switch input:checked+.switch__track:after{transform:translate(1.1rem)}.switch input:focus-visible+.switch__track{outline:2px solid var(--focus);outline-offset:2px}.switch input:disabled~*{opacity:.6}.switch__text{display:grid;gap:.1rem}.switch__text small{color:var(--ink-3)}.person-disclosure{display:flex;align-items:flex-start;gap:var(--space-2)}.page--privacy .section h2{margin-bottom:var(--space-2)}.plans{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));margin-top:var(--space-4)}.plan{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg)}.plan--current{position:relative;border:2px solid var(--accent);background:linear-gradient(180deg,var(--accent-soft) 0,var(--card) 7rem);box-shadow:var(--shadow-2)}.plan__ribbon{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-1);margin:calc(-1 * var(--space-4) - 2px) 0 0;padding:.3rem .75rem;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--accent);color:var(--on-accent);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.plan__head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.plan__head h3{margin:0}.plan__features{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.plan__features li{display:flex;align-items:baseline;gap:var(--space-2)}.plan__features .is-off{opacity:.55}.plan__action{margin-top:auto}.copy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.copy-list__row{display:flex;flex-direction:column;gap:var(--space-1);padding-block:var(--space-2);border-bottom:1px solid var(--line)}.copy-list__row select{margin-left:calc(1.25rem + var(--space-2));max-width:calc(100% - 1.25rem - var(--space-2))}.combine{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}.combine__label{color:var(--ink-3);font-size:var(--text-sm)}.combine .pill{display:inline-flex;align-items:center;gap:var(--space-1)}.entry__family{color:var(--ink-3);font-size:var(--text-xs)}.app{min-height:100dvh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:30;height:var(--header-h);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--gutter);padding-top:env(safe-area-inset-top);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}.header__inner{width:100%;max-width:var(--measure);margin:0 auto;display:flex;align-items:center;gap:var(--space-3)}.wordmark{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:1.45rem;letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 40,"SOFT" 50;border-radius:var(--radius-pill);padding-right:var(--space-2);flex:none}.wordmark:hover{color:var(--ink)}.wordmark__mark{width:1.9rem;height:1.9rem;flex:none}.wordmark__text{line-height:1;padding-top:.05em}.header__nav{display:flex;align-items:center;gap:var(--space-2);margin-inline-start:auto}.header__links{display:none;align-items:center;gap:var(--space-1)}.header__link{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-2);text-decoration:none;font-weight:600;padding:.5rem .85rem;min-height:2.5rem;border-radius:var(--radius-pill);transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.header__link:hover{color:var(--ink);background:var(--paper-2)}.header__link.active{color:var(--accent-ink);background:var(--accent-soft)}.header__link .icon{color:inherit}@media(min-width:48rem){.header__links{display:flex}}.family-switch>summary{display:inline-flex;align-items:center;gap:.4rem;max-width:12rem;min-height:2.5rem;padding:.35rem .6rem .35rem .85rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--card);color:var(--ink);font-weight:600;font-size:var(--text-sm);box-shadow:var(--shadow-1)}.family-switch>summary:hover{border-color:var(--accent)}.family-switch__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-switch>summary .icon{color:var(--ink-3);flex:none}@media(min-width:48rem){.family-switch>summary{max-width:18rem}}.user-menu>summary{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow-1)}.user-menu>summary:hover{border-color:var(--accent)}.user-menu>summary .avatar{width:2rem;height:2rem;font-size:var(--text-sm)}.main{flex:1;width:100%;max-width:var(--measure);margin:0 auto;padding:var(--space-5) var(--gutter) var(--space-8)}.has-tabbar .main{padding-bottom:calc(var(--tabbar-h) + var(--space-6) + env(safe-area-inset-bottom))}.main--full{max-width:none;padding:0}.footer{padding:var(--space-5) var(--gutter) calc(var(--space-5) + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-sm);display:flex;justify-content:center;gap:var(--space-3);align-items:center;flex-wrap:wrap}.footer__tagline{font-family:var(--font-display);font-style:normal;font-weight:500}.has-tabbar .footer{display:none}@media(min-width:48rem){.has-tabbar .footer{display:flex}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line)}.tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:var(--ink-3);text-decoration:none;font-size:var(--text-xs);font-weight:600;letter-spacing:.01em;border:0;background:none;padding:.3rem 0;border-radius:var(--radius);transition:color var(--dur-1) var(--ease-out)}.tabbar__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:1.9rem;border-radius:var(--radius-pill);transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}.tabbar__item:hover{color:var(--ink)}.tabbar__item.active{color:var(--accent-ink)}.tabbar__item.active .tabbar__icon{background:var(--accent-soft)}.tabbar__item:active .tabbar__icon{transform:scale(.92)}.tabbar__item[aria-disabled=true]{color:var(--ink-3);opacity:.6;cursor:default}.tabbar__soon{position:absolute;top:.25rem;right:.5rem;font-size:.55rem;letter-spacing:.06em;padding:.1rem .35rem;border-radius:var(--radius-pill);background:var(--paper-2);color:var(--ink-3);text-transform:uppercase}.tabbar__item{position:relative}@media(min-width:48rem){.tabbar{display:none}}.page{animation:page-in var(--dur-3) var(--ease-out) backwards}.page--narrow{max-width:var(--measure-narrow);margin:0 auto}.page--centered{min-height:60dvh;display:flex;flex-direction:column;justify-content:center}.page__header{margin-bottom:var(--space-5)}.page__header h1{margin-bottom:var(--space-2)}.page__header .eyebrow{margin:0 0 var(--space-2)}.page__lead{color:var(--ink-2);font-size:var(--text-lg);max-width:44rem}.page__title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3) var(--space-4);flex-wrap:wrap}.page__title-row h1{margin-bottom:0}.page__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.breadcrumb{display:flex;align-items:center;gap:var(--space-1);color:var(--ink-3);font-size:var(--text-sm);margin-bottom:var(--space-4)}.breadcrumb a{display:inline-flex;align-items:center;gap:.3rem;color:var(--ink-2);text-decoration:none;padding:.35rem .6rem .35rem .4rem;min-height:2.25rem;border-radius:var(--radius-pill)}.breadcrumb a:hover{background:var(--paper-2);color:var(--ink)}.section{margin-bottom:var(--space-7)}.section__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--line)}.section__head h2{margin:0;flex:1}.section__head--sub{border-bottom:0;padding-bottom:0;margin-bottom:var(--space-2)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.loading{color:var(--ink-3);display:inline-flex;align-items:center;gap:var(--space-2)}.loading:before{content:"";width:.9rem;height:.9rem;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--accent);animation:spin .9s linear infinite}.login{display:grid;gap:var(--space-6);align-items:center;min-height:calc(100dvh - var(--header-h) - 12rem)}.login__brand{display:flex;flex-direction:column;gap:var(--space-4)}.login__mark{width:3.5rem;height:3.5rem}.login__title{font-size:var(--text-display);font-weight:500;line-height:1.02;letter-spacing:-.02em;font-variation-settings:"opsz" 144,"SOFT" 60;margin:0}.login__title em{font-style:normal;color:var(--accent)}.login__lead{font-size:var(--text-lg);color:var(--ink-2);max-width:30rem;margin:0}.login__points{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);color:var(--ink-2)}.login__points li{display:flex;align-items:center;gap:var(--space-2)}.login__points .icon{color:var(--accent);flex:none}.login__art{display:none;position:relative;padding:var(--space-4)}.mini-cal{position:relative;width:100%;max-width:22rem;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-5) var(--space-5) var(--space-4);transform:rotate(-2deg)}.mini-cal:before{content:"";position:absolute;top:-.9rem;left:50%;width:1.1rem;height:1.1rem;margin-left:-.55rem;border-radius:50%;background:var(--gold);box-shadow:0 1px 2px #0003}.mini-cal__month{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;border-bottom:2px solid var(--accent);padding-bottom:var(--space-2);margin-bottom:var(--space-3);display:flex;justify-content:space-between;align-items:baseline}.mini-cal__month small{font-family:var(--font-text);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-3)}.mini-cal__row{display:grid;grid-template-columns:2rem 1fr auto;gap:var(--space-2);align-items:center;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}.mini-cal__row:last-child{border-bottom:0}.mini-cal__row--today{background:var(--gold-soft);margin:0 calc(-1 * var(--space-2));padding-left:var(--space-2);padding-right:var(--space-2);border-radius:var(--radius-sm)}.mini-cal__day{font-family:var(--font-display);font-size:var(--text-lg);color:var(--accent-ink);text-align:right;padding-right:.3rem}.mini-cal__row--quiet{color:var(--ink-3)}.login__form-card{width:100%;max-width:26rem;margin:0 auto;padding:var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-2)}.login__form-card h2{margin-bottom:var(--space-1)}.login__form-card .form{margin-top:var(--space-4)}.login__sent{text-align:center}.login__sent .empty__art{margin:0 auto var(--space-3)}@media(min-width:48rem){.login{grid-template-columns:1.15fr 1fr;gap:var(--space-8)}.login__art{display:block;margin-top:var(--space-6)}.login__form-card{margin:0;margin-inline-start:auto}}@media(min-width:64rem){.login{grid-template-columns:1.3fr 1fr}}.family-cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}.family-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.family-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px);border-color:var(--line-2)}.family-card__top{display:flex;align-items:flex-start;gap:var(--space-3)}.family-card__top h2{margin:0;flex:1;font-size:var(--text-xl)}.family-card__title-link{color:inherit;text-decoration:none}.family-card__title-link:after{content:"";position:absolute;inset:0;border-radius:inherit}.family-card__title-link:hover{color:var(--accent-ink)}.family-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;color:var(--ink-3);font-size:var(--text-sm)}.family-card__next{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--paper-2);border-radius:var(--radius);font-size:var(--text-sm);color:var(--ink-2);min-height:3.25rem}.family-card__next-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0}.family-card__next .icon{color:var(--accent);flex:none}.family-card__next strong{color:var(--ink)}.family-card__actions{position:relative;z-index:1;display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:auto}.family-card__more{margin-inline-start:auto}.home__create{margin-top:var(--space-7)}.home__create summary{list-style:none;cursor:pointer;display:inline-flex}.home__create summary::-webkit-details-marker{display:none}.home__create[open] summary{display:none}.home__create .panel{margin-top:0}.month-nav{position:sticky;top:var(--header-h);z-index:20;margin:0 calc(-1 * var(--gutter)) var(--space-5);padding:var(--space-2) var(--gutter);background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.month-nav .pills{scroll-snap-type:x proximity}.month-nav .pill{scroll-snap-align:center;min-width:3rem}.months{display:grid;gap:var(--space-5);grid-template-columns:1fr}.month{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:0 var(--space-4) var(--space-4);scroll-margin-top:calc(var(--header-h) + 3.75rem);transition:box-shadow var(--dur-2) var(--ease-out)}.month--current{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--shadow-2)}.month__head{position:sticky;top:calc(var(--header-h) + 3.4rem);z-index:5;display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin:0 calc(-1 * var(--space-4)) var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2);background:var(--card);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:2px solid var(--accent)}.month__name{font-size:var(--text-2xl);font-weight:500;margin:0;font-variation-settings:"opsz" 72,"SOFT" 60}.month__index{font-family:var(--font-display);font-size:var(--text-md);color:var(--ink-3);font-variant-numeric:tabular-nums}.month__empty{margin:var(--space-3) 0 0;color:var(--ink-3);font-style:italic}.days{list-style:none;margin:0;padding:0}.day{position:relative;display:grid;grid-template-columns:2.5rem 1fr;align-items:start;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line)}.day:last-child{border-bottom:0}.day--today{background:var(--gold-soft);margin:0 calc(-1 * var(--space-3));padding-left:var(--space-3);padding-right:var(--space-3);border-radius:var(--radius);border-bottom-color:transparent}.day--today:before{content:"";position:absolute;left:0;top:var(--space-2);bottom:var(--space-2);width:3px;border-radius:3px;background:var(--gold)}.day__number{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.3;color:var(--accent-ink);text-align:right;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 40,"SOFT" 80}.day--today .day__number{color:var(--gold-ink)}.day__today{grid-column:2;justify-self:start;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--gold-ink)}.today-marker{display:flex;align-items:center;gap:var(--space-2);color:var(--gold-ink);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-caps);padding:var(--space-2) 0}.today-marker:before,.today-marker:after{content:"";flex:1;border-top:2px dotted var(--gold)}.entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);padding-top:.2rem}.entry{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem var(--space-2);line-height:1.35}.entry__mark{display:none;width:1rem;justify-content:center;color:var(--gold-ink)}.entry--anniversary .entry__mark,.entry--remembrance .entry__mark{display:inline-flex}.entry__name a{color:var(--ink);text-decoration-color:transparent;font-weight:500;transition:text-decoration-color var(--dur-1) var(--ease-out)}.entry__name a:hover{color:var(--accent-ink);text-decoration-color:var(--accent-soft-2)}.entry__facts{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.15rem .4rem}.entry__age{color:var(--ink-3);font-size:var(--text-sm)}.entry__year{display:inline-flex;align-items:baseline;gap:.28em;white-space:nowrap;font-size:var(--text-xs);line-height:1.2;color:var(--ink-3)}.entry__age+.entry__year:before{content:"";width:2px;height:2px;border-radius:50%;background:currentColor;align-self:center;opacity:.45}.entry__year-label{font-weight:500;letter-spacing:.01em;text-transform:none;color:inherit}.entry--remembrance .entry__year-label{font-family:var(--font-display);font-size:.9rem;line-height:1;letter-spacing:0}.entry__year time{font-variant-numeric:tabular-nums lining-nums;font-weight:600;font-size:inherit;letter-spacing:.01em;line-height:1;color:var(--ink-2)}.entry--remembrance,.entry--deceased{color:var(--ink-3)}.entry--deceased .entry__name a{color:var(--ink-3);font-weight:400}.entry__death{font-variant-numeric:tabular-nums lining-nums;letter-spacing:.01em}.entry--remembrance .entry__mark{color:var(--ink-3);font-family:var(--font-display)}.entry--remembrance .entry__name a{color:var(--ink-3);font-weight:400}.entry--anniversary .entry__name a{font-style:normal}.entry .badge--milestone{font-size:.65rem;padding:.15rem .5rem}@media(min-width:48rem){.month-nav{margin-left:0;margin-right:0;padding-left:0;padding-right:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0;position:static}.months{grid-template-columns:repeat(2,1fr)}.month{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.month__head{position:static}}@media(min-width:64rem){.months{grid-template-columns:repeat(3,1fr)}}.month-nav .pill[aria-current=date]:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--gold);margin-right:.4rem}.person-hero{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-1);margin-bottom:var(--space-6)}.person-hero__body{flex:1;min-width:0}.person-header__name{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .35em;margin-bottom:var(--space-1)}.person-header__surname{font-weight:400}.person-header__dagger{font-size:.6em;color:var(--ink-3)}.person-header__name .badge{margin-inline-start:.25em;align-self:center}.page--deceased .person-hero{background:var(--paper-2)}.page--deceased .person-header__name{color:var(--ink-2)}.person-header__full{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink-3)}.facts{margin:var(--space-3) 0 0;display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4)}.facts__row{display:contents}.facts dt{color:var(--ink-3);font-size:var(--text-sm);font-weight:600;padding-top:.1rem}.facts dd{margin:0}.facts__age{color:var(--ink-2)}.person-hero__actions{margin-top:var(--space-4);display:flex;gap:var(--space-2);flex-wrap:wrap}.contacts{display:grid;gap:var(--space-2);grid-template-columns:1fr}.contact{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-3);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:border-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}a.contact:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.contact__icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--paper-2);color:var(--ink-2);flex:none}a.contact:hover .contact__icon{background:var(--card);color:var(--accent)}.contact__value{flex:1;min-width:0;overflow-wrap:anywhere}.contact__label{color:var(--ink-3);font-size:var(--text-sm)}.contact__go{color:var(--ink-3)}.addresses{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.address{display:flex;flex-direction:column;gap:.1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-4);position:relative}.address__head{display:flex;align-items:center;gap:var(--space-2);color:var(--ink-3);margin-bottom:var(--space-2)}.address__head .icon{color:var(--accent)}.address .badge{align-self:flex-start}.address--past{color:var(--ink-3);background:var(--paper-2)}.address--past .address__head .icon{color:var(--ink-3)}.relatives{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.relative{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-3);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.relative:hover{border-color:var(--line-2)}.relative__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}.relative__name a{color:var(--ink);text-decoration-color:transparent}.relative__name a:hover{color:var(--accent-ink);text-decoration-color:var(--accent-soft-2)}.relative__name--deceased a{color:var(--ink-3)}.relative__year{color:var(--ink-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.relative__remove{margin-inline-start:auto}.relative__place{display:flex;flex-wrap:wrap;gap:.35rem;margin-inline-start:auto}.relative__place+.relative__remove{margin-inline-start:0}.relative--draggable{cursor:grab}.relative--draggable:active{cursor:grabbing}.relative__grip{color:var(--ink-3);display:inline-flex;-webkit-user-select:none;user-select:none}.unions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.union{padding:var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);transition:outline-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}.union__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.union__ring{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink);flex:none}.union--ended .union__ring{background:var(--paper-2);color:var(--ink-3)}.union--ended .union__head .relative__name a{color:var(--ink-3)}.union__meta{margin:var(--space-1) 0 0 calc(2.25rem + var(--space-3));font-size:var(--text-sm);color:var(--ink-3)}.union__body{margin-top:var(--space-4)}.union__action{margin-inline-start:auto}.union__children{margin-top:var(--space-3);margin-left:1.1rem;padding-left:var(--space-4);border-left:2px solid var(--line)}.union__children-title{font-family:var(--font-text);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--ink-3);margin:0}.union--droppable{outline:2px dashed var(--line-2);outline-offset:3px}.union--over{outline-color:var(--accent);outline-style:solid;background:var(--accent-soft)}.person-hint{margin:0 0 var(--space-3);font-size:var(--text-sm);display:flex;gap:var(--space-2);align-items:flex-start}.person-hint .icon{color:var(--ink-3);flex:none;margin-top:.15rem}.notes{white-space:pre-line}.picker{margin-top:var(--space-3);padding:var(--space-4);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3);animation:rise-in var(--dur-3) var(--ease-out)}.picker__title{margin:0;font-size:var(--text-lg)}.picker__status{margin:0}.picker__results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);max-height:16rem;overflow:auto}.picker__result{appearance:none;display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap);text-align:left;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}.picker__result:hover{border-color:var(--accent)}.picker__result.is-chosen{background:var(--accent-soft);border-color:var(--accent)}.picker__result .icon{margin-inline-start:auto;color:var(--accent)}.picker__chosen{margin:0;font-weight:600}.picker__controls{align-items:flex-end}.picker__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media(min-width:48rem){.contacts{grid-template-columns:repeat(2,1fr)}}@media(max-width:40rem){.facts{grid-template-columns:1fr;gap:0}.facts dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);margin-top:var(--space-2)}.field-row{flex-direction:column}}.contact{position:relative}.contact__value{color:inherit;text-decoration:none;font-weight:500}a.contact__value:after{content:"";position:absolute;inset:0;border-radius:inherit}.contact:has(a.contact__value):hover{border-color:var(--accent);background:var(--accent-soft)}.contact:has(a.contact__value):hover .contact__icon{background:var(--card);color:var(--accent)}.contact:has(a.contact__value):hover .contact__value{color:var(--accent-ink)}@media(max-width:40rem){.relative__remove{width:var(--tap);min-height:var(--tap);padding:0;border-radius:50%;justify-content:center}.relative__remove-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.relative__remove .icon{width:20px;height:20px}}.avatar--sm{width:1.75rem;height:1.75rem;font-size:var(--text-xs)}.avatar--xl{width:6.5rem;height:6.5rem;font-size:2.25rem}.avatar--photo{background:var(--paper-2);overflow:hidden}.avatar__img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;-webkit-user-select:none;user-select:none}.avatar--xl{box-shadow:0 0 0 3px var(--card),0 0 0 4px var(--line-2),var(--shadow-2)}.tree-card__photo{position:absolute;top:-.7rem;left:-.7rem;width:2.6rem;height:2.6rem;border-radius:50%;object-fit:cover;background:var(--paper-2);border:2px solid var(--card);box-shadow:0 0 0 1px var(--line-2),var(--shadow-1);pointer-events:none}.tree-card--deceased .tree-card__photo{filter:grayscale(.85);border-color:var(--paper-2)}.tree-card--photo .tree-card__name,.tree-card--photo .tree-card__surname{padding-inline-start:1.5rem}.photo-card{min-width:0;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 0% 0%,var(--accent-soft) 0%,transparent 60%),var(--card-2)}.photo-card .avatar--xl{flex:none}.photo-card__body{min-width:0;flex:1}.photo-card__name{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight);overflow-wrap:anywhere}.photo-card__note{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-3)}.photo-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:30rem){.photo-card{flex-direction:column;text-align:center;padding:var(--space-4)}.photo-card__actions{justify-content:center}}.sheet--wide{max-width:42rem}.form-section{min-width:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card-2);padding:var(--space-4) var(--space-5) var(--space-5)}.form-section__head{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.form-section__icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink)}.form-section__title{margin:0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:var(--leading-tight)}.form-section__hint{margin:.15rem 0 0;font-size:var(--text-sm);color:var(--ink-3)}.form-section__body{display:flex;flex-direction:column;gap:var(--space-4)}.form-grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}@media(min-width:30rem){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--prefix{grid-template-columns:9rem minmax(0,1fr)}}.vis-choice{border:0;margin:0;padding:0;min-width:0}.vis-choice__legend{padding:0;margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}.vis-choice__group{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;max-width:100%;padding:3px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper-2)}.vis-choice__option{position:relative;display:block;cursor:pointer}.vis-choice__option input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.vis-choice__text{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--text-sm);font-weight:600;color:var(--ink-2);text-align:center;line-height:1.2;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.vis-choice__option:hover .vis-choice__text{color:var(--ink)}.vis-choice__option input:checked+.vis-choice__text{background:var(--card);color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent),var(--shadow-1)}.vis-choice__option input:focus-visible+.vis-choice__text{outline:2px solid var(--focus);outline-offset:2px}@media(max-width:30rem){.sheet--wide .sheet__body{padding:var(--space-3)}.form-section{padding:var(--space-3) var(--space-3) var(--space-4)}.vis-choice__group{display:grid;width:100%}.vis-choice__text{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.cropper{display:flex;flex-direction:column;gap:var(--space-4);align-items:center}.cropper__stage{position:relative;width:min(100%,22rem);aspect-ratio:1;overflow:hidden;border-radius:var(--radius-lg);background:var(--paper-2);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.cropper__stage:active{cursor:grabbing}.cropper__stage:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.cropper__image{position:absolute;max-width:none;height:auto;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none}.cropper__mask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 999px var(--overlay),inset 0 0 0 2px var(--on-accent);pointer-events:none}.cropper__zoom{display:flex;align-items:center;gap:var(--space-2);width:min(100%,22rem)}.cropper__zoom input[type=range]{flex:1;min-height:var(--tap);padding:0;accent-color:var(--accent)}.cropper__help{margin:0;text-align:center;max-width:22rem}.roll{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.roll__cell{appearance:none;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:var(--space-3) var(--space-4) var(--space-3);font:inherit;color:var(--ink);background:transparent;border:0;border-inline-start:1px solid var(--line);cursor:pointer;text-align:left;animation:rise-in var(--dur-3) var(--ease-out) both;transition:background-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.roll__cell:first-child{border-inline-start:0}.roll__cell:nth-child(2){animation-delay:40ms}.roll__cell:nth-child(3){animation-delay:80ms}.roll__cell:nth-child(4){animation-delay:.12s}.roll__cell:hover{background:var(--paper-2)}.roll__cell:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.roll__cell.is-active{background:var(--accent-soft);box-shadow:inset 0 -3px 0 var(--accent)}.roll__cell .mark__dot{position:absolute;top:var(--space-3);right:var(--space-4)}.roll__count{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.roll__cell.is-empty .roll__count{color:var(--ink-3)}.roll__label{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.roll__cell.is-active .roll__label{color:var(--accent-ink)}@media(max-width:40rem){.roll{grid-template-columns:repeat(2,1fr)}.roll__cell:nth-child(3){border-inline-start:0}.roll__cell:nth-child(n+3){border-top:1px solid var(--line)}}.mark{display:inline-flex;align-items:center;gap:.4em;font-size:var(--text-sm);font-weight:600;color:var(--ink-3);white-space:nowrap}.mark--member{color:var(--success)}.mark--invited{color:var(--gold-ink)}.mark__dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:none}.mark__dot--member{background:var(--success)}.mark__dot--invited{background:var(--gold)}.mark__dot--ready{background:var(--accent)}.mark__dot--no_email{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-3)}.mark--action{appearance:none;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--accent-ink);background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);padding:.25rem .6rem;margin:-.25rem 0;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.mark--action:hover{background:var(--accent-soft);border-color:var(--accent-soft-2)}.mark--action:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.relatives.is-picking .relative{cursor:pointer}.relatives.is-picking .relative.is-off{cursor:default;opacity:.55}.relative.is-picked{border-color:var(--accent);background:var(--accent-soft)}.pick{appearance:none;flex:none;width:1.35rem;height:1.35rem;margin:0;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);display:inline-grid;place-content:center;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-spring)}.pick:after{content:"";width:.35rem;height:.65rem;margin-top:-.15rem;border:solid var(--on-accent);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform var(--dur-1) var(--ease-spring)}.pick:checked{background:var(--accent);border-color:var(--accent)}.pick:checked:after{transform:rotate(45deg) scale(1)}.pick:disabled{opacity:.4;cursor:default}.pick:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tray{position:fixed;z-index:35;inset-inline:var(--gutter);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));max-width:44rem;margin-inline:auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--paper);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);animation:toast-in var(--dur-3) var(--ease-spring) both}.has-tabbar .tray{bottom:calc(var(--tabbar-h) + var(--space-3) + env(safe-area-inset-bottom))}.tray__count{font-size:var(--text-sm);white-space:nowrap}.tray__count strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;font-variant-numeric:tabular-nums;margin-inline-end:.15em}.tray__links{display:inline-flex;gap:var(--space-3);font-size:var(--text-sm)}.tray__link{appearance:none;font:inherit;font-size:var(--text-sm);color:var(--paper);opacity:.8;background:transparent;border:0;padding:.25rem 0;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--paper) 40%,transparent);text-underline-offset:.2em;cursor:pointer}.tray__link:hover{opacity:1}.tray__actions{margin-inline-start:auto;display:inline-flex;gap:var(--space-2)}.tray__cancel.button--quiet{color:var(--paper)}.tray__cancel.button--quiet:hover{background:color-mix(in srgb,var(--paper) 12%,transparent)}.tray__go.button{background:var(--paper);color:var(--ink);border-color:var(--paper)}.tray__go.button:hover:not(:disabled){background:var(--card)}.tray__go.button:disabled{opacity:.45}@media(max-width:40rem){.tray__actions{width:100%}.tray__go{flex:1}}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}.roster__line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.roster__who{display:flex;flex-direction:column;min-width:0;cursor:pointer}.roster__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;overflow-wrap:anywhere}.roster__sub{font-size:var(--text-xs);color:var(--ink-3);overflow-wrap:anywhere}.roster__email.roster__email{min-height:2.5rem;padding:.4rem .75rem}.roster__line.is-invalid .roster__email{border-color:var(--danger)}.roster__verdict{display:inline-flex;align-items:center;justify-content:flex-end;gap:.35em;font-size:var(--text-sm);font-weight:600;color:var(--success)}.roster__line.is-failed .roster__verdict{color:var(--danger)}.roster__line.is-failed .roster__name{color:var(--ink-3)}@media(max-width:40rem){.roster__line{grid-template-columns:1fr}.roster__verdict{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.roll__cell,.tray{animation:none}}.admin-hide{display:inline-flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-sm);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.admin-hide input{width:1.05rem;height:1.05rem;margin:0;accent-color:var(--accent);flex:none}.admin-families{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.admin-family{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden;container:family / inline-size}.admin-family--open{border-color:var(--line-2)}.admin-family__head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"mark id" "actions actions";gap:var(--space-3) var(--space-4);align-items:start;padding:var(--space-4) var(--space-5)}.admin-family__mark{grid-area:mark;display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-top:.1rem;border-radius:var(--radius);background:var(--paper-2);color:var(--ink-3)}.admin-family__id{grid-area:id;min-width:0}.admin-family__name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);font-weight:550;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);font-variation-settings:"opsz" 48,"SOFT" 30}.admin-family__name a{color:inherit;text-decoration:none}.admin-family__name a:hover{color:var(--accent-ink)}.admin-family__meta,.admin-family__planline{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:var(--leading-snug)}.admin-family__meta{color:var(--ink-3)}.admin-family__planline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);color:var(--ink-2)}.admin-family__actions{grid-area:actions;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}@container family (min-width: 36rem){.admin-family__head{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"mark id actions"}.admin-family__actions{padding-top:.15rem}}.plan-panel{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border-top:1px solid var(--line);background:var(--paper-2);animation:fade-in var(--dur-2) var(--ease-out)}.plan-panel__grid{display:grid;grid-template-columns:1fr;gap:var(--space-4) var(--space-5);align-items:end}@container family (min-width: 40rem){.plan-panel__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.plan-panel__forever{align-items:center;width:fit-content;max-width:100%}.plan-panel__forever input{margin-top:0}.plan-panel__history{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line)}.plan-panel__history h3{margin:0;font-size:var(--text-md)}.plan-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.plan-log__item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;border-top:1px solid var(--line)}.plan-log__item:first-child{border-top:0;padding-top:0}.plan-log__item:last-child{padding-bottom:0}.plan-log__title{font-weight:600}.plan-log__meta{font-size:var(--text-sm);color:var(--ink-3);line-height:var(--leading-snug)}.tree-frame{position:relative}.tree-chart{position:relative;height:70vh;min-height:26rem;background:radial-gradient(circle at 1px 1px,var(--line) 1px,transparent 1.5px) 0 0 / 22px 22px,var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.tree-chart svg.main_svg{width:100%;height:100%;display:block}.tree-chart .f3-nav-cont{display:none}.tree-chart path.link{stroke:var(--line-2);stroke-width:1.5px;fill:none;transition:stroke var(--dur-2) var(--ease-out)}.tree-chart path.link.link--ended{stroke:var(--line-2);stroke-dasharray:2 5;opacity:.7}.tree-chart path.link.link--adoptive{stroke-dasharray:8 4}.tree-chart path.link.link--step{stroke-dasharray:1.5 4;stroke-linecap:round}.tree-chart g.link-text text{fill:var(--ink-3)!important;font-family:var(--font-text);font-size:11px!important;font-weight:600}.tree-chart .card_cont div.card{position:relative;display:block;padding:0;background:none;border:0;border-radius:0;cursor:pointer;line-height:1.25}.tree-card{position:relative;width:10rem;padding:.6rem 1.9rem .6rem .85rem;background:var(--card);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-2);color:var(--ink);font-size:var(--text-sm);font-family:var(--font-text);transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}.tree-card:hover{border-color:var(--accent);transform:translateY(-1px)}.tree-chart .card-main .tree-card{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-2)}.tree-card--deceased{color:var(--ink-3);background:var(--paper-2);border-style:dashed}.tree-card--me .tree-card__name:after{content:"";display:inline-block;width:.45rem;height:.45rem;margin-left:.35rem;border-radius:50%;background:var(--gold);vertical-align:middle}.tree-card__name{font-family:var(--font-display);font-size:1.05rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-card__dagger{font-size:.85em;color:var(--ink-3)}.tree-card__surname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}.tree-card--deceased .tree-card__surname{color:var(--ink-3)}.tree-card__years,.tree-card__ended{font-size:var(--text-xs);color:var(--ink-3);font-variant-numeric:tabular-nums}.tree-card__ended{display:inline-flex;align-items:center;gap:.2rem}.tree-card__extra{position:absolute;top:.35rem;right:1.9rem;font-size:var(--text-xs);color:var(--ink-3)}.tree-card__open{position:absolute;top:0;right:0;bottom:0;width:1.9rem;appearance:none;border:0;border-left:1px solid var(--line);border-radius:0 var(--radius) var(--radius) 0;background:transparent;color:var(--accent-ink);font:inherit;font-size:1.2rem;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out)}.tree-card__open:hover{background:var(--accent-soft)}.tree-controls{position:absolute;right:var(--space-3);bottom:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);z-index:3}.tree-controls .button{box-shadow:var(--shadow-2)}.tree-hint{font-size:var(--text-sm);margin-top:var(--space-3);display:flex;gap:var(--space-2);align-items:flex-start}.tree-hint .icon{flex:none;margin-top:.15rem}.legend{margin-top:var(--space-3);color:var(--ink-2);font-size:var(--text-sm)}.legend summary{cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.25rem;padding:.3rem .85rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--card);font-weight:600;list-style:none}.legend summary::-webkit-details-marker{display:none}.legend__items{list-style:none;margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.legend__items li{display:inline-flex;align-items:center;gap:var(--space-2)}.legend__line path{stroke:var(--line-2);stroke-width:1.5px;fill:none}.legend__line--ended path{stroke-dasharray:2 5;opacity:.7}.legend__line--adoptive path{stroke-dasharray:8 4}.legend__line--step path{stroke-dasharray:1.5 4;stroke-linecap:round}.legend__mark{width:40px;text-align:center}.legend__main{display:inline-block;width:40px;height:14px;border:1px solid var(--accent);border-radius:4px;box-shadow:0 0 0 2px var(--accent-soft);background:var(--card)}.generation{margin-bottom:var(--space-6)}.generation h2{border-bottom:1px solid var(--line);padding-bottom:var(--space-2)}.persons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.person{padding:var(--space-3) var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.person--focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.person--deceased .person__name{color:var(--ink-3)}.person__main{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.person__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}.person__partners{list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--ink-2)}.partner{display:inline-flex;align-items:center;gap:var(--space-2)}.partner .icon--ring{color:var(--gold-ink)}.partner--ended{color:var(--ink-3)}.partner--ended .icon--ring{color:var(--line-2)}@media(max-width:40rem){.tree-chart{height:62vh;min-height:22rem;margin:0 calc(-1 * var(--gutter));border-radius:0;border-left:0;border-right:0}}.tree-card__fold{position:absolute;left:50%;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:.15rem;min-width:1.6rem;height:1.6rem;padding:0 .45rem;transform:translate(-50%);appearance:none;border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--card);color:var(--ink-2);font:inherit;font-size:var(--text-xs);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:var(--shadow-1);transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.tree-card__fold:after{content:"";position:absolute;inset:-.6rem -.4rem}.tree-card__fold--up{top:-.8rem}.tree-card__fold--down{bottom:-.8rem}.tree-card__fold:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.tree-card__fold--folded{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.tree-card__fold--folded:hover{background:var(--accent-hover);color:var(--on-accent)}.tree-card__fold-plus,.tree-card__fold-minus{font-size:.95rem;font-weight:600}@media(hover:hover){.tree-card__fold:not(.tree-card__fold--folded){opacity:.55}.tree-card:hover .tree-card__fold,.tree-card__fold:focus-visible{opacity:1}}.print-page__toolbar{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-5)}.print-months{display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.print-sheet{width:min(100%,210mm);background:var(--card);border:1px solid var(--line);border-radius:2px;box-shadow:var(--shadow-2);padding:14mm 13mm 16mm}.print-page--A3 .print-sheet{width:min(100%,297mm)}.print-cover{text-align:center;padding:18mm 14mm;margin:0 auto var(--space-6)}.print-cover h1{font-size:clamp(2.4rem,1.6rem + 2.4vw,3.6rem);font-weight:500;line-height:1.05;margin:var(--space-3) 0 var(--space-2);font-variation-settings:"opsz" 72,"SOFT" 40}.print-cover__edition{font-family:var(--font-display);font-size:var(--text-xl);color:var(--accent-ink);margin-bottom:var(--space-2)}.print-cover__legend{color:var(--ink-3);font-size:var(--text-sm);max-width:28rem;margin:var(--space-5) auto 0;line-height:var(--leading-snug)}.print-month__head{margin-bottom:5mm}.print-month__kicker{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:0 0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.print-month__kicker span:first-child{min-width:0;overflow-wrap:anywhere}.print-month__name{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:0;padding-bottom:1.5mm;border-bottom:2px solid var(--accent);font-size:clamp(1.8rem,1.2rem + 1.6vw,2.35rem);font-weight:500;line-height:1.05;font-variation-settings:"opsz" 72,"SOFT" 50;text-wrap:wrap;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-month__name span:first-child{min-width:0;overflow-wrap:anywhere}.print-month__name small{flex:none;font-family:var(--font-display);font-size:.95rem;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:0}.print-month__empty{margin:4mm 0 0;color:var(--ink-3);font-style:italic}.print-month__list{list-style:none;margin:0;padding:0}.print-month--columns .print-month__list{columns:2;column-gap:8mm;column-rule:.6pt solid var(--line);column-fill:balance}.print-page--A3 .print-month--columns .print-month__list{columns:3;column-gap:7mm}.print-line{display:grid;grid-template-columns:2.15rem minmax(0,1fr);column-gap:.4rem;align-items:baseline;break-inside:avoid;padding:.14rem 0;line-height:1.35}.print-line:not(.print-line--follow){margin-top:.42rem}.print-month__list>.print-line:first-child{margin-top:0}.print-line__day{font-family:var(--font-display);font-weight:560;font-size:1.12rem;line-height:1.2;text-align:right;color:var(--accent-ink);font-variant-numeric:tabular-nums lining-nums;font-variation-settings:"opsz" 36,"SOFT" 70}.print-line--follow .print-line__day{color:var(--ink-3);font-size:.82rem;font-weight:500}.print-line__text{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.65rem;row-gap:.05rem}.print-line__name{min-width:0;overflow-wrap:anywhere;font-weight:600}.print-line--milestone .print-line__name{font-weight:700}.print-line--remembrance .print-line__name{font-weight:500;color:var(--ink-2)}.print-line__mark{font-family:var(--font-display);margin-right:.2rem}.print-line__meta{margin-left:auto;color:var(--ink-3);font-family:var(--font-display);font-size:.92em;font-weight:500;font-variant-numeric:tabular-nums lining-nums;text-align:right;font-variation-settings:"opsz" 24,"SOFT" 40}@media(max-width:42rem){.print-month--columns .print-month__list,.print-page--A3 .print-month--columns .print-month__list{columns:1;column-rule:none}.print-sheet{padding:var(--space-5) var(--space-4) var(--space-6)}}@media print{.print-page__toolbar,.print-page .breadcrumb{display:none!important}.print-months{display:block;gap:0}.print-sheet{width:auto;max-width:none;border:0;border-radius:0;box-shadow:none;background:transparent;padding:0}.print-cover{box-sizing:border-box;height:250mm;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.print-month{break-before:page;break-inside:auto}.print-month--columns .print-month__list{columns:2;column-gap:8mm;column-rule:.6pt solid var(--line)}.print-page--A3 .print-month--columns .print-month__list{columns:3}.print-month__name{font-size:26pt}.print-line{font-size:10.5pt}}@media print{@page{margin:14mm 15mm 16mm}@page calendar{size:A4 portrait;margin:14mm 15mm 16mm}body{background:var(--paper);color:var(--ink);font-size:10.5pt}.header,.tabbar,.footer,.toasts,.month-nav,.page__actions,.subnav,.breadcrumb,.button,.tree-controls,.tree-hint{display:none!important}.main{max-width:none;padding:0}.page{animation:none}a{color:inherit;text-decoration:none}.page--calendar{page:calendar}.page--calendar .page__header{display:none!important}.months{display:block!important}.month{break-before:page;break-inside:auto;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;background:transparent!important}.months .month:first-child{break-before:auto}.month__head{position:static!important;margin:0 0 4mm!important;padding:0 0 1.5mm!important;border-bottom:2px solid var(--accent);border-radius:0!important;background:transparent!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.month__name{position:static!important;font-size:26pt!important}.month--current{outline:none!important}.today-marker,.day__today{display:none!important}.day--today{background:transparent!important;margin:0!important;padding-left:0!important;padding-right:0!important;border-radius:0!important}.day--today:before{display:none!important}.days{list-style:none}.month--dense .days{columns:2;column-gap:8mm;column-rule:.6pt solid var(--line);column-fill:balance}.day{break-inside:avoid;grid-template-columns:2.4rem minmax(0,1fr)}.month--dense .day:has(.entry:nth-child(6)){break-inside:auto}.day__number{font-size:13pt!important}.entry{break-inside:avoid;align-items:baseline;font-size:10.5pt}.entry__name{min-width:0;overflow-wrap:anywhere}.badge{border:1px solid var(--line-2);background:var(--paper)!important;color:var(--ink)!important}}
