:root{color-scheme:light dark;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--gutter: clamp(20px, 4vw, 32px);--page: 1120px;--measure: 62ch;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--t-caption: 13px;--lh-caption: 18px;--t-small: 15px;--lh-small: 22px;--t-body: 17px;--lh-body: 26px;--t-lead: 20px;--lh-lead: 30px;--t-h3: 20px;--lh-h3: 26px;--t-h2: clamp(28px, 2.2vw + 18px, 40px);--lh-h2: 1.12;--t-display: clamp(38px, 3.6vw + 22px, 60px);--lh-display: 1.04;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--r-s: 6px;--r-m: 10px;--r-l: 16px;--r-pill: 999px;--hairline: 1px;--spring-fast: 108ms linear(0, .0495, .1582, .2864, .4129, .5273, .6256, .7073, .7736, .8263, .8677, .8998, .9246, .9435, .9578, .9686, .9767, .9828, .9873, .9906, .9931, .995, .9963, .9973, 1);--spring-moderate: 216ms linear(0, .0495, .1582, .2864, .4129, .5273, .6256, .7073, .7736, .8263, .8677, .8998, .9246, .9435, .9578, .9686, .9767, .9828, .9873, .9906, .9931, .995, .9963, .9973, 1);--spring-slow: 296ms linear(0, .0431, .143, .2672, .3953, .5155, .6219, .7119, .7856, .8443, .8898, .9243, .9498, .9682, .9811, .9899, .9957, .9993, 1.0014, 1.0025, 1.0029, 1.0029, 1.0027, 1.0024, 1);--exit-fast: 60ms ease-out;--exit-moderate: .12s ease-out;--exit-slow: .16s ease-out;--bg: #ffffff;--surface: #f6f6f5;--surface-2: #eeeeec;--line: rgb(24 24 27 / .1);--line-strong: rgb(24 24 27 / .18);--text: #18181b;--text-2: #4b4b53;--text-3: #6b6b73;--accent: #0a7c83;--accent-hover: #086a70;--accent-ink: #087078;--on-accent: #ffffff;--good: #1f8a3b;--bad: #c42b1c;--shadow: 0 1px 2px rgb(0 0 0 / .05), 0 8px 24px rgb(0 0 0 / .06);--focus: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent);--hue-steps: #ff9500;--hue-energy: #ff3b30;--hue-exercise: #34c759;--hue-heart: #ff2d55;--hue-sleep: #007aff;--hue-hrv: #af52de;--hue-vo2: #32ade6;--hue-weight: #5856d6}@media(prefers-color-scheme:dark){:root{--bg: #111113;--surface: #19191c;--surface-2: #232327;--line: rgb(255 255 255 / .09);--line-strong: rgb(255 255 255 / .16);--text: #f4f4f5;--text-2: #b4b4bb;--text-3: #8f8f98;--accent: #3fcfc4;--accent-hover: #63dbd2;--accent-ink: #5ad6cc;--on-accent: #062a2a;--good: #4cc26a;--bad: #ff6a5c;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px rgb(0 0 0 / .35);--hue-steps: #ff9f0a;--hue-energy: #ff453a;--hue-exercise: #30d158;--hue-heart: #ff375f;--hue-sleep: #0a84ff;--hue-hrv: #bf5af2;--hue-vo2: #64d2ff;--hue-weight: #5e5ce6}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--s-9)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-regular);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}img,svg{display:block;max-width:100%}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0}a{color:inherit}button{font:inherit}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-s)}.display,.h2,.h3{font-variant-numeric:proportional-nums}.display{font-family:var(--font-display);font-size:var(--t-display);line-height:var(--lh-display);font-weight:var(--w-semibold);letter-spacing:-.022em;text-wrap:balance}.h2{font-family:var(--font-display);font-size:var(--t-h2);line-height:var(--lh-h2);font-weight:var(--w-semibold);letter-spacing:-.016em;text-wrap:balance}.h3{font-size:var(--t-h3);line-height:var(--lh-h3);font-weight:var(--w-semibold)}.lead{font-size:var(--t-lead);line-height:var(--lh-lead);color:var(--text-2);text-wrap:pretty}.small{font-size:var(--t-small);line-height:var(--lh-small)}.caption{font-size:var(--t-caption);line-height:var(--lh-caption);color:var(--text-3)}.muted{color:var(--text-2)}.mono{font-family:var(--font-mono);font-size:.88em}p{text-wrap:pretty}.prose a,a.link{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:var(--hairline);text-underline-offset:3px;transition:text-decoration-color var(--spring-moderate)}.prose a:hover,a.link:hover{text-decoration-thickness:2px}.wrap{width:min(100% - var(--gutter) * 2,var(--page));margin-inline:auto}.section{padding-block:var(--s-9)}.section+.section{border-top:var(--hairline) solid var(--line)}.section-head{display:grid;gap:var(--s-4);max-width:720px;margin-bottom:var(--s-7)}.stack{display:grid;gap:var(--s-4);align-content:start}@media(max-width:720px){.section{padding-block:var(--s-8)}.section-head{margin-bottom:var(--s-6)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-5);border-radius:var(--r-m);border:var(--hairline) solid transparent;font-size:var(--t-small);font-weight:var(--w-semibold);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--spring-moderate),border-color var(--spring-moderate),transform var(--spring-fast)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg);color:var(--text);border-color:var(--line-strong)}.btn-secondary:hover{background:var(--surface)}.btn[aria-disabled=true]{background:var(--surface-2);color:var(--text-3);cursor:default;pointer-events:none}.btn-s{min-height:36px;padding:0 var(--s-4)}code,kbd,pre{font-family:var(--font-mono)}.prose code,p code,li code,td code{font-size:.86em;padding:1px 5px;border-radius:var(--r-s);background:var(--surface-2);overflow-wrap:anywhere}pre.code{margin:0;padding:var(--s-4) var(--s-5);border-radius:var(--r-m);background:#161618;color:#e7e7ea;font-size:var(--t-caption);line-height:22px;overflow-x:auto;white-space:pre}pre.code .dim{color:#8f8f98}pre.code .ok{color:#5ad6cc}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:var(--s-4);top:-100px;z-index:100;padding:var(--s-2) var(--s-4);background:var(--text);color:var(--bg);border-radius:var(--r-s)}.skip:focus{top:var(--s-4)}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.reveal{animation:reveal-in linear both;animation-timeline:view();animation-range:entry 12px entry 120px}}}@keyframes reveal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.site-header[data-astro-cid-5hce7sga]{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:var(--hairline) solid var(--line)}.bar[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:var(--s-5);height:60px}.brand[data-astro-cid-5hce7sga]{display:inline-flex;align-items:center;gap:var(--s-2);text-decoration:none;font-weight:var(--w-semibold);font-size:var(--t-small)}.nav[data-astro-cid-5hce7sga]{position:relative;display:flex;gap:var(--s-1);margin-left:auto;font-size:var(--t-small)}.nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{position:relative;z-index:1;padding:var(--s-1) var(--s-3);border-radius:var(--r-s);color:var(--text-2);text-decoration:none;transition:color var(--spring-moderate)}.nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--text)}.nav-highlight[data-astro-cid-5hce7sga]{position:absolute;left:0;top:0;border-radius:var(--r-s);background:var(--surface-2);opacity:0;pointer-events:none;transition:transform var(--spring-moderate),opacity var(--exit-moderate)}.nav-highlight[data-astro-cid-5hce7sga][data-on]{opacity:1;transition:transform var(--spring-moderate),opacity var(--spring-moderate)}.nav-highlight[data-astro-cid-5hce7sga][data-instant]{transition:none}@media(prefers-reduced-motion:reduce){.nav-highlight[data-astro-cid-5hce7sga],.nav-highlight[data-astro-cid-5hce7sga][data-on]{transition:opacity var(--spring-moderate)}}@media(max-width:760px){.nav[data-astro-cid-5hce7sga]{display:none}.bar[data-astro-cid-5hce7sga] .btn{margin-left:auto}}.site-footer[data-astro-cid-5hce7sga]{border-top:var(--hairline) solid var(--line);padding-block:var(--s-7);background:var(--surface)}.foot[data-astro-cid-5hce7sga]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-5) var(--s-7);align-items:start}.foot-brand[data-astro-cid-5hce7sga]{display:grid;gap:var(--s-3);max-width:46ch}.foot-links[data-astro-cid-5hce7sga]{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5)}.foot-links[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{color:var(--text-2);text-decoration:none}.foot-links[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}.foot-year[data-astro-cid-5hce7sga]{grid-column:1 / -1}@media(max-width:640px){.foot[data-astro-cid-5hce7sga]{grid-template-columns:1fr}}
