@property --dot{syntax:"<length>";inherits:true;initial-value:28px}@property --gap{syntax:"<length>";inherits:true;initial-value:6px}.life-cal-root{--cal-bg:var(--color-bg,#080e10);--cal-bg-2:var(--color-surface,#0d1718);--cal-bg-3:#0a1214;--cal-line:#022b2b;--cal-line-2:#0d3838;--m-past-fill:var(--color-bg,#080e10);--m-past-stroke:#022b2b;--m-default-stroke:var(--color-brand-dark,#0a5c5f);--m-future-fill:#193a3d;--m-today-stroke:var(--color-brand-light,#14b8b8);--m-major-fill:#bfc498;--m-major-stroke:#878641;--cal-fg:#b8d8da;--cal-fg-2:var(--color-muted-text,#8fa9ab);--cal-fg-3:#4e7274;--cal-accent:var(--color-brand-light,#14b8b8);--serif:var(--font-serif,"IBM Plex Serif", "Times New Roman", serif);--sans:var(--font-sans,"IBM Plex Sans", system-ui, sans-serif);--mono:var(--font-mono,"IBM Plex Mono", ui-monospace, monospace);--dot:clamp(20px, 2.4vw, 34px);--gap:clamp(4px, .5vw, 8px);--row-h:calc(var(--dot) + var(--gap) * 2);--age-col:56px;--label-col:180px;background:var(--cal-bg);min-height:100%;color:var(--cal-fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:15px;transition:background .25s,color .25s,--dot 1.4s cubic-bezier(.4,0,.2,1),--gap 1.4s cubic-bezier(.4,0,.2,1)}.life-cal-root.is-intro .cal-header,.life-cal-root.is-intro .legend,.life-cal-root.is-intro .year-label,.life-cal-root.is-intro .age-label,.life-cal-root.is-intro .life-cal-zoom{opacity:0;pointer-events:none}.life-cal-root .cal-header,.life-cal-root .legend,.life-cal-root .year-label,.life-cal-root .age-label,.life-cal-root .life-cal-zoom{transition:opacity .6s}.life-cal-root.is-intro .year-row{height:calc(var(--dot) + 2px);border-top-color:#0000;grid-template-columns:1fr;gap:0;padding:0}.life-cal-root.is-intro .year-row.is-decade{border-top-color:var(--cal-line-2)}.life-cal-root.is-intro .months{justify-self:center}.life-cal-root[data-intro-phase=fit] .cal-board{animation:.7s forwards grid-fade-in}.life-cal-root[data-intro-phase=fit] .month-dot.is-past,.life-cal-root[data-intro-phase=fit] .month-dot.is-today{background:var(--m-future-fill);border-color:var(--m-default-stroke);box-shadow:none;border-width:2px;animation:none}.life-cal-root[data-intro-phase=fit] .birth-icon,.life-cal-root[data-intro-phase=filling] .birth-icon{opacity:0;transform:translate(-50%,-50%)scale(0)}.life-cal-root[data-intro-phase=filling] .month-dot.is-today{background:var(--m-future-fill);border-color:var(--m-default-stroke);box-shadow:none;border-width:2px;animation:none}.life-cal-root[data-intro-phase=filling] .month-dot.is-past{animation:.35s both reveal-past;animation-delay:calc(var(--m-row,0) * var(--fill-row-delay,55ms))}.life-cal-root[data-intro-phase=events] .birth-icon{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards pop-birth}.life-cal-root[data-intro-phase=events] .month-dot.is-today{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards reveal-today,2.2s ease-in-out .5s infinite today-pulse}@keyframes grid-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-past{0%{background:var(--m-future-fill);border-color:var(--m-default-stroke)}to{background:var(--m-past-fill);border-color:var(--m-past-stroke)}}@keyframes reveal-today{0%{opacity:0;box-shadow:none;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes pop-birth{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.life-cal-root *,.life-cal-root :before,.life-cal-root :after{box-sizing:border-box}.life-cal-root a{color:inherit;text-decoration:none}.life-cal-root button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;padding:0}.life-cal-root .cal-nav{z-index:40;background:color-mix(in oklab, var(--cal-bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--cal-line);position:sticky;top:0}.life-cal-root .cal-nav .row{justify-content:space-between;align-items:center;gap:24px;max-width:1280px;height:64px;margin:0 auto;padding:0 clamp(16px,3vw,40px);display:flex}.life-cal-root .cal-brand{font-family:var(--serif);letter-spacing:-.01em;color:var(--cal-fg);align-items:center;gap:10px;font-size:22px;display:flex}.life-cal-root .cal-brand .mark{place-items:center;width:22px;height:22px;display:inline-grid}.life-cal-root .cal-brand .mark path.stroke-1{stroke:var(--cal-fg)}.life-cal-root .cal-brand .mark path.stroke-2{stroke:var(--cal-accent)}.life-cal-root .cal-nav .crumbs{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);font-size:11px}.life-cal-root .cal-btn{border:1px solid var(--cal-line);height:36px;color:var(--cal-fg-2);background:0 0;border-radius:999px;align-items:center;gap:10px;padding:0 14px;font-size:13px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.life-cal-root .cal-btn:hover{color:var(--cal-fg);border-color:var(--cal-fg-3)}.life-cal-root .cal-btn.danger{color:var(--cal-fg-3)}.life-cal-root .cal-btn.danger:hover{color:var(--m-today-stroke);border-color:var(--m-today-stroke)}.life-cal-root .setup{place-items:center;min-height:calc(100vh - 64px);padding:48px clamp(16px,4vw,40px);display:grid}.life-cal-root .setup-inner{gap:28px;width:100%;max-width:640px;display:grid}.life-cal-root .eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);align-items:center;gap:10px;font-size:11px;display:inline-flex}.life-cal-root .eyebrow:before{content:"";background:var(--cal-accent);border-radius:999px;width:6px;height:6px}.life-cal-root .setup h1{font-family:var(--serif);letter-spacing:-.02em;text-wrap:balance;color:var(--cal-fg);margin:0;font-size:clamp(40px,6vw,72px);line-height:1}.life-cal-root .setup h1 em{color:var(--cal-accent);font-style:italic}.life-cal-root .setup p.lede{color:var(--cal-fg-2);max-width:56ch;margin:0;font-size:17px;line-height:1.5}.life-cal-root .setup-form{background:var(--cal-bg-2);border:1px solid var(--cal-line);border-radius:8px;gap:28px;margin-top:12px;padding:clamp(24px,3vw,36px);display:grid}.life-cal-root .setup-form .field{gap:10px;display:grid}.life-cal-root .setup-form label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);font-size:11px}.life-cal-root .dob-inputs{grid-template-columns:1fr 1fr 1.6fr;align-items:center;gap:12px;display:grid}.life-cal-root .dob-inputs input{background:var(--cal-bg);border:1px solid var(--cal-line);height:52px;font:400 18px var(--serif);color:var(--cal-fg);text-align:center;letter-spacing:.04em;appearance:textfield;border-radius:6px;outline:none;width:100%}.life-cal-root .dob-inputs input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.life-cal-root .dob-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.life-cal-root .dob-inputs input:focus{border-color:var(--cal-accent)}.life-cal-root .lifespan-row{grid-template-columns:1fr 72px;align-items:center;gap:16px;display:grid}.life-cal-root .lifespan-row input[type=range]{appearance:none;background:var(--cal-bg-3);border-radius:999px;outline:none;width:100%;height:4px}.life-cal-root .lifespan-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--cal-accent);border:2px solid var(--cal-bg);cursor:pointer;border-radius:999px;width:22px;height:22px}.life-cal-root .lifespan-row input[type=range]::-moz-range-thumb{background:var(--cal-accent);border:2px solid var(--cal-bg);cursor:pointer;border-radius:999px;width:22px;height:22px}.life-cal-root .lifespan-val{font-family:var(--serif);letter-spacing:-.02em;text-align:center;color:var(--cal-fg);font-size:32px}.life-cal-root .lifespan-val small{font-family:var(--mono);letter-spacing:.14em;color:var(--cal-fg-2);text-transform:uppercase;margin-top:2px;font-size:10px;display:block}.life-cal-root .setup-form .help{color:var(--cal-fg-3);font-size:13px}.life-cal-root .setup-form .actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.life-cal-root .setup-form .err{font-family:var(--mono);color:#ff8a78;letter-spacing:.04em;font-size:12px}.life-cal-root .cta{background:var(--cal-fg);height:48px;color:var(--cal-bg);border:1px solid var(--cal-fg);border-radius:999px;align-items:center;gap:10px;padding:0 22px;font-size:14.5px;font-weight:500;transition:background .2s,color .2s,border-color .2s,transform .15s;display:inline-flex}.life-cal-root .cta:hover{background:var(--cal-accent);border-color:var(--cal-accent);color:var(--cal-bg-3)}.life-cal-root .cta:active{transform:translateY(1px)}.life-cal-root .cal-header{max-width:1280px;margin:0 auto;padding:clamp(40px,6vw,80px) clamp(16px,3vw,40px) clamp(24px,4vw,48px)}.life-cal-root .cal-header h1{font-family:var(--serif);letter-spacing:-.02em;text-wrap:balance;margin:16px 0 0;font-size:clamp(40px,5.4vw,80px);line-height:1}.life-cal-root .cal-header h1 em{color:var(--cal-accent);font-style:italic}.life-cal-root .cal-stats{background:var(--cal-line);border-top:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:clamp(28px,4vw,48px);display:grid}@media (max-width:800px){.life-cal-root .cal-stats{grid-template-columns:repeat(2,1fr)}}.life-cal-root .cal-stat{background:var(--cal-bg);padding:22px 20px 26px}.life-cal-root .cal-stat .n{font-family:var(--serif);letter-spacing:-.02em;color:var(--cal-fg);font-size:clamp(32px,3.2vw,44px);line-height:1}.life-cal-root .cal-stat .l{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cal-fg-2);margin-top:12px;font-size:11px}.life-cal-root .cal-stat .d{color:var(--cal-fg-3);max-width:24ch;margin-top:6px;font-size:13px}.life-cal-root .life-bar{background:var(--cal-bg-3);border-radius:999px;width:100%;height:5px;margin-top:14px;overflow:hidden}.life-cal-root .life-bar>span{background:var(--cal-accent);height:100%;display:block}.life-cal-root .cal-board{max-width:1280px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,3vw,40px) clamp(64px,8vw,120px)}.life-cal-root .legend{border-bottom:1px dashed var(--cal-line);flex-wrap:wrap;gap:clamp(16px,3vw,32px);margin-bottom:clamp(20px,3vw,36px);padding:20px 0 28px;display:flex}.life-cal-root .legend .item{color:var(--cal-fg-2);align-items:center;gap:10px;font-size:13px;display:flex}.life-cal-root .legend .swatch{border-radius:999px;flex-shrink:0;width:20px;height:20px}.life-cal-root .year-rows{gap:0;display:grid}.life-cal-root .year-row{grid-template-columns:var(--age-col) 1fr var(--label-col);padding:calc(var(--gap)) 0;border-top:1px solid #0000;align-items:center;gap:clamp(8px,1.5vw,24px);display:grid;position:relative}.life-cal-root .year-row.is-decade{border-top:1px solid var(--cal-line-2)}.life-cal-root .year-row.is-now{background:linear-gradient(to right, color-mix(in oklab, var(--cal-accent) 6%, transparent) 0%, transparent 70%)}.life-cal-root .age-label{font-family:var(--mono);letter-spacing:.1em;color:var(--cal-fg-3);text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.life-cal-root .year-row.is-decade .age-label,.life-cal-root .year-row.is-now .age-label,.life-cal-root .year-row.is-birth .age-label,.life-cal-root .year-row.is-last .age-label{color:var(--cal-fg)}.life-cal-root .months{gap:var(--gap);justify-self:start;display:flex}.life-cal-root .month-dot{width:var(--dot);height:var(--dot);border:2px solid var(--m-default-stroke);background:var(--m-future-fill);border-radius:50%;flex-shrink:0;transition:transform .14s,border-color .14s,background .14s;position:relative}.life-cal-root .month-dot:after{content:"";border-radius:50%;position:absolute;inset:-6px}.life-cal-root .month-dot.is-birth-cell{border-color:var(--cal-accent);overflow:visible}.life-cal-root .birth-icon{font-size:calc(var(--dot) * .55);pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.life-cal-root .month-dot:hover{transform:scale(1.18)}.life-cal-root .month-dot:focus-visible{box-shadow:0 0 0 2px var(--cal-accent);outline:none;transform:scale(1.18)}.life-cal-root .month-dot.is-past{background:var(--m-past-fill);border-color:var(--m-past-stroke)}.life-cal-root .month-dot.is-today{border-color:var(--m-today-stroke);background:var(--m-future-fill);box-shadow:0 0 0 1px color-mix(in oklab, var(--m-today-stroke) 50%, transparent);border-width:2.5px;animation:2.2s ease-in-out infinite today-pulse}@keyframes today-pulse{0%,to{box-shadow:0 0 0 1px color-mix(in oklab, var(--m-today-stroke) 40%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in oklab, var(--m-today-stroke) 12%, transparent)}}.life-cal-root .month-dot.has-minor:before{content:"";border:2px solid var(--m-default-stroke);background:0 0;border-radius:50%;width:28%;height:28%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.life-cal-root .month-dot.is-past.has-minor:before{border-color:var(--cal-fg-2)}.life-cal-root .month-dot.has-major{background:var(--m-major-fill);border-color:var(--m-major-stroke)}.life-cal-root .month-dot.has-major.is-today{border-color:var(--m-today-stroke)}.life-cal-root .month-dot.is-selected{outline:2px solid var(--cal-fg);outline-offset:3px}.life-cal-root .year-label{min-height:var(--dot);align-items:center;gap:10px;display:flex}.life-cal-root .year-label .yr{font-family:var(--serif);letter-spacing:-.01em;color:var(--cal-fg-2);font-size:22px}.life-cal-root .year-row.is-decade .year-label .yr,.life-cal-root .year-row.is-birth .year-label .yr,.life-cal-root .year-row.is-now .year-label .yr,.life-cal-root .year-row.is-last .year-label .yr{color:var(--cal-fg)}.life-cal-root .year-label .tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-3);border:1px solid var(--cal-line);border-radius:999px;padding:4px 8px;font-size:10.5px}.life-cal-root .year-row.is-birth .year-label .tag{color:var(--cal-fg);border-color:var(--cal-fg-3)}.life-cal-root .year-row.is-now .year-label .tag{color:var(--cal-bg);background:var(--cal-accent);border-color:var(--cal-accent)}.life-cal-root .year-row.is-last .year-label .tag{color:var(--cal-fg-2);border-color:var(--cal-line)}.life-cal-shade{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;opacity:0;pointer-events:none;background:#00000059;background:lab(0% 0 0/.35);transition:opacity .22s;position:fixed;inset:0}.life-cal-shade.open{opacity:1;pointer-events:auto}.life-cal-sidebar{z-index:70;flex-direction:column;width:min(440px,100vw);height:100vh;transition:transform .25s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-20px 0 80px #00000040}.life-cal-sidebar.open{transform:translate(0)}.life-cal-sidebar{background:var(--sidebar-bg,#0d1718);border-left:1px solid var(--sidebar-line,#022b2b);color:var(--sidebar-fg,#b8d8da);--serif:var(--font-serif,"IBM Plex Serif", "Times New Roman", serif);--sans:var(--font-sans,"IBM Plex Sans", system-ui, sans-serif);--mono:var(--font-mono,"IBM Plex Mono", ui-monospace, monospace)}.life-cal-root .sidebar-header{border-bottom:1px solid var(--cal-line);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 18px;display:flex}.life-cal-root .sidebar-header .meta{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);font-size:11px}.life-cal-root .sidebar-header h2{font-family:var(--serif);letter-spacing:-.015em;color:var(--cal-fg);margin:10px 0 4px;font-size:38px;line-height:1}.life-cal-root .sidebar-header h2 em{color:var(--cal-accent);font-style:italic}.life-cal-root .sidebar-header .sub{color:var(--cal-fg-2);font-size:13px}.life-cal-root .sidebar-close{border:1px solid var(--cal-line);width:36px;height:36px;color:var(--cal-fg-2);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.life-cal-root .sidebar-close:hover{color:var(--cal-fg);border-color:var(--cal-fg-3)}.life-cal-root .sidebar-body{flex-direction:column;flex:1;gap:22px;padding:22px 24px 32px;display:flex;overflow-y:auto}.life-cal-root .state-badge{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--cal-line);color:var(--cal-fg-2);border-radius:999px;align-items:center;gap:8px;width:max-content;padding:5px 10px;font-size:11px;display:inline-flex}.life-cal-root .state-badge.s-today{color:var(--m-today-stroke);border-color:var(--m-today-stroke)}.life-cal-root .state-badge.s-past{color:var(--cal-fg)}.life-cal-root .state-badge.s-future{color:var(--cal-fg-3)}.life-cal-root .state-badge:before{content:"";background:currentColor;border-radius:999px;width:6px;height:6px}.life-cal-root .section-title{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);font-size:11px}.life-cal-root .event-list{gap:10px;display:grid}.life-cal-root .event-card{background:var(--cal-bg);border:1px solid var(--cal-line);border-radius:6px;gap:6px;padding:14px 16px;display:grid}.life-cal-root .event-card .row1{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.life-cal-root .event-card .title{font-family:var(--serif);letter-spacing:-.01em;color:var(--cal-fg);font-size:22px}.life-cal-root .event-card .type-pill{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--cal-line);color:var(--cal-fg-2);border-radius:999px;padding:3px 8px;font-size:10.5px}.life-cal-root .event-card .type-pill.minor{color:var(--m-default-stroke);border-color:var(--m-default-stroke)}.life-cal-root .event-card .type-pill.major{color:var(--m-major-fill);border-color:var(--m-major-stroke);background:color-mix(in oklab, var(--m-major-fill) 12%, transparent)}.life-cal-root .event-card .note{color:var(--cal-fg-2);font-size:14px;line-height:1.5}.life-cal-root .event-card .controls{gap:12px;margin-top:4px;display:flex}.life-cal-root .event-card .controls button{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cal-fg-3);font-size:11px}.life-cal-root .event-card .controls button:hover{color:var(--cal-fg)}.life-cal-root .event-card .controls .del:hover{color:#ff8a78}.life-cal-root .empty{border:1px dashed var(--cal-line);color:var(--cal-fg-3);border-radius:6px;padding:18px 20px;font-size:14px;font-style:italic}.life-cal-root .event-form{background:var(--cal-bg);border:1px solid var(--cal-line);border-radius:6px;gap:14px;padding:18px 20px;display:grid}.life-cal-root .event-form label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cal-fg-2);font-size:11px}.life-cal-root .event-form input,.life-cal-root .event-form textarea{background:var(--cal-bg-2);border:1px solid var(--cal-line);font:400 15px var(--sans);color:var(--cal-fg);border-radius:4px;outline:none;width:100%;padding:10px 12px}.life-cal-root .event-form input:focus,.life-cal-root .event-form textarea:focus{border-color:var(--cal-accent)}.life-cal-root .event-form textarea{resize:vertical;min-height:70px}.life-cal-root .type-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.life-cal-root .type-toggle button{border:1px solid var(--cal-line);height:40px;color:var(--cal-fg-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;font-size:13px;display:inline-flex}.life-cal-root .type-toggle button[aria-pressed=true].minor{border-color:var(--m-default-stroke);color:var(--cal-fg)}.life-cal-root .type-toggle button[aria-pressed=true].major{background:var(--m-major-fill);border-color:var(--m-major-stroke);color:var(--cal-bg)}.life-cal-root .type-toggle button .demo{border:2px solid;border-radius:50%;width:14px;height:14px;position:relative}.life-cal-root .type-toggle button.minor .demo:after{content:"";border:1.5px solid;border-radius:50%;width:35%;height:35%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.life-cal-root .type-toggle button.major[aria-pressed=true] .demo{background:var(--cal-bg);border-color:var(--cal-bg)}.life-cal-root .event-form .actions{justify-content:flex-end;gap:10px;display:flex}.life-cal-root .event-form .actions .ghost{color:var(--cal-fg-3);height:40px;padding:0 12px}.life-cal-root .event-form .actions .ghost:hover{color:var(--cal-fg)}.life-cal-root .add-event-btn{border:1px dashed var(--cal-line);height:44px;color:var(--cal-fg-2);border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;padding:0 16px;font-size:13.5px;display:inline-flex}.life-cal-root .add-event-btn:hover{color:var(--cal-fg);border-color:var(--cal-fg-3)}.life-cal-root .add-event-btn .plus{border:1px solid;border-radius:999px;place-items:center;width:22px;height:22px;font-size:16px;line-height:1;display:grid}.life-cal-zoom{z-index:50;background:color-mix(in oklab, var(--zoom-bg,#0d1718) 92%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid var(--zoom-line,#022b2b);border-radius:999px;gap:2px;padding:4px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 50px #00000047}.life-cal-zoom .zoom-label{font-family:var(--font-mono,"IBM Plex Mono", ui-monospace, monospace);letter-spacing:.16em;text-transform:uppercase;color:var(--zoom-fg3,#4e7274);border-right:1px solid var(--zoom-line,#022b2b);align-items:center;margin-right:2px;padding:0 12px;font-size:10px;display:inline-flex}.life-cal-zoom button{height:32px;font-family:var(--font-mono,"IBM Plex Mono", ui-monospace, monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--zoom-fg2,#8fa9ab);white-space:nowrap;border-radius:999px;padding:0 14px;font-size:11px;transition:background .15s,color .15s}.life-cal-zoom button:hover{color:var(--zoom-fg,#b8d8da)}.life-cal-zoom button[aria-pressed=true]{background:var(--zoom-fg,#b8d8da);color:var(--zoom-bg,#0d1718)}.life-cal-root[data-zoom="50"]{--age-col:44px;--label-col:140px}.life-cal-root[data-zoom="50"] .year-label .yr{font-size:18px}.life-cal-root[data-zoom="50"] .age-label{font-size:10px}.life-cal-root[data-zoom=fit]{--age-col:32px;--label-col:88px}.life-cal-root[data-zoom=fit] .year-label .yr{letter-spacing:0;font-size:11px}.life-cal-root[data-zoom=fit] .year-label .tag{letter-spacing:.1em;padding:2px 5px;font-size:8.5px}.life-cal-root[data-zoom=fit] .age-label{letter-spacing:0;font-size:8px}.life-cal-root[data-zoom=fit] .month-dot{border-width:1.25px}.life-cal-root[data-zoom=fit] .month-dot.is-today{border-width:1.5px}.life-cal-root[data-zoom=fit] .month-dot:hover{transform:scale(1.6)}.life-cal-root[data-zoom=fit] .legend{gap:16px;margin-bottom:12px;padding:10px 0 14px;font-size:11px}.life-cal-root[data-zoom=fit] .legend .swatch{width:14px;height:14px}.life-cal-root[data-zoom=fit] .cal-board{padding-top:14px;padding-bottom:24px}.life-cal-root[data-zoom=fit] .cal-header,.life-cal-root[data-zoom=fit] .age-label,.life-cal-root[data-zoom=fit] .year-label{display:none}.life-cal-root[data-zoom=fit] .year-row{height:calc(var(--dot) + 2px);border-top-color:#0000;grid-template-columns:1fr;gap:0;padding:0}.life-cal-root[data-zoom=fit] .year-row.is-decade{border-top-color:var(--cal-line-2)}.life-cal-root[data-zoom=fit] .months{justify-self:center}@media (max-width:640px){.life-cal-zoom{bottom:16px;right:16px}.life-cal-zoom .zoom-label{display:none}.life-cal-root{--age-col:36px;--label-col:100px}.life-cal-root .cal-header h1{font-size:clamp(34px,9vw,56px)}.life-cal-root .year-label .yr{font-size:18px}.life-cal-root .year-label .tag{padding:3px 6px;font-size:9.5px}}
