:root{color-scheme:light dark;--bg:#fff;--surface:#f5f5f7;--ink:#1d1d1f;--ink-muted:#6a6a70;--line:#e3e3e8;--accent:#1a5fd0;--on-accent:#fff;--accent-hover:#1550b0;--holiday:#c62828;--on-holiday:#fff;--bridge:#a8530a;--blocked:#6a6a70;--rest-band:#e4edfb;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;--fs-2xl:2.5rem;--fs-3xl:clamp(2.5rem, 6vw + 1rem, 5rem);--lh-tight:1.15;--lh-body:1.5;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4.5rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-pill:999px;--gutter:.75rem;--page-max:75rem;--cell-min-h:1.75rem;--ease-out:cubic-bezier(.16, 1, .3, 1)}@media (width>=40rem){:root{--gutter:1.5rem}}@media (prefers-color-scheme:dark){:root{--bg:#101012;--surface:#1b1b1f;--ink:#f2f2f4;--ink-muted:#a0a0a8;--line:#2e2e34;--accent:#6ea8ff;--on-accent:#07142b;--accent-hover:#8dbaff;--holiday:#ff7a70;--on-holiday:#2a0605;--bridge:#f5a524;--blocked:#a0a0a8;--rest-band:#1b2a45}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--line) transparent}body{--page-pad:max(var(--gutter), calc((100% - var(--page-max)) / 2));background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0}main{padding:var(--sp-5) var(--page-pad)}h1,h2,h3{line-height:var(--lh-tight);text-wrap:balance;margin:0}h1{font-size:var(--fs-3xl);letter-spacing:-.03em;font-weight:700}h2{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:650}h3{font-size:var(--fs-lg);font-weight:600}p{max-width:70ch;margin:0}a{color:var(--accent);text-underline-offset:.2em}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body>header{align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--page-pad);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}body>header .logo{align-items:center;gap:var(--sp-2);color:var(--ink);letter-spacing:-.02em;font-weight:700;text-decoration:none;display:inline-flex}body>header nav{gap:var(--sp-3);display:flex}body>header nav a{color:var(--ink-muted);text-decoration:none}body>header nav a[aria-current]{color:var(--ink);font-weight:600}.cal{gap:var(--sp-5);display:grid}.cal-legend{gap:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--ink-muted);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.cal-legend li{align-items:center;gap:var(--sp-2);display:flex}.cal-key{flex:none;width:1.5rem;height:1.5rem}.cal-grid{gap:var(--sp-6) .3rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:-.375rem;display:grid}@media (width>=40rem){.cal-grid{column-gap:var(--sp-5);grid-template-columns:repeat(3,minmax(0,1fr));margin-inline:0}}@media (width>=64rem){.cal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.cal-month h3{margin-bottom:var(--sp-2);font-size:var(--fs-md);text-transform:capitalize;font-weight:650}.cal-days{border-top:1px solid var(--line);padding-top:var(--sp-1);grid-template-columns:repeat(7,minmax(0,1fr));row-gap:1px;display:grid}.cal-wd{padding:var(--sp-1) 0;text-align:center;font-size:var(--fs-xs);color:var(--ink);font-weight:600}.cal-wd.is-weekend{color:var(--ink-muted);font-weight:500}.cal-day{min-height:var(--cell-min-h);color:var(--ink);font:inherit;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;cursor:default;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;margin:0;padding:0;line-height:1;display:grid;position:relative}button.cal-day{--cell-min-h:2.5rem;cursor:pointer}button.cal-day:focus-visible{outline-offset:-2px;border-radius:var(--radius-sm)}@media (hover:hover){button.cal-day:where(:not(.is-holiday,.is-tolerance,.is-bridge,.is-leave,.is-blocked)):hover:before{background:var(--surface);outline:1px solid var(--line)}}.cal-day.is-weekend{color:var(--ink-muted)}.cal-day:before{content:"";width:min(calc(100% - 2px), calc(var(--cell-min-h) - 4px), 2rem);aspect-ratio:1;box-sizing:border-box;z-index:-1;position:absolute;inset:50% auto auto 50%;translate:-50% -50%}.cal-day.cal-key:before{width:100%}.cal-day{isolation:isolate}.cal-day.is-rest{background:linear-gradient(var(--rest-band), var(--rest-band)) center / 100% 75% no-repeat}.cal-day.is-holiday:not(.is-tolerance){color:var(--on-holiday);font-weight:700}.cal-day.is-holiday:not(.is-tolerance):before{background:var(--holiday);border-radius:50%}.cal-day.is-tolerance{font-weight:600}.cal-day.is-tolerance:before{border:2px dotted var(--holiday);border-radius:50%}.cal-day.is-bridge:before{border:2px dashed var(--bridge);border-radius:var(--radius-sm)}.cal-day.is-bridge{font-weight:700}.cal-day.is-leave{color:var(--on-accent);font-weight:700}.cal-day.is-leave:before{background:var(--accent);border-radius:var(--radius-sm);border:0}.cal-day.is-fixed:before{width:min(calc(100% - 8px), calc(var(--cell-min-h) - 8px), 1.75rem);box-shadow:0 0 0 1px var(--bg), 0 0 0 2.5px var(--accent)}.cal-day.is-blocked{color:var(--ink);font-weight:500}.cal-day.is-blocked:before{background:repeating-linear-gradient(135deg, var(--blocked) 0 1px, transparent 1px 5px);border:1.5px solid var(--blocked);border-radius:var(--radius-sm);opacity:.4}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (forced-colors:active){.cal-day.is-holiday:not(.is-tolerance):before{background:0 0;border:2px solid canvastext}.cal-day.is-leave:before{background:0 0;border:3px solid highlight}.cal-day.is-fixed:before{outline-offset:2px;outline:2px solid highlight}.cal-day.is-rest{background:linear-gradient(graytext,graytext) 50%/100% 2px no-repeat}.cal-day.is-blocked:before{opacity:1;background:0 0;border:2px dashed graytext}}.logo-mark{flex:none;width:1.5em;height:1.5em}.logo-mark .lm-sheet{fill:var(--bg);stroke:var(--ink);stroke-width:4px}.logo-mark .lm-top{fill:var(--ink)}.logo-mark .lm-rest{fill:var(--rest-band)}.logo-mark .lm-holiday{fill:var(--holiday)}.logo-mark .lm-leave{fill:var(--accent)}body>footer{gap:var(--sp-4);padding:var(--sp-6) var(--page-pad);margin-top:var(--sp-7);border-top:1px solid var(--line);color:var(--ink-muted);flex-wrap:wrap;font-size:.875rem;display:flex}body>footer a{color:var(--ink-muted)}.prose{max-width:42rem;padding:var(--sp-6) var(--page-pad) 0;line-height:1.6}.prose h2{margin-top:var(--sp-6);font-size:1.125rem}
