@font-face{font-family:Young Serif;font-style:normal;font-display:swap;font-weight:400;src:url(./young-serif-latin-400-normal.DIMmNPI9.woff2)format("woff2"),url(./young-serif-latin-400-normal.D1tz0Z9s.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-normal.BrHNak5F.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-normal.BbWidj28.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-700-normal.GZI4o3u0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-700-normal.BK6Glc0m.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:italic;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-italic.D-qjh7ci.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-italic.OoEIrRJc.woff)format("woff")}:root{--plum-950:oklch(22% .06 340);--plum-900:oklch(29% .09 340);--plum-800:oklch(36% .12 340);--plum-700:oklch(44% .15 340);--plum-600:oklch(52% .16 340);--plum-300:oklch(80% .07 340);--plum-200:oklch(89% .04 340);--plum-100:oklch(94% .02 340);--plum-50:oklch(97.5% .008 340);--bg:oklch(99% .003 340);--surface:oklch(100% 0 0);--ink:oklch(24% .03 340);--ink-2:oklch(40% .03 340);--line:oklch(87% .015 340);--saffron:oklch(83% .15 80);--saffron-ink:oklch(45% .1 70);--teal:oklch(50% .09 190);--danger:oklch(50% .18 25);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--r:10px;--display:"Young Serif", Georgia, serif;--body:"Atkinson Hyperlegible", system-ui, sans-serif;--ease:cubic-bezier(.22,1,.36,1);--aida:radial-gradient(circle at 50% 50%, var(--plum-200) 1.1px, transparent 1.3px) 0 0 / 10px 10px}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--body);margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%}h1,h2,h3{font-family:var(--display);text-wrap:balance;color:var(--plum-900);margin:0 0 var(--s4);letter-spacing:-.01em;font-weight:400;line-height:1.15}h1{font-size:clamp(2.1rem,1.4rem + 3vw,3.6rem)}h2{margin-top:var(--s7);font-size:clamp(1.55rem,1.2rem + 1.4vw,2.2rem)}h3{margin-top:var(--s5);font-size:1.25rem}p{margin:0 0 var(--s4);text-wrap:pretty}a{color:var(--plum-700);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--plum-900);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--saffron-ink);outline-offset:2px;border-radius:4px}.num{font-variant-numeric:tabular-nums}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--s4);top:var(--s4);background:var(--surface);padding:var(--s3);z-index:99}.wrap{width:min(1160px,100% - 2 * var(--s5));margin-inline:auto}.prose{max-width:68ch}.prose li{margin-bottom:var(--s2)}.lede{color:var(--ink-2);max-width:60ch;font-size:1.2rem}.site-head{background:var(--plum-900);color:var(--plum-50);z-index:20;position:sticky;top:0}.site-head .wrap{justify-content:space-between;gap:var(--s4);min-height:60px}.brand,.site-head .wrap{align-items:center;display:flex}.brand{gap:var(--s2);color:var(--plum-50);font-family:var(--display);min-height:44px;font-size:1.3rem;text-decoration:none}.brand:hover{color:#fff}.brand svg{width:28px;height:28px}.nav{gap:var(--s1);display:flex}.nav,.nav a{align-items:center}.nav a{color:var(--plum-100);padding:var(--s2) var(--s3);border-radius:999px;min-height:44px;text-decoration:none;display:inline-flex}.nav a.router-link-exact-active,.nav a:hover{background:var(--plum-800);color:#fff}.menu-btn{color:var(--plum-50);border:1px solid var(--plum-700);padding:0 var(--s4);min-height:44px;font:inherit;cursor:pointer;background:0 0;border-radius:999px}.menu-btn:hover{background:var(--plum-800)}.menu-panel{display:none}.menu-panel.open{background:var(--plum-950);border-top:1px solid var(--plum-800);display:block}.menu-panel .wrap{gap:var(--s1) var(--s5);padding-block:var(--s5);grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));display:grid}.menu-panel h4{font-family:var(--display);color:var(--saffron);margin:var(--s2) 0;font-size:1.05rem;font-weight:400}.menu-panel a{min-height:44px;color:var(--plum-100);align-items:center;text-decoration:none;display:flex}.menu-panel a:hover{color:#fff;text-decoration:underline}@media (width<=760px){.nav .hide-sm{display:none}}.site-foot{margin-top:var(--s9);background:var(--plum-950);color:var(--plum-200);padding-block:var(--s7) var(--s6)}.site-foot a{color:var(--plum-100)}.site-foot .cols{gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));display:grid}.site-foot ul{margin:0;padding:0;list-style:none}.site-foot li a{align-items:center;min-height:36px;display:inline-flex}.site-foot h4{font-family:var(--display);color:var(--saffron);margin:0 0 var(--s2);font-weight:400}.site-foot small{margin-top:var(--s6);color:var(--plum-300);display:block}.hero{padding-block:var(--s7) var(--s6)}.crumbs{margin-bottom:var(--s3);font-size:.95rem}.crumbs,.crumbs a{color:var(--ink-2)}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s5);border:2px solid var(--plum-700);background:var(--plum-700);color:#fff;font:inherit;cursor:pointer;transition:background .15s var(--ease),transform .1s var(--ease);border-radius:999px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--plum-800);border-color:var(--plum-800);color:#fff}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;pointer-events:none}.btn.ghost{color:var(--plum-800);background:0 0}.btn.ghost:hover{background:var(--plum-100)}.btn.small{min-height:44px;padding:0 var(--s4);font-size:.95rem}label{margin-bottom:var(--s1);color:var(--plum-900);font-weight:700;display:block}.hint{color:var(--ink-2);font-size:.92rem;font-weight:400}input[type=date],input[type=number],input[type=text],select,textarea{width:100%;min-height:44px;padding:var(--s2) var(--s3);border:1.5px solid var(--line);background:var(--surface);font:inherit;color:var(--ink);border-radius:8px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--plum-700);outline:3px solid var(--plum-200);outline-offset:0}textarea{resize:vertical;min-height:88px}input[type=range]{width:100%;accent-color:var(--plum-700);min-height:44px}.field{margin-bottom:var(--s4);min-width:0}.row{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));display:grid}.kit,.row>*{min-width:0}.kit{background:var(--surface);border:1.5px solid var(--line);padding:clamp(var(--s4),3vw,var(--s6));border-radius:14px}.kit.aida{background:var(--aida),var(--plum-50)}.kit h2:first-child,.kit h3:first-child{margin-top:0}.tint{background:var(--plum-100);padding:var(--s5);border-radius:14px}.note{padding:var(--s4);color:oklch(30% .05 70);background:oklch(96% .04 85);border-radius:10px}.split{gap:var(--s6);grid-template-columns:minmax(0,1fr);display:grid}.split>*{min-width:0}@media (width>=900px){.split{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}}.cell{border:1.5px dashed var(--plum-300);background:var(--surface);cursor:pointer;width:34px;height:34px;color:var(--plum-700);transition:background .15s var(--ease);border-radius:6px;place-items:center;padding:0;display:inline-grid}.cell:hover{background:var(--plum-50);border-color:var(--plum-600)}.cell.done{border-style:solid;border-color:var(--plum-700);background:var(--plum-700)}.cell.today{outline:2px solid var(--saffron-ink);outline-offset:2px}.cell svg{width:20px;height:20px}.cell.done svg path{stroke:var(--saffron)}@keyframes stitch{0%{stroke-dashoffset:30px}to{stroke-dashoffset:0}}.cell.done svg path{stroke-dasharray:30;animation:stitch .35s var(--ease) both}.cell.done svg path+path{animation-delay:.12s}.tbl-wrap{max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.98rem}td,th{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--plum-900);background:var(--plum-50);font-weight:700}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;min-height:44px;padding-block:var(--s3);color:var(--plum-900);align-items:center;font-weight:700;display:flex}.faq details p{padding-bottom:var(--s3)}.ai-out{white-space:pre-wrap;background:var(--surface);border:1.5px dashed var(--plum-300);padding:var(--s4);border-radius:10px;min-height:3em}.ai-err{color:var(--danger)}.skel{background:linear-gradient(90deg,var(--plum-100),var(--plum-50),var(--plum-100));height:1em;margin-bottom:var(--s2);background-size:200% 100%;border-radius:4px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.chips{gap:var(--s2);flex-wrap:wrap;display:flex}.chip{border:1.5px solid var(--plum-300);background:var(--surface);color:var(--plum-800);padding:0 var(--s4);min-height:44px;font:inherit;cursor:pointer;border-radius:999px}.chip[aria-pressed=true]{background:var(--plum-800);color:#fff;border-color:var(--plum-800)}.chip:hover{border-color:var(--plum-700)}.tools-list{gap:var(--s3) var(--s5);grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));padding:0;list-style:none;display:grid}.tools-list a{padding:var(--s3) 0;border-top:1.5px dashed var(--plum-300);text-decoration:none;display:block}.tools-list a strong{font-family:var(--display);color:var(--plum-800);font-size:1.15rem;font-weight:400;display:block}.tools-list a span{color:var(--ink-2);font-size:.95rem}.tools-list a:hover strong{text-decoration:underline}.sources{color:var(--ink-2);font-size:.95rem}@media print{.no-print,.site-foot,.site-head{display:none!important}body{background:#fff}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bundle strong,.formula em,.plan strong,.recipe-card strong,.stack-line strong{color:var(--plum-600);-webkit-text-decoration:underline dashed var(--plum-300);-webkit-text-decoration:underline dashed var(--plum-300);text-decoration:underline dashed var(--plum-300);text-underline-offset:5px;font-weight:400;text-decoration-thickness:1.5px}
