body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans)}.hero{max-width:1100px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2.5rem) 0;display:flex;align-items:baseline;justify-content:space-between}.hero-back{margin:0;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-muted)}.hero-back a{color:var(--color-ink);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--color-ink) 30%,transparent)}.hero-back a:hover{border-bottom-color:var(--color-accent)}.canvas{max-width:1100px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2.5rem) 4rem}.dateline{margin:0 0 2rem;text-align:center}.kicker{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--color-ink-muted);margin:0 0 .5rem;display:inline-flex;gap:.5rem}.kicker>span:first-child{color:var(--color-accent);font-size:1rem}.masthead{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.2rem,7vw,4rem);line-height:1.05;letter-spacing:-.02em;color:var(--color-ink);margin:0}.masthead .weekday{font-style:normal;color:var(--color-ink-muted)}.masthead em{font-style:italic;color:var(--color-accent);font-weight:500}.masthead .year{font-style:normal}.strip{margin:.9rem auto 0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);line-height:1.8;max-width:60ch}.strip b{color:var(--color-ink);font-weight:600}.strip .dot{color:var(--color-ink-faint);padding:0 .35em}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:0 0 2rem}.stat{background:var(--color-paper, #faf5ec);border:1px solid var(--color-border);border-radius:6px;padding:1rem 1rem .9rem;min-height:100px;display:flex;flex-direction:column;justify-content:space-between}.stat-label{margin:0 0 .4rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:#5e5e5e}.stat-val{margin:0;font-size:1.6rem;line-height:1;color:var(--color-ink)}.stat-val.serif{font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:1.5rem}.stat-val.mono{font-family:var(--font-mono)}.stat-suf{font-size:.85rem;color:var(--color-ink-muted);margin-left:.2em}.stat-sub{margin:.35rem 0 0;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-muted)}@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}.block{margin:0 0 2.5rem}.block-h{font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:1.4rem;color:var(--color-ink);margin:0 0 .8rem}.block-h:before{content:"❧";color:var(--color-accent);margin-right:.4em;font-style:normal}.block-sub{margin:-.4rem 0 1rem;color:var(--color-ink-muted);font-size:.9rem}.block-sub a,.block-foot a{color:var(--color-ink);border-bottom:1px dotted var(--color-ink-muted);text-decoration:none}.block-sub a:hover,.block-foot a:hover{border-bottom-color:var(--color-accent)}.block-foot{margin:.8rem 0 0;font-size:.85rem;color:var(--color-ink-muted)}.empty{padding:1rem;background:var(--color-paper, #faf5ec);border-radius:6px;color:var(--color-ink-muted);margin:0}.year-bar{position:relative;height:14px;background:var(--color-paper, #faf5ec);border:1px solid var(--color-border);border-radius:7px;overflow:hidden}.year-bar-fill{height:100%;background:color-mix(in srgb,var(--color-accent) 30%,transparent)}.year-bar-marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--color-accent);transform:translate(-1px)}.year-ticks{margin:.45rem 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(12,1fr);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;color:var(--color-ink-muted);text-align:center}.year-bar-foot{margin:.6rem 0 0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);text-align:center}.year-bar-foot b{color:var(--color-ink);font-weight:600}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--color-border);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.month-dow{background:var(--color-paper, #faf5ec);padding:.45rem 0;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-muted);text-align:center}.month-cell{position:relative;background:var(--color-bg);aspect-ratio:1.1 / 1;padding:.35rem .45rem;display:flex;flex-direction:column;justify-content:flex-start}.month-cell-day{font-family:var(--font-mono);font-size:.85rem;color:var(--color-ink)}.month-cell--out .month-cell-day{color:var(--color-ink-faint)}.month-cell--weekend{background:color-mix(in srgb,var(--color-paper, #faf5ec) 70%,transparent)}.month-cell--today{background:var(--color-accent)}.month-cell--today .month-cell-day{color:var(--color-bg);font-weight:700}.month-cell-dot{position:absolute;bottom:.35rem;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.month-cell--today .month-cell-dot{background:var(--color-bg)}.month-foot{margin:.6rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted)}.legend{display:inline-flex;align-items:center;gap:.4em}.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid var(--color-border)}.legend-swatch--today{background:var(--color-accent);border-color:var(--color-accent)}.legend-swatch--holiday{background:var(--color-bg);position:relative}.legend-swatch--holiday:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-accent)}.legend-muted{opacity:.7}@media(min-width:700px){.month-cell{padding:.5rem .7rem}.month-cell-day{font-size:.95rem}}.cal-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:.5rem}.cal-card{background:var(--color-paper, #faf5ec);border:1px solid var(--color-border);border-radius:6px;padding:.85rem 1rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.cal-label{margin:0;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-muted);flex-shrink:0}.cal-val{margin:0;font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:1.05rem;color:var(--color-ink);text-align:right}@media(min-width:600px){.cal-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.cal-grid{grid-template-columns:repeat(3,1fr)}}.holiday-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.holiday-row{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem 1rem;align-items:baseline;padding:.7rem .9rem;background:var(--color-paper, #faf5ec);border:1px solid var(--color-border);border-radius:6px}.holiday-date{display:flex;flex-direction:column;align-items:flex-start;min-width:4.5rem}.holiday-date b{font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:1.05rem;color:var(--color-ink)}.holiday-dow{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-muted);margin-top:.1rem}.holiday-name{font-size:.95rem;color:var(--color-ink)}.holiday-when{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);text-align:right}
