:root{color-scheme:dark;--color-paper: oklch(13% .014 310);--color-paper-2: oklch(17% .017 310);--color-paper-3: oklch(21.5% .02 310);--color-paper-4: oklch(27% .022 310);--color-rule: oklch(30% .025 315);--color-rule-strong: oklch(40% .06 15);--color-scrim: oklch(5% .01 310 / .72);--color-ink: oklch(90% .025 85);--color-ink-2: oklch(76% .025 80);--color-ink-3: oklch(62% .022 300);--color-accent: oklch(72% .15 18);--color-accent-fill: oklch(48% .18 22);--color-accent-fill-hover: oklch(53% .19 22);--color-accent-fill-press: oklch(43% .17 22);--color-accent-on: oklch(95% .02 85);--color-accent-soft: oklch(52% .19 22 / .18);--color-accent-ink: oklch(14% .015 310);--color-bloom: oklch(40% .16 22 / .3);--color-bloom-2: oklch(35% .12 300 / .22);--color-vignette: oklch(5% .01 310 / .75);--color-focus: oklch(80% .12 20);--color-danger: oklch(70% .17 30);--color-danger-soft: oklch(70% .17 30 / .14);--color-ok: oklch(78% .1 150);--color-notice: oklch(80% .1 80);--color-notice-soft: oklch(80% .1 80 / .1);--color-brass: oklch(62% .075 78);--color-wick: oklch(30% .02 60);--color-flame: oklch(78% .16 62);--color-flame-core: oklch(96% .06 95);--color-flame-glow: oklch(75% .16 60 / .35);--color-bat: oklch(11% .02 315);--color-wax: oklch(42% .16 22);--color-wax-edge: oklch(32% .13 22);--color-wax-ink: oklch(88% .06 40);--color-wax-cold: oklch(24% .015 310);--color-gold: oklch(84% .12 85);--color-smoke: oklch(60% .01 300 / .45);--pet-egg: oklch(82% .025 80);--pet-egg-shade: oklch(62% .03 300 / .55);--pet-crack: oklch(16% .015 310);--pet-hide-bat: oklch(34% .05 305);--pet-hide-dog: oklch(36% .08 32);--pet-hide-goat: oklch(31% .03 290);--pet-belly: oklch(48% .04 310);--pet-rim: oklch(62% .06 310 / .55);--pet-bone: oklch(88% .03 85);--pet-eye: oklch(80% .16 45);--pet-eye-goat: oklch(86% .14 90);--pet-glint: oklch(97% .02 90);--pet-shadow: oklch(4% .01 310 / .6);--pet-aura: oklch(60% .15 22 / .4);--pet-aura-clear: oklch(60% .15 22 / 0);--pet-collar: oklch(46% .17 22);--color-moon: oklch(92% .03 90);--color-moon-dark: oklch(24% .02 300);--color-moon-crater: oklch(30% .02 300 / .25);--color-moon-glow: oklch(90% .05 90 / .14);--color-thread: oklch(70% .02 300 / .55);--color-spider: oklch(9% .015 315);--color-spider-eye: oklch(62% .2 22);--person-amber: oklch(80% .12 85);--person-terracotta: oklch(66% .17 22);--person-sage: oklch(74% .1 160);--person-lavender: oklch(70% .13 305);--person-teal: oklch(72% .09 200);--person-rose: oklch(72% .13 355);--person-sky: oklch(70% .11 255);--person-moss: oklch(86% .025 85);--font-display: "Grenze Gotisch", "UnifrakturCook", ui-serif, Georgia, serif;--font-body: "EB Garamond", ui-serif, Georgia, "Times New Roman", serif;--text-xs: .8125rem;--text-sm: .9375rem;--text-md: 1.0625rem;--text-lg: 1.1875rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--text-display: clamp(3rem, 13vw, 4.25rem);--space-3xs: 2px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-pill: 4px;--shadow-lift: 0 14px 40px -14px oklch(3% .01 310 / .9);--shadow-glow: 0 10px 30px -10px oklch(48% .18 22 / .6);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-mid: .22s;--dur-slow: .32s;--nav-h: 64px;--app-max: 560px}.c-amber{--person: var(--person-amber)}.c-terracotta{--person: var(--person-terracotta)}.c-sage{--person: var(--person-sage)}.c-lavender{--person: var(--person-lavender)}.c-teal{--person: var(--person-teal)}.c-rose{--person: var(--person-rose)}.c-sky{--person: var(--person-sky)}.c-moss{--person: var(--person-moss)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100dvh;background-color:var(--color-paper);background-image:radial-gradient(120% 90% at 50% 40%,transparent 55%,var(--color-vignette) 100%),radial-gradient(70% 40% at 50% -10%,var(--color-bloom),transparent 70%),radial-gradient(60% 40% at 105% 105%,var(--color-bloom-2),transparent 70%);background-attachment:fixed;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.5;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:500;font-style:normal;line-height:1.05;letter-spacing:.005em;margin:0;overflow-wrap:anywhere;min-width:0}p{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{max-width:var(--app-max);margin:0 auto;min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--space-3xl) + var(--space-lg))}.page{padding:calc(env(safe-area-inset-top) + var(--space-lg)) var(--space-md) 0}.page-title{font-size:var(--text-3xl);margin-bottom:var(--space-2xs)}.ornament{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-rule-strong);margin:var(--space-sm) 0 var(--space-md)}.ornament:before,.ornament:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--color-rule-strong))}.ornament:after{background:linear-gradient(90deg,var(--color-rule-strong),transparent)}.ornament span{width:7px;height:7px;transform:rotate(45deg);background:var(--color-accent-fill);box-shadow:0 0 10px var(--color-accent-fill)}.page-lede{color:var(--color-ink-2);margin-bottom:var(--space-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:48px;padding:0 var(--space-lg);border:1px solid transparent;border-radius:var(--radius-pill);font-weight:600;font-size:var(--text-lg);font-variant-caps:all-small-caps;letter-spacing:.08em;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:active:not(:disabled){transform:translateY(1px) scale(.99)}.btn:disabled,.btn.is-disabled{opacity:.45;cursor:not-allowed}.btn[data-state=loading]{cursor:progress}.btn.is-disabled{pointer-events:none}.btn-primary{background:var(--color-accent-fill);border-color:var(--color-accent);color:var(--color-accent-on)}.btn-primary:hover:not(:disabled){background:var(--color-accent-fill-hover)}.btn-primary:active:not(:disabled){background:var(--color-accent-fill-press)}.btn-quiet{background:var(--color-paper-3);border-color:var(--color-rule);color:var(--color-ink)}.btn-quiet:hover:not(:disabled){background:var(--color-paper-4)}.btn-ghost{background:transparent;color:var(--color-ink-2)}.btn-ghost:hover:not(:disabled){color:var(--color-ink);background:var(--color-paper-3)}.btn-danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn-danger:hover:not(:disabled),.btn-danger[data-armed=true]{background:var(--color-danger);color:var(--color-accent-ink)}.btn-sm{font-size:var(--text-md)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 var(--space-md)}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-ink-2);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.icon-btn:hover{background:var(--color-paper-3);color:var(--color-ink)}.icon-btn svg{width:22px;height:22px}.field{display:grid;gap:var(--space-xs);margin-bottom:var(--space-md);min-width:0}.field-label{font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--color-ink-2)}.field-hint{font-size:var(--text-sm);color:var(--color-ink-3)}.input{width:100%;min-height:48px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-lg);transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.input::placeholder{color:var(--color-ink-3)}.input:hover{border-color:var(--color-paper-4)}.input:focus-visible{outline:none;border-color:var(--color-focus);background:var(--color-paper-3)}.input[aria-invalid=true]{border-color:var(--color-danger)}.input:disabled{opacity:.55}.input[type=date],.input[type=time]{min-width:0;padding-inline:var(--space-sm) var(--space-xs);font-size:var(--text-md)}textarea.input{min-height:96px;resize:vertical;line-height:1.45}.input::-webkit-calendar-picker-indicator{filter:invert(.8) sepia(.3);cursor:pointer}.row-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-sm)}.form-error{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--text-sm);margin-bottom:var(--space-md)}.avatar{--size: 28px;display:inline-grid;place-items:center;flex:none;width:var(--size);height:var(--size);border-radius:50% 50% 2px 2px/46% 46% 2px 2px;background:var(--person);color:var(--color-accent-ink);font-weight:700;font-size:calc(var(--size) * .5);line-height:1;padding-top:calc(var(--size) * .08);text-transform:uppercase}.avatar-lg{--size: 72px;font-family:var(--font-display);font-size:calc(var(--size) * .6)}.avatar-md{--size: 44px}.avatar-xs{--size: 20px}.chips{display:flex;gap:var(--space-xs);overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--space-md) * -1);padding:var(--space-3xs) var(--space-md)}.chips::-webkit-scrollbar{display:none}.chips-wrap{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.chip{display:inline-flex;align-items:center;gap:var(--space-xs);flex:none;min-height:40px;padding:0 var(--space-md) 0 var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper-2);color:var(--color-ink-2);font-size:var(--text-md);font-weight:500;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.chip-plain{padding:0 var(--space-md)}.chip:hover{border-color:var(--color-paper-4);color:var(--color-ink)}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-ink)}.swatch{width:34px;height:34px;border-radius:50% 50% 2px 2px/46% 46% 2px 2px;border:3px solid var(--color-paper-2);background:var(--person);box-shadow:0 0 0 1px var(--color-rule);transition:box-shadow var(--dur-fast) var(--ease-out)}.swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--color-accent)}.login{min-height:100dvh;display:grid;align-content:center;padding:var(--space-2xl) var(--space-lg);max-width:420px;margin:0 auto}.login-hero{position:relative;isolation:isolate}.login-hero h1,.login-mark{position:relative;z-index:1}.login-mark{display:block;width:64px;height:64px;margin:0 auto var(--space-lg);padding:0;border:0;border-radius:var(--radius-lg);background:none;transition:transform var(--dur-fast) var(--ease-out)}.login-mark:active{transform:scale(.94)}.login-mark img{display:block;width:100%;height:100%}.bats{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.bat{position:absolute;left:50%;top:55%;width:76px;height:38px;margin:-19px 0 0 -38px;opacity:0;animation-name:bat-fly;animation-timing-function:var(--ease-in-out);animation-fill-mode:forwards}.bat-svg{display:block;width:100%;height:100%;fill:var(--color-bat);filter:drop-shadow(0 0 2px var(--color-accent)) drop-shadow(0 0 10px var(--color-accent-fill));overflow:visible}.bat-wings{transform-box:view-box;transform-origin:32px 14px;animation:flap var(--flap, .16s) ease-in-out infinite alternate}@keyframes bat-fly{0%{transform:translate(0) scale(.15);opacity:0}12%{opacity:1}45%{transform:translate(var(--mx),var(--my)) scale(calc(var(--s) * .7))}85%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(var(--s));opacity:0}}@keyframes flap{to{transform:scaleY(-.55)}}.boot{min-height:100dvh;display:grid;place-items:center}.candelabra{display:grid;justify-items:center;gap:var(--space-sm);padding:var(--space-xl) 0;animation:fade var(--dur-slow) var(--ease-out) .2s both}.candelabra svg{overflow:visible}.candelabra-caption{color:var(--color-ink-2);font-style:italic}.cdl-metal{fill:var(--color-brass)}.cdl-metal-stroke{fill:none;stroke:var(--color-brass);stroke-width:4;stroke-linecap:round}.cdl-candle{fill:var(--color-ink)}.cdl-wick{stroke:var(--color-wick);stroke-width:1.6;stroke-linecap:round}.cdl-glow{fill:var(--color-flame-glow);filter:blur(5px);animation:glow 1.6s ease-in-out infinite alternate}.cdl-flame{transform-box:fill-box;transform-origin:50% 100%;animation:flicker 1.5s ease-in-out infinite}.cdl-flame-outer{fill:var(--color-flame)}.cdl-flame-core{fill:var(--color-flame-core)}.small-flame{width:12px;height:18px;overflow:visible}.small-flame .cdl-flame{animation-duration:.9s}@keyframes flicker{0%,to{transform:scale(1) skew(0)}20%{transform:scale(.9,1.1) skew(4deg)}45%{transform:scale(1.05,.93) skew(-3deg)}70%{transform:scale(.95,1.06) skew(2deg)}85%{transform:scale(1.02,.97) skew(-1deg)}}@keyframes glow{0%{opacity:.55}to{opacity:1}}.login{text-align:center}.login form{text-align:left}.login h1{font-size:var(--text-display);font-weight:600;color:var(--color-ink);text-shadow:0 0 28px var(--color-bloom)}.login .ornament{width:100%;max-width:240px;margin:var(--space-sm) auto var(--space-md)}.login-lede{color:var(--color-ink-2);font-size:var(--text-lg);font-style:italic;margin:0 auto var(--space-xl);max-width:30ch}.login-foot{margin-top:var(--space-lg);color:var(--color-ink-3);font-size:var(--text-sm)}.agenda-head{position:sticky;top:0;z-index:5;padding:calc(env(safe-area-inset-top) + var(--space-md)) var(--space-md) var(--space-sm);background:var(--color-paper);border-bottom:1px solid transparent;transition:border-color var(--dur-mid) var(--ease-out)}.agenda-head[data-mode=month]{position:relative}.agenda-head[data-stuck=true]{border-bottom-color:var(--color-rule)}.month-row{display:flex;align-items:center;gap:var(--space-2xs);margin-bottom:var(--space-sm)}.month-title{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-xs);padding:var(--space-2xs) 0;border:0;background:none;text-align:left}.month-title h1{font-size:clamp(1.5rem,6.4vw,var(--text-2xl));font-weight:600;white-space:nowrap}.month-title .year{color:var(--color-ink-3);font-size:var(--text-md);font-weight:500;font-variant-numeric:lining-nums}.month-title .caret{width:18px;height:18px;color:var(--color-ink-3);align-self:center;transition:transform var(--dur-mid) var(--ease-out)}.month-title[aria-expanded=true] .caret{transform:rotate(180deg)}.today-btn{min-height:36px;padding:0 var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-pill);background:transparent;color:var(--color-ink-2);font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em}.today-btn:hover{color:var(--color-ink);border-color:var(--color-paper-4)}.week,.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2xs);touch-action:pan-y}.weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2xs);margin-bottom:var(--space-2xs)}.weekday-row span{text-align:center;font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.06em;color:var(--color-ink-3)}.day{position:relative;display:grid;justify-items:center;align-content:center;gap:var(--space-2xs);min-height:56px;padding:var(--space-xs) 0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.month .day{min-height:46px;padding:var(--space-2xs) 0}.day:hover{background:var(--color-paper-2)}.day-num{font-weight:500;font-size:var(--text-xl);font-variant-numeric:lining-nums tabular-nums;line-height:1}.month .day-num{font-size:var(--text-lg)}.day[data-outside=true] .day-num{color:var(--color-ink-3);opacity:.6}.day[data-today=true] .day-num{color:var(--color-accent)}.day[aria-pressed=true],.day[aria-selected=true]{background:var(--color-accent-soft);border-color:var(--color-accent-fill);box-shadow:inset 0 0 12px -4px var(--color-bloom)}.dots{display:flex;gap:3px;height:6px}.dot{width:5px;height:5px;margin:.5px;transform:rotate(45deg);background:var(--person)}.dot[data-done=true]{background:transparent;box-shadow:inset 0 0 0 1.5px var(--person)}.filters{margin-top:var(--space-sm)}.day-section{padding:var(--space-lg) var(--space-md) 0}.day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.day-heading h2{font-size:var(--text-xl)}.day-heading .rel{display:block;font-family:var(--font-body);font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.1em;color:var(--color-accent);margin-bottom:var(--space-2xs)}.day-count{flex:none;color:var(--color-ink-3);font-size:var(--text-sm);font-style:italic}.tasks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-xs)}.task{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-sm);border-radius:var(--radius-md);background:var(--color-paper-2);border:1px solid var(--color-rule);border-left:3px solid var(--person);animation:rise var(--dur-mid) var(--ease-out);transition:opacity var(--dur-mid) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.task[data-done=true]{opacity:.55}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.check{flex:none;display:grid;place-items:center;width:44px;height:44px;margin:-6px -4px -6px -6px;border:0;background:none;border-radius:50%}.check:disabled{cursor:default}.check-ring{display:grid;place-items:center;width:20px;height:20px;border-radius:2px;border:2px solid var(--person);color:var(--color-accent-ink);transform:rotate(45deg);transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.check:hover:not(:disabled) .check-ring{background:var(--color-accent-soft)}.check:active:not(:disabled) .check-ring{transform:rotate(45deg) scale(.88)}.check[aria-checked=true] .check-ring{background:var(--person)}.check-ring svg{width:14px;height:14px;opacity:0;transform:rotate(-45deg) scale(.6);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-mid) var(--ease-out)}.check[aria-checked=true] .check-ring svg{opacity:1;transform:rotate(-45deg) scale(1)}.check:disabled .check-ring{border-style:dashed;opacity:.7}.task-body{flex:1;min-width:0;padding:var(--space-3xs) 0;border:0;background:none;text-align:left}.task-title{font-size:var(--text-lg);font-weight:500;line-height:1.3;overflow-wrap:anywhere}.task[data-done=true] .task-title{text-decoration:line-through;text-decoration-color:var(--color-ink-3)}.task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm);margin-top:var(--space-2xs);color:var(--color-ink-3);font-size:var(--text-sm)}.task-meta .who{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--color-ink-2)}.task-time{font-variant-numeric:lining-nums tabular-nums;color:var(--color-ink-2);font-weight:600}.task-notes-flag{display:inline-flex;align-items:center;gap:var(--space-3xs)}.task-notes-flag svg{width:14px;height:14px}.empty{padding:var(--space-xl) var(--space-lg);border:1px dashed var(--color-rule);border-radius:var(--radius-md);text-align:center;color:var(--color-ink-2)}.empty p{font-style:italic}.empty p+.btn{margin-top:var(--space-md)}.add-fab{position:fixed;z-index:10;right:max(var(--space-md),calc((100vw - var(--app-max)) / 2 + var(--space-md)));bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--space-md));min-height:52px;padding:0 var(--space-lg) 0 var(--space-md);box-shadow:var(--shadow-glow)}.add-fab svg{width:22px;height:22px}.tabbar{position:fixed;z-index:20;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);background:var(--color-paper-2);border-top:1px solid var(--color-rule)}.tabbar-inner{max-width:var(--app-max);margin:0 auto;height:var(--nav-h);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.tab{position:relative;display:grid;place-items:center;align-content:center;gap:var(--space-2xs);border:0;background:none;color:var(--color-ink-3);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;line-height:1;transition:color var(--dur-fast) var(--ease-out)}.tab svg{width:22px;height:22px}.tab:hover{color:var(--color-ink-2)}.tab[aria-current=page]{color:var(--color-accent)}.tab[aria-current=page]:before{content:"";position:absolute;top:-1px;left:30%;right:30%;height:2px;background:var(--color-accent-fill);box-shadow:0 0 12px var(--color-accent-fill)}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--color-scrim);display:flex;align-items:flex-end;justify-content:center;overscroll-behavior:contain;animation:fade var(--dur-mid) var(--ease-out)}.sheet-scrim[data-closing]{animation:fade-out .22s var(--ease-in) forwards}.sheet{display:flex;flex-direction:column;width:100%;max-width:var(--app-max);max-height:calc(100% - env(safe-area-inset-top) - var(--space-md));border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-top:1px solid var(--color-rule-strong);background:var(--color-paper-2);box-shadow:var(--shadow-lift);animation:slide-up var(--dur-slow) var(--ease-out);transition:transform var(--dur-mid) var(--ease-out)}.sheet[data-closing]{animation:slide-down .22s var(--ease-in) forwards}.sheet:focus{outline:none}.sheet-top{flex:none;padding:var(--space-xs) var(--space-md) 0;touch-action:none;cursor:grab}.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 var(--space-md) calc(var(--space-lg) + env(safe-area-inset-bottom))}.sheet-grip{width:40px;height:4px;margin:var(--space-2xs) auto var(--space-sm);border-radius:var(--radius-pill);background:var(--color-paper-4)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-bottom:var(--space-md)}.sheet-head h2{font-size:var(--text-2xl)}.sheet .input{background:var(--color-paper)}.sheet .input:focus-visible{background:var(--color-paper-3)}.sheet .chip{background:var(--color-paper)}.sheet .chip[aria-checked=true]{background:var(--color-accent-soft)}.sheet-actions{position:sticky;bottom:0;z-index:1;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-lg) calc(var(--space-md) * -1) 0;padding:var(--space-md) var(--space-md) var(--space-sm);background:linear-gradient(transparent,var(--color-paper-2) var(--space-md))}.sheet-actions .btn-primary{flex:1 1 160px}.detail-notes{white-space:pre-wrap;color:var(--color-ink-2);padding:var(--space-md);border-radius:var(--radius-sm);background:var(--color-paper);overflow-wrap:anywhere}.detail-list{display:grid;gap:var(--space-sm);margin:0 0 var(--space-lg)}.detail-list div{display:flex;justify-content:space-between;gap:var(--space-md)}.detail-list dt{color:var(--color-ink-3)}.detail-list dd{margin:0;text-align:right;display:inline-flex;align-items:center;gap:var(--space-xs)}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes slide-down{to{transform:translateY(100%)}}@keyframes fade-out{to{opacity:0}}html.is-locked,html.is-locked body{overscroll-behavior:none}.people{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-xs)}.person{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);text-align:left;transition:background-color var(--dur-fast) var(--ease-out)}button.person:hover{background:var(--color-paper-3)}.person-text{flex:1;min-width:0}.person-name{font-size:var(--text-lg);font-weight:500;overflow-wrap:anywhere}.person-user{color:var(--color-ink-3);font-size:var(--text-sm)}.badge{flex:none;padding:0 var(--space-xs) var(--space-3xs);border:1px solid var(--color-accent-fill);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em}.section-gap{margin-top:var(--space-xl)}.inline-actions{display:flex;gap:var(--space-xs)}.inline-actions .input{flex:1;min-width:0}.me-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg) 0 var(--space-xl)}.me-card h1{font-size:var(--text-3xl)}.card{padding:var(--space-lg) var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2)}.card h2{font-size:var(--text-xl);margin-bottom:var(--space-md)}.card-lede{color:var(--color-ink-2);margin:calc(var(--space-xs) * -1) 0 var(--space-md)}.segmented{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:var(--space-3xs);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);margin-bottom:var(--space-md)}.segmented button{min-height:40px;border:0;border-radius:2px;background:transparent;color:var(--color-ink-2);font-weight:500;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.segmented button:hover{color:var(--color-ink)}.segmented button[aria-checked=true]{background:var(--color-paper-4);color:var(--color-ink);box-shadow:inset 0 -2px 0 var(--color-accent-fill)}.cal-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xs);margin-bottom:var(--space-md)}@media(min-width:440px){.cal-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cal-actions .btn-ghost{grid-column:1 / -1}}.cal-hints{margin:0 0 var(--space-lg);padding-left:var(--space-md);color:var(--color-ink-2);font-size:var(--text-sm);display:grid;gap:var(--space-xs)}.cal-hints strong{color:var(--color-ink);font-weight:600}.notice{padding:var(--space-sm) var(--space-md);border-left:2px solid var(--color-notice);background:var(--color-notice-soft);color:var(--color-notice);font-size:var(--text-sm);margin-bottom:var(--space-md)}.add-cal{display:grid;gap:var(--space-xs);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-rule)}.add-cal-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xs)}.success-text{color:var(--color-ok);font-size:var(--text-sm);margin-bottom:var(--space-md)}.install-hint{display:flex;align-items:flex-start;gap:var(--space-sm);margin:var(--space-md) var(--space-md) 0;padding:var(--space-sm) var(--space-2xs) var(--space-sm) var(--space-sm);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2);box-shadow:inset 3px 0 0 var(--color-accent-fill);animation:rise var(--dur-mid) var(--ease-out)}.install-hint img{flex:none;border-radius:var(--radius-sm)}.install-hint-text{flex:1;min-width:0}.install-hint-title{font-weight:600;line-height:1.25}.install-hint-sub{color:var(--color-ink-3);font-size:var(--text-sm);line-height:1.3}.install-hint .btn{margin-top:var(--space-sm)}.install-hint .icon-btn{flex:none;width:36px;height:36px;margin-top:calc(var(--space-2xs) * -1)}.install-hint .icon-btn svg{width:18px;height:18px}.install-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-md)}.install-steps li{display:flex;gap:var(--space-md);align-items:flex-start}.step-num{flex:none;display:grid;place-items:center;width:30px;height:30px;margin:var(--space-2xs) var(--space-3xs) 0;transform:rotate(45deg);border:1px solid var(--color-accent-fill);border-radius:2px;background:var(--color-accent-soft);color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);line-height:1}.step-num>span{transform:rotate(-45deg)}.step-body{flex:1;min-width:0}.step-title{font-size:var(--text-lg);font-weight:600;line-height:1.3}.step-icon{display:inline-block;width:22px;height:22px;margin-left:var(--space-xs);vertical-align:-4px;color:var(--color-accent)}.step-text{margin-top:var(--space-2xs);color:var(--color-ink-2);font-size:var(--text-md)}.install-now{display:grid;gap:var(--space-sm);margin-bottom:var(--space-lg)}.install-done{color:var(--color-ok)}.toast{position:fixed;z-index:60;left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--space-md) + 64px);transform:translate(-50%);width:min(calc(100vw - var(--space-xl)),420px);display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-md);border:1px solid var(--color-rule-strong);border-left:3px solid var(--color-accent-fill);border-radius:var(--radius-md);background:var(--color-paper-3);color:var(--color-ink);box-shadow:var(--shadow-lift);font-size:var(--text-md);animation:toast-in var(--dur-mid) var(--ease-out)}.toast[data-tone=error]{border-left-color:var(--color-danger);color:var(--color-danger)}.toast p{flex:1;min-width:0;padding:var(--space-xs) 0}.toast .btn{min-height:36px;padding:0 var(--space-md);background:var(--color-accent-fill);color:var(--color-accent-on)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.crypt-card{display:grid;gap:var(--space-xs);width:100%;margin-bottom:var(--space-xl);padding:var(--space-md);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);background:radial-gradient(120% 140% at 0% 0%,var(--color-accent-soft),transparent 60%),var(--color-paper-2);color:var(--color-ink);text-align:left;transition:border-color var(--dur-fast) var(--ease-out)}.crypt-card:hover{border-color:var(--color-accent-fill)}.crypt-card:active{transform:translateY(1px)}.crypt-card.is-loading{min-height:138px;border-color:var(--color-rule);animation:breathe 1.4s var(--ease-in-out) infinite alternate}@keyframes breathe{to{opacity:.55}}.crypt-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.crypt-rank{display:grid;min-width:0}.crypt-level{font-size:var(--text-sm);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.1em;color:var(--color-accent)}.crypt-name{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.05;overflow-wrap:anywhere}.streak{flex:none;display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;white-space:nowrap;color:var(--color-gold)}.streak[data-cold]{color:var(--color-ink-3)}.streak-candle{width:12px;height:18px}.streak-wax{fill:var(--color-ink-2)}.streak-flame{fill:var(--color-flame);transform-origin:8px 10px;animation:flicker 1.6s ease-in-out infinite}.streak[data-cold] .streak-flame{fill:none;stroke:var(--color-smoke);animation:none}.crypt-souls{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-2xs)}.crypt-almas strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-gold);font-variant-numeric:lining-nums tabular-nums}.crypt-next{color:var(--color-ink-3);font-size:var(--text-sm);font-style:italic;text-align:right}.crypt-bar,.mini-bar{display:block;height:6px;border-radius:1px;background:var(--color-paper-3);overflow:hidden}.crypt-bar span,.mini-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--color-accent-fill),var(--color-gold));box-shadow:0 0 10px var(--color-accent-fill);transition:width var(--dur-slow) var(--ease-out);animation:bar-grow .9s var(--ease-out)}.crypt-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-2xs);font-size:var(--text-sm)}.crypt-partner{display:inline-flex;align-items:center;gap:var(--space-2xs);min-width:0;color:var(--color-ink-2)}.crypt-more{flex:none;display:inline-flex;align-items:center;gap:var(--space-3xs);color:var(--color-accent);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em}.crypt-more svg{width:16px;height:16px}.ritual{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);padding:var(--space-md) var(--space-md) var(--space-sm) var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2)}.ritual[data-complete]{border-color:var(--color-flame);box-shadow:0 0 24px -8px var(--color-flame-glow)}.ritual .candelabra{flex:none;padding:0}.ritual-text{min-width:0}.ritual-text h2{font-size:var(--text-xl);margin-bottom:var(--space-2xs)}.ritual-text p{color:var(--color-ink-2);font-size:var(--text-sm)}.cdl-smoke{fill:none;stroke:var(--color-smoke);stroke-width:1.2;stroke-linecap:round}.crypt-summary{color:var(--color-ink-2);font-style:italic;margin-bottom:var(--space-lg)}.sheet-sub{font-size:var(--text-xl);margin:var(--space-lg) 0 var(--space-sm)}.sheet-sub:first-of-type{margin-top:0}.achievements{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-sm)}.achievement{display:flex;align-items:flex-start;gap:var(--space-sm)}.seal{flex:none;width:46px;height:46px}.seal-wax{fill:var(--color-wax-cold);stroke:var(--color-rule);stroke-width:1}.seal-ring{fill:none;stroke:var(--color-rule);stroke-width:1;stroke-dasharray:2 2}.seal-letter{font-family:var(--font-display);font-size:20px;fill:var(--color-ink-3)}.seal[data-unlocked] .seal-wax{fill:var(--color-wax);stroke:var(--color-wax-edge);filter:drop-shadow(0 0 6px var(--color-accent-fill))}.seal[data-unlocked] .seal-ring{stroke:var(--color-wax-edge);stroke-dasharray:none}.seal[data-unlocked] .seal-letter{fill:var(--color-wax-ink)}.achievement-body{min-width:0;flex:1}.achievement-title{font-weight:600}.achievement:not([data-unlocked]) .achievement-title{color:var(--color-ink-2)}.achievement-text{color:var(--color-ink-3);font-size:var(--text-sm)}.achievement-progress{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-2xs);color:var(--color-ink-3);font-size:var(--text-xs);font-variant-numeric:lining-nums tabular-nums}.achievement-progress .mini-bar{flex:1;height:4px}.ranks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3xs)}.ranks li{display:flex;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);color:var(--color-ink-3)}.ranks li[data-reached]{color:var(--color-ink-2)}.ranks li[data-current]{background:var(--color-accent-soft);color:var(--color-ink);font-weight:600;box-shadow:inset 3px 0 0 var(--color-accent-fill)}.ranks-min{font-size:var(--text-sm);font-variant-numeric:lining-nums tabular-nums}.rules{margin:0;padding-left:var(--space-lg);display:grid;gap:var(--space-2xs);color:var(--color-ink-2)}.rules strong{color:var(--color-gold)}.fx-souls{position:absolute;transform:translateY(-50%);font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-gold);text-shadow:0 0 10px var(--color-accent-fill);white-space:nowrap;animation:souls-rise 1.3s var(--ease-out) forwards}@keyframes souls-rise{0%{opacity:0;transform:translateY(-20%) scale(.8)}20%{opacity:1;transform:translateY(-80%) scale(1)}to{opacity:0;transform:translateY(-260%)}}.toast[data-tone=reward]{border-color:var(--color-gold);border-left-color:var(--color-gold);box-shadow:var(--shadow-lift),0 0 24px -6px var(--color-flame-glow)}.top-loader{position:fixed;z-index:60;top:0;left:0;right:0;height:calc(env(safe-area-inset-top) + 2px);overflow:hidden;pointer-events:none;opacity:0;transition:opacity var(--dur-mid) var(--ease-out)}.top-loader[data-show]{opacity:1}.top-loader span{position:absolute;bottom:0;left:0;width:40%;height:2px;background:linear-gradient(90deg,transparent,var(--color-accent-fill),var(--color-accent),var(--color-accent-fill),transparent);box-shadow:0 0 10px var(--color-accent-fill);animation:thread 1.1s var(--ease-in-out) infinite}@keyframes thread{0%{transform:translate(-100%)}to{transform:translate(250%)}}.check[aria-busy=true] .check-ring{animation:check-pulse .9s var(--ease-in-out) infinite alternate}@keyframes check-pulse{to{box-shadow:0 0 10px var(--person);opacity:.6}}.loading-line{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-md);color:var(--color-ink-3);font-style:italic}.view{animation:fog-in .42s var(--ease-out)}@keyframes fog-in{0%{opacity:0;filter:blur(6px);transform:translateY(6px)}}.task{position:relative}.task[data-shared]{border-left-color:transparent}.task-stripe{position:absolute;left:-3px;top:-1px;bottom:-1px;width:3px;border-radius:var(--radius-md) 0 0 var(--radius-md)}.avatar-stack{display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-4px;box-shadow:0 0 0 2px var(--color-paper-2)}.task-when{color:var(--color-danger);font-style:italic}.task[data-fresh]{animation:ignite 1.6s var(--ease-out)}@keyframes ignite{0%{opacity:0;transform:scale(.97);box-shadow:0 0 0 0 var(--color-accent-fill)}15%{opacity:1;transform:scale(1);box-shadow:0 0 22px 2px var(--color-accent-fill);border-color:var(--color-accent)}to{box-shadow:0 0 0 0 transparent}}.empty-spider{position:relative;padding-top:calc(var(--space-3xl) + var(--space-sm));overflow:hidden}.spider{position:absolute;top:0;left:72%;width:32px;height:64px;pointer-events:none}.spider-swing{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:50% 0;animation:spider-drop 1.6s var(--ease-out) both,spider-sway 4.8s var(--ease-in-out) 1.6s infinite alternate}.spider-thread{position:absolute;left:50%;top:0;width:1px;height:44px;background:linear-gradient(var(--color-thread) 30%,var(--color-thread))}.spider-body{position:absolute;left:0;top:40px;width:32px;height:26px;fill:var(--color-spider);overflow:visible;filter:drop-shadow(0 0 6px var(--color-accent-fill))}.spider-legs{fill:none;stroke:var(--color-spider);stroke-width:1.4;stroke-linecap:round;transform-origin:0 0;animation:spider-legs 2.4s ease-in-out infinite alternate}.spider-eye{fill:var(--color-spider-eye)}@keyframes spider-drop{0%{transform:translateY(-70px)}}@keyframes spider-sway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes spider-legs{to{transform:scaleY(.88)}}.fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;overflow:hidden}.fx-bat{position:absolute;width:64px;height:32px;margin:-16px 0 0 -32px;opacity:0;animation-fill-mode:forwards}.fx-pop{animation-name:bat-fly;animation-timing-function:var(--ease-in-out)}.fx-cross{left:0;width:72px;height:36px;animation-name:bat-cross;animation-timing-function:linear}.fx-cross .bat-svg{transform:scaleX(var(--flip))}@keyframes bat-cross{0%{transform:translate(var(--from));opacity:.9}25%{transform:translate(calc(var(--from) * .75 + var(--to) * .25),var(--bob))}50%{transform:translate(calc(var(--from) * .5 + var(--to) * .5))}75%{transform:translate(calc(var(--from) * .25 + var(--to) * .75),calc(var(--bob) * -.6))}to{transform:translate(var(--to));opacity:.9}}.home-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.home-hello{min-width:0}.eyebrow{font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.1em;color:var(--color-accent);margin-bottom:var(--space-2xs)}.home-hello h1{font-size:var(--text-2xl);line-height:1.05;color:var(--color-ink-2);overflow-wrap:anywhere}.home-name{display:block;font-size:var(--text-3xl);color:var(--color-ink)}.moon{flex:none;display:grid;justify-items:center;gap:var(--space-2xs);margin-top:var(--space-2xs)}.moon svg{display:block;overflow:visible}.moon-glow{fill:var(--color-moon-glow);animation:moon-breathe 6s var(--ease-in-out) infinite alternate;transform-origin:center}.moon-dark{fill:var(--color-moon-dark)}.moon-lit{fill:var(--color-moon)}.moon-crater{fill:var(--color-moon-crater)}.moon-name{font-size:var(--text-xs);color:var(--color-ink-3);font-style:italic;white-space:nowrap}@keyframes moon-breathe{to{transform:scale(1.12);opacity:.6}}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs);margin-bottom:var(--space-xl)}.stat{display:grid;align-content:start;gap:var(--space-3xs);padding:var(--space-sm) var(--space-sm) var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink-2);text-align:left;min-width:0}button.stat{transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}button.stat:hover{border-color:var(--color-rule-strong);background:var(--color-paper-3)}button.stat:active{transform:translateY(1px)}.stat-label{font-size:var(--text-sm);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-num{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1;color:var(--color-ink);font-variant-numeric:lining-nums tabular-nums}.stat-sub{font-size:var(--text-xs);font-style:italic;color:var(--color-ink-3)}.stat[data-alert]{border-color:var(--color-rule-strong);background:linear-gradient(var(--color-accent-soft),transparent 70%),var(--color-paper-2)}.stat[data-alert] .stat-num{color:var(--color-accent);text-shadow:0 0 14px var(--color-accent-fill)}.home-section{margin-bottom:var(--space-xl)}.home .install-hint{margin:0 0 var(--space-lg)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.section-head h2{font-size:var(--text-xl)}.section-count,.section-more{color:var(--color-ink-3);font-size:var(--text-sm);font-style:italic}.section-more{margin-top:var(--space-xs)}.upcoming{display:grid;gap:var(--space-md)}.upcoming-date{display:inline-flex;align-items:center;gap:var(--space-2xs);min-height:32px;margin-bottom:var(--space-2xs);padding:0;border:0;background:none;color:var(--color-accent);font-size:var(--text-md);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.1em}.upcoming-date svg{width:16px;height:16px;transition:transform var(--dur-fast) var(--ease-out)}.upcoming-date:hover svg{transform:translate(2px)}.clan{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-sm)}.clan-row{display:flex;align-items:center;gap:var(--space-sm)}.clan-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--color-rule);color:var(--person)}.clan-icon svg{width:20px;height:20px}.filters .chip svg,.share-toggle svg{width:16px;height:16px}.share-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs)}.share-toggle,.share-chips{margin-bottom:var(--space-xs)}.field-warn{color:var(--color-danger)}.clan-body{flex:1;min-width:0}.clan-line{display:flex;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-2xs)}.clan-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clan-count{flex:none;color:var(--color-ink-3);font-size:var(--text-sm);font-variant-numeric:lining-nums tabular-nums}.clan-bar{height:6px;border-radius:1px;background:var(--color-paper-3);overflow:hidden}.clan-bar span{display:block;height:100%;background:var(--person);box-shadow:0 0 10px var(--person);transition:width var(--dur-slow) var(--ease-out);animation:bar-grow .9s var(--ease-out)}@keyframes bar-grow{0%{width:0}}@media(min-width:600px){.page,.day-section,.agenda-head{padding-left:var(--space-lg);padding-right:var(--space-lg)}.chips{margin:0 calc(var(--space-lg) * -1);padding:var(--space-3xs) var(--space-lg)}.sheet-scrim{align-items:center}.sheet{border-radius:var(--radius-lg);max-height:86%}.sheet-top{padding-top:var(--space-md);cursor:default}.sheet-grip{display:none}}.pet-card{display:flex;align-items:center;gap:var(--space-sm);width:100%;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-md);background:radial-gradient(90% 120% at 15% 70%,var(--color-bloom-2),transparent 65%),var(--color-paper-2);color:var(--color-ink);text-align:left;transition:border-color var(--dur-fast) var(--ease-out)}.pet-card:hover{border-color:var(--color-accent-fill)}.pet-card:active{transform:translateY(1px)}.pet-card[data-mood="2"]{border-style:dashed}.pet-card.is-loading{min-height:136px;animation:breathe 1.4s var(--ease-in-out) infinite alternate}.pet-card .pet-svg{flex:none}.pet-text{display:grid;gap:var(--space-3xs);min-width:0;flex:1}.pet-eyebrow{font-size:var(--text-sm);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.1em;color:var(--color-accent)}.pet-name{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.05;overflow-wrap:anywhere}.pet-status{color:var(--color-ink-2);font-size:var(--text-sm)}.pet-card[data-mood="1"] .pet-status{color:var(--color-notice)}.pet-card[data-mood="2"] .pet-status{color:var(--color-danger)}.pet-meter{display:grid;gap:var(--space-3xs);margin-top:var(--space-2xs)}.pet-meter-label{font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:lining-nums tabular-nums}.pet-hint{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);margin-top:var(--space-2xs);font-size:var(--text-sm);font-style:italic;color:var(--color-ink-3)}.pet-hint svg{flex:none;width:16px;height:16px;color:var(--color-accent)}.pet-svg{overflow:visible;--hide: var(--pet-hide-bat);--eye: var(--pet-eye)}.pet-svg[data-creature=cerbero]{--hide: var(--pet-hide-dog)}.pet-svg[data-creature=baphomet]{--hide: var(--pet-hide-goat);--eye: var(--pet-eye-goat)}.pet-shadow{fill:var(--pet-shadow)}.pet-aura-in{stop-color:var(--pet-aura)}.pet-aura-out{stop-color:var(--pet-aura-clear)}.pet-hide{fill:var(--hide);stroke:var(--pet-rim);stroke-width:1;stroke-linejoin:round}.pet-belly{fill:var(--pet-belly)}.pet-bone{fill:var(--pet-bone)}.pet-nose{fill:var(--pet-crack)}.pet-collar{fill:var(--pet-collar)}.pet-cloak{fill:var(--color-bat);stroke:var(--pet-rim);stroke-width:1}.pet-horn{fill:none;stroke:var(--pet-bone);stroke-width:6;stroke-linecap:round}.pet-sigil{fill:none;stroke:var(--color-gold);stroke-width:1;stroke-linejoin:round;opacity:.8}.pet-eye{fill:var(--eye);filter:drop-shadow(0 0 2px var(--eye))}.pet-glint{fill:var(--pet-glint)}.pet-eye-shut{fill:none;stroke:var(--pet-bone);stroke-width:1.6;stroke-linecap:round}.pet-egg-shell{fill:var(--pet-egg)}.pet-egg-shade{fill:var(--pet-egg-shade)}.pet-rune{fill:none;stroke:var(--color-accent-fill);stroke-width:2}.pet-rune-mark{fill:var(--color-accent-fill)}.pet-crack{fill:none;stroke:var(--pet-crack);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;animation:crack-in .6s var(--ease-out) both}.pet-heart{fill:var(--color-accent-fill);transform-box:fill-box;transform-origin:center;animation:heart-rise 1.5s var(--ease-out) forwards}.pet-body{transform-box:fill-box;transform-origin:50% 100%;animation:pet-bob 2.6s var(--ease-in-out) infinite alternate}.pet-svg[data-creature=huevo] .pet-body{animation:egg-wobble 3.2s var(--ease-in-out) infinite}.pet-svg[data-creature=huevo][data-near] .pet-body{animation-duration:1.6s}.pet-blink{transform-box:fill-box;transform-origin:center;animation:pet-blink 5s infinite}.pet-wings{transform-box:fill-box;transform-origin:50% 40%;animation:pet-flap 1.8s var(--ease-in-out) infinite alternate}.pet-flame{transform-box:fill-box;transform-origin:50% 100%;animation:flicker 1.4s ease-in-out infinite}.pet-svg[data-mood="1"] .pet-body{animation-duration:4s;filter:saturate(.7)}.pet-svg[data-mood="2"] .pet-body{animation:none;transform:translateY(3px) scaleY(.94);filter:saturate(.35) brightness(.8)}.pet-svg[data-mood="2"] .pet-wings{animation:none;transform:rotate(0) scaleY(.7)}.pet-svg[data-mood="2"] .pet-flame{opacity:.25;animation:none}.pet-svg[data-eating] .pet-body{animation:pet-hop .52s var(--ease-out) 2}@keyframes pet-bob{to{transform:translateY(-3px) scaleY(1.02)}}@keyframes egg-wobble{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-5deg)}80%{transform:rotate(4deg)}90%{transform:rotate(-2deg)}}@keyframes pet-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes pet-flap{to{transform:scaleY(.82) translateY(2px)}}@keyframes pet-hop{40%{transform:translateY(-10px) scaleY(1.05)}70%{transform:translateY(0) scaleY(.92)}}@keyframes heart-rise{0%{opacity:0;transform:translateY(6px) scale(.6)}25%{opacity:1}to{opacity:0;transform:translateY(-18px) scale(1.1)}}@keyframes crack-in{0%{stroke-dasharray:40;stroke-dashoffset:40}to{stroke-dasharray:40;stroke-dashoffset:0}}.pet-hero{display:grid;justify-items:center;gap:var(--space-xs);margin-bottom:var(--space-lg)}.pet-hero-status{color:var(--color-ink-2);font-style:italic}.pet-hero[data-mood="1"] .pet-hero-status{color:var(--color-notice)}.pet-hero[data-mood="2"] .pet-hero-status{color:var(--color-danger)}.pet-name-form{margin-bottom:var(--space-lg)}.pet-name-row{display:flex;gap:var(--space-xs)}.pet-name-row .input{flex:1;min-width:0}.pet-name-row .btn{flex:none}.pet-facts{list-style:none;margin:0 0 var(--space-md);padding:0;display:grid}.pet-facts li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2xs) var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule)}.pet-facts span{color:var(--color-ink-3)}.pet-facts strong{font-weight:600;font-variant-numeric:lining-nums tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.12s!important;animation-iteration-count:1!important;transition-duration:0ms!important}.sheet{animation-name:fade}.cdl-flame,.cdl-glow{animation:none}.bats,.fx-layer{display:none}.sheet[data-closing],.sheet-scrim[data-closing]{animation:none}.top-loader span{animation:none;width:100%}.view{animation:none}.spider-swing,.spider-legs,.moon-glow,.streak-flame,.crypt-card.is-loading,.pet-card.is-loading,.pet-body,.pet-blink,.pet-wings,.pet-flame,.pet-heart{animation:none!important}}
