/* Personal notebook: chriswiki's Charter/system typography and neutral tokens.
   Design variance 4, motion intensity 1, visual density 4. Native HTML/CSS. */
:root{color-scheme:light dark;--bg:oklch(.98 .008 80);--fg:oklch(.22 .01 260);--muted:oklch(.45 .01 260);--line:oklch(.87 .008 80);--surface:oklch(.94 .008 80);--focus:oklch(.42 .06 250);--radius:8px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;background:var(--bg);color:var(--fg)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}[hidden]{display:none!important}.shell{max-width:1120px;padding:0 48px;margin:auto}header{min-height:96px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-weight:650;letter-spacing:-.025em}.brand span{font-weight:400;color:var(--muted)}nav{display:flex;align-items:center;gap:26px;font-size:.875rem}nav a{text-decoration:none;padding:12px 0}nav [aria-current]{text-decoration:underline}main{min-height:65vh}h1,h2,h3{font-family:Charter,"Bitstream Charter",Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.13;margin:0}h1{font-size:clamp(2.8rem,5vw,4.75rem);max-width:850px}h2{font-size:1.85rem}h3{font-size:1.85rem}p{margin:16px 0;max-width:65ch}.intro{padding:64px 0 60px}.intro>p:last-child,.recipe-heading>p:not(.eyebrow):not(.meta),.shopping-heading>p:last-child{font-size:1.1rem;color:var(--muted);max-width:50ch}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 20px;color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px}.section-title span,.meta,.small{color:var(--muted);font-size:.85rem}.recipe-index{display:grid;grid-template-columns:1fr 1fr;gap:60px}.recipe-index article{padding:22px 0 32px}.recipe-index h3 a{text-decoration:none}.recipe-index h3 a:hover{text-decoration:underline}.recipe-index h3 span{font-family:system-ui;font-size:1.3rem}.recipe-index article>p:not(.meta){color:var(--muted);max-width:38ch}.text-link{font-size:.9rem}.shopping-callout{margin:26px 0 54px;padding:28px 30px;background:var(--surface);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:24px}.shopping-callout h2{font-size:1.6rem}.shopping-callout p{margin:10px 0 0;color:var(--muted)}.button,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid var(--fg);border-radius:var(--radius);font-size:.875rem;font-weight:550;text-decoration:none;white-space:nowrap;cursor:pointer;line-height:1.4}.button{background:var(--fg);color:var(--bg)}.secondary{background:transparent;color:var(--fg);border-color:var(--line)}.button:hover,.secondary:hover{opacity:.85;text-decoration:none}.button:active,.secondary:active{transform:translateY(1px)}.archive{padding-bottom:32px}.archive h2{font-size:1.4rem}.archive p{color:var(--muted);font-size:.9rem}.archive>div{display:flex;flex-wrap:wrap;gap:12px 30px;font-size:.9rem}footer{border-top:1px solid var(--line);margin-top:44px;padding:25px 0 32px;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;color:var(--muted)}.back{display:inline-block;margin-top:32px;font-size:.85rem;text-decoration:none;padding:8px 0}.recipe-heading,.shopping-heading{padding:30px 0 40px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:24px}.actions>a:not(.button){font-size:.85rem}.recipe-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:70px;border-top:1px solid var(--line);padding-top:36px}.recipe-body h2{font-size:1.65rem}.ingredients,.shopping-items{list-style:none;padding:0;margin:22px 0}.ingredients li{margin:0 0 4px}.ingredients label{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer}.ingredients strong{font-weight:600}.ingredients label:has(input:checked) span,.shopping-item label:has(input:checked) .item-copy{color:var(--muted);text-decoration:line-through}input[type=checkbox]{width:19px;height:19px;accent-color:var(--fg);flex-shrink:0;margin:4px 0;cursor:pointer}.steps{padding-left:26px;margin:26px 0 30px}.steps li{padding-left:9px;margin-bottom:22px}.steps li::marker{font-family:Georgia,serif;font-size:1.25rem}.notes{border-top:1px solid var(--line);padding-top:24px;margin-top:28px}.notes h3{font-size:1.35rem}.notes p{font-size:.92rem}.nutrition{border-top:1px solid var(--line);padding-top:20px}.shop-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;align-items:start}.shop-summary{position:sticky;top:24px;background:var(--surface);padding:25px;border-radius:var(--radius)}.shop-summary h2{font-family:inherit;font-weight:550;font-size:1rem}.total{font-family:Charter,Georgia,serif;font-size:3.2rem;letter-spacing:-.04em;line-height:1.1;margin:14px 0}.budget-toggle{display:flex;gap:10px;align-items:center;font-size:.9rem;font-weight:600;margin-top:22px;cursor:pointer}.summary-actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}.shopping-items{margin:0}.shopping-item{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:10px 24px;padding:23px 0;border-bottom:1px solid var(--line)}.shopping-item:first-child{padding-top:0}.shopping-item label{display:flex;gap:12px;cursor:pointer;align-items:flex-start}.item-copy{display:flex;flex-direction:column;gap:5px}.item-copy strong{font-weight:550}.item-copy>span{font-size:.85rem;color:var(--muted)}.purchase{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:.85rem}.price{font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:600}.item-note{grid-column:1/-1;margin:0 0 0 31px;font-size:.8rem;color:var(--muted)}.store-notes{border-top:1px solid var(--line);padding-top:34px;margin-top:52px;max-width:780px}.store-notes h2{font-size:1.65rem}.store-notes p{font-size:.94rem}.skip{position:absolute;top:-100px;left:20px;padding:12px 20px;background:var(--fg);color:var(--bg);z-index:2}.skip:focus{top:12px}
@media(prefers-color-scheme:dark){:root{--bg:oklch(.18 .008 260);--fg:oklch(.92 .008 80);--muted:oklch(.73 .008 80);--line:oklch(.35 .008 260);--surface:oklch(.23 .008 260);--focus:oklch(.76 .06 250)}}
@media(max-width:900px){.shell{padding:0 28px}.shop-layout{grid-template-columns:220px minmax(0,1fr);gap:32px}.shopping-item{grid-template-columns:1fr}.purchase{margin-left:31px;display:grid;grid-template-columns:1fr auto;width:calc(100% - 31px)}.purchase .small{grid-column:1/-1}.recipe-body{gap:40px}.recipe-index{gap:36px}}
@media(max-width:640px){.shell{padding:0 20px}header{align-items:flex-start;flex-direction:column;gap:2px;padding:24px 0 12px}nav{width:100%;justify-content:space-between;gap:16px}.intro{padding:44px 0 38px}h1{font-size:2.85rem}.recipe-index,.recipe-body,.shop-layout{grid-template-columns:1fr}.recipe-index{gap:0}.recipe-index article+article{border-top:1px solid var(--line)}.recipe-index h3{font-size:1.8rem}.shopping-callout{align-items:flex-start;flex-direction:column;padding:24px}.shopping-callout .button{width:100%}.shop-summary{position:static}.recipe-heading,.shopping-heading{padding:24px 0 30px}.recipe-body{gap:28px}.actions{gap:12px}.actions>a:last-child{flex-basis:100%;padding:8px 0}.shopping-heading .eyebrow{font-size:.65rem;letter-spacing:.05em}.section-title h2{font-size:1.6rem}.summary-actions{flex-direction:row}.summary-actions button{flex:1}.shop-summary>p{max-width:none}.shop-summary .total{font-size:2.6rem}.shopping-item{padding:22px 0}.archive>div{flex-direction:column}footer{font-size:.75rem;flex-wrap:wrap}}
@media print{:root{--bg:white;--fg:black;--muted:#444;--line:#bbb;--surface:white;color-scheme:light}body{font-size:11pt}.shell{max-width:none;padding:0}header,footer,.back,.actions,.summary-actions,.budget-toggle,.skip{display:none!important}h1{font-size:28pt}.eyebrow{margin-top:0}.recipe-heading,.shopping-heading{padding:0 0 18px}.recipe-body{gap:30px}.shop-layout{display:block}.shop-summary{position:static;border:1px solid var(--line);margin-bottom:20px;padding:15px}.shop-summary .total{font-size:24pt}.shopping-item{break-inside:avoid;grid-template-columns:1fr 1fr;padding:12px 0}.shopping-item label:has(input:checked) .item-copy{text-decoration:line-through}a{text-decoration:none}.steps li{break-inside:avoid}.store-notes{margin-top:24px}.purchase{margin-left:0;width:auto}}
