:root{--paper:#f5f0e6;--surface:#fff;--surface-code:#fffdf7;--ink:#2d2d2d;--ink-muted:#5e5e5e;--line:#2d2d2d;--on-fill:#2d2d2d;--fill-white:#fff;--accent:#e85d4e;--coral:#f8635f;--butter:#fde68a;--turquoise:#7ecdc0;--pink:#f7c8d4;--mint:#a8e6cf;--lavender:#d4a5e8;--sky:#a8d8f0;--peach:#ffcba4;--newsprint:#ede6d6;--focus:#1f4fd6;--syntax-string:#b23a2c;--syntax-comment:#6b6b6b;--shadow-sm:3px 3px 0 var(--line);--shadow-md:4px 4px 0 var(--line);--shadow-lg:6px 6px 0 var(--line);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:36px;--space-7:48px;--space-8:80px;--space-9:128px;--radius-md:20px;--radius-lg:28px;--radius-pill:50px;--radius-round:50%;--stroke:3px;--stroke-thin:2px;--size-tap:44px;--size-tap-lg:52px;--size-measure:660px;--size-sheet:840px;--size-page:1200px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1f1d1a;--surface:#2a2723;--surface-code:#24221f;--ink:#f5f0e6;--ink-muted:#b9b1a3;--line:#ede6d6;--accent:#ff8a7a;--focus:#8fb0ff;--syntax-string:#ff9e8f;--syntax-comment:#9c9486;color-scheme:dark}}:root[data-theme=dark]{--paper:#1f1d1a;--surface:#2a2723;--surface-code:#24221f;--ink:#f5f0e6;--ink-muted:#b9b1a3;--line:#ede6d6;--accent:#ff8a7a;--focus:#8fb0ff;--syntax-string:#ff9e8f;--syntax-comment:#9c9486;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0;font-size:18px;font-weight:500;line-height:1.75;overflow-x:hidden}a{color:var(--ink);text-underline-offset:4px;text-decoration-thickness:2px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;font-weight:700;line-height:1.1}img{max-width:100%;height:auto}code,pre{font-family:var(--font-mono);font-variant-ligatures:none;font-feature-settings:"calt" 0, "liga" 0}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.cb-page{width:100%;max-width:var(--size-page);padding-left:max(var(--space-4), env(safe-area-inset-left,0px), 4vw);padding-right:max(var(--space-4), env(safe-area-inset-right,0px), 4vw);margin:0 auto}@media (width>=1300px){.cb-page{padding-left:48px;padding-right:48px}}main.cb-page{padding-bottom:var(--space-8)}.muted{color:var(--ink-muted)}.cb-fill-butter{background:var(--butter);color:var(--on-fill)}.cb-fill-turquoise{background:var(--turquoise);color:var(--on-fill)}.cb-fill-pink{background:var(--pink);color:var(--on-fill)}.cb-fill-mint{background:var(--mint);color:var(--on-fill)}.cb-fill-lavender{background:var(--lavender);color:var(--on-fill)}.cb-fill-sky{background:var(--sky);color:var(--on-fill)}.cb-fill-peach{background:var(--peach);color:var(--on-fill)}.cb-fill-coral{background:var(--coral);color:var(--on-fill)}.cb-fill-white{background:var(--fill-white);color:var(--on-fill)}.cb-btn{align-items:center;gap:var(--space-2);min-height:var(--size-tap-lg);border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);background:var(--butter);color:var(--on-fill);box-shadow:var(--shadow-md);font-family:var(--font-ui);letter-spacing:.02em;cursor:pointer;padding:0 26px;font-size:17px;font-weight:600;line-height:1.2;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-flex}a.cb-btn:hover,button.cb-btn:hover{box-shadow:var(--shadow-lg);transform:translate(-1px,-1px)}a.cb-btn:active,button.cb-btn:active{box-shadow:none;transform:translate(4px,4px)}.cb-btn--coral{background:var(--coral)}.cb-btn--plain{background:var(--surface);color:var(--ink);box-shadow:none}.cb-tag{align-items:center;gap:var(--space-2);border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-ui);white-space:nowrap;padding:5px 14px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}a.cb-tag:hover{box-shadow:var(--shadow-sm)}.cb-tag--lg{min-height:var(--size-tap-lg);box-shadow:var(--shadow-md);padding:0 26px;font-size:18px}.cb-tag__count{opacity:.8;font-weight:500}.cb-tags{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cb-badge{border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);font-family:var(--font-ui);letter-spacing:.02em;white-space:nowrap;align-items:center;padding:10px 26px;font-size:17px;font-weight:600;line-height:1.2;display:inline-flex}.cb-highlight{border:var(--stroke-thin) solid var(--on-fill);border-radius:var(--radius-pill);background:var(--mint);color:var(--on-fill);white-space:nowrap;padding:1px 12px;font-weight:600}.cb-avatar{align-items:center;gap:var(--space-3);color:var(--ink);font-size:16px;font-weight:600;display:inline-flex}.cb-avatar__disc{border:var(--stroke) solid var(--line);border-radius:var(--radius-round);background:var(--peach);width:42px;height:42px;color:var(--on-fill);box-shadow:var(--shadow-sm);font-family:var(--font-ui);flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:600;line-height:1;display:flex}.cb-marker{border:var(--stroke) solid var(--line);border-radius:var(--radius-round);width:52px;height:52px;box-shadow:var(--shadow-sm);font-family:var(--font-ui);flex:none;justify-content:center;align-items:center;font-size:22px;font-weight:600;line-height:1;display:inline-flex}.cb-display{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);text-wrap:balance;margin:0;font-size:clamp(56px,9.6vw,140px);font-weight:800;line-height:.92}.cb-display--article{font-size:clamp(44px,6.6vw,86px);line-height:.98}.cb-display--page{font-size:clamp(44px,6vw,72px);line-height:1}.cb-display em{color:var(--accent);font-style:italic}.cb-lede{color:var(--ink);margin:0;font-size:20px;line-height:1.6}.cb-lede--muted{color:var(--ink-muted)}.cb-section-head{align-items:center;gap:var(--space-4) 20px;margin:0 0 var(--space-6);flex-wrap:wrap;display:flex}.cb-section-head h2{letter-spacing:-.02em;margin:0;font-size:clamp(32px,3.6vw,48px);line-height:1}.cb-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;margin:0;padding:0;list-style:none;display:grid}.cb-card{border:var(--stroke) solid var(--line);border-radius:var(--radius-md);background:var(--surface);height:100%;color:var(--ink);box-shadow:var(--shadow-lg);flex-direction:column;gap:18px;padding:28px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex}a.cb-card:hover{box-shadow:8px 8px 0 var(--line);transform:translate(-2px,-2px)}.cb-card__title{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:27px;font-weight:700;line-height:1.12}.cb-card__desc{color:var(--ink-muted);margin:0;font-size:16px;line-height:1.55}.cb-card__meta{font-family:var(--font-ui);color:var(--ink-muted);margin:auto 0 0;font-size:15px;font-weight:500;line-height:1.3}.cb-feature{border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);text-decoration:none;transition:transform .12s,box-shadow .12s;display:block;overflow:hidden}a.cb-feature:hover{box-shadow:8px 8px 0 var(--line);transform:translate(-2px,-2px)}.cb-feature__cap{padding:16px clamp(20px, 3vw, var(--space-6));border-bottom:var(--stroke) solid var(--line);background:var(--turquoise);color:var(--on-fill);font-family:var(--font-ui);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:16px;font-weight:600;line-height:1.2;display:flex}.cb-feature__date{border:var(--stroke-thin) solid var(--on-fill);border-radius:var(--radius-pill);background:var(--fill-white);color:var(--on-fill);padding:4px 14px;font-size:14px}.cb-feature__body{padding:clamp(24px, 4vw, var(--space-7)) clamp(20px, 3vw, var(--space-6));flex-wrap:wrap;align-items:flex-end;gap:28px 56px;display:flex}.cb-feature__text{flex:999 460px;min-width:0}.cb-feature__title{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(36px,4.4vw,58px);font-weight:700;line-height:1.04}.cb-feature__desc{max-width:580px;color:var(--ink-muted);margin:18px 0 0;font-size:18px;line-height:1.6}.cb-band{border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--pink);color:var(--on-fill);box-shadow:var(--shadow-lg);text-align:center;padding:clamp(40px,6vw,72px) clamp(20px,4vw,56px);position:relative}.cb-band h2{color:var(--on-fill);letter-spacing:-.02em;margin:0;font-size:clamp(34px,4vw,52px)}.cb-band a:not(.cb-tag){color:var(--on-fill);font-weight:700}.cb-band .cb-tags{justify-content:center}.cb-band p{margin:28px 0 0;font-size:17px}.cb-ornament{pointer-events:none;flex:none;display:block}.cb-ornament .o-line{stroke:var(--on-fill)}.cb-ornament .o-ground{stroke:var(--line)}.cb-ornament .o-ink{fill:var(--on-fill)}.cb-ornament .o-white{fill:var(--fill-white)}.cb-ornament .o-butter{fill:var(--butter)}.cb-ornament .o-coral{fill:var(--coral)}.cb-ornament .o-mint{fill:var(--mint)}.cb-ornament .o-sky{fill:var(--sky)}.cb-ornament .o-lavender{fill:var(--lavender)}.cb-ornament .o-peach{fill:var(--peach)}.cb-ornament .o-turquoise{fill:var(--turquoise)}.cb-ornament .o-stroke-lavender{stroke:var(--lavender)}.cb-ornament .o-pea,.cb-ornament .o-node,.cb-ornaments .o-commit{transform-box:fill-box;transform-origin:50%}.cb-ornaments .o-pea{animation:cb-pea 2.4s ease-in-out calc(var(--k,0) * .25s) infinite}.cb-ornaments .o-node{animation:cb-node 3s ease-in-out calc(var(--k,0) * 1s) infinite}.cb-ornaments .o-led{animation:2.2s step-end infinite cb-led}.cb-ornaments .o-cursor{animation:1.1s step-end infinite cb-cursor}.cb-ornaments .o-commit{animation:2.6s ease-in-out infinite cb-commit}.cb-ornaments .o-blink{animation:cb-blink 1.8s steps(1, end) calc(var(--k,0) * .3s) infinite}.cb-ornaments .o-write{stroke-dasharray:30;animation:cb-write 6s ease-in-out calc(var(--k,0) * .35s) infinite}@keyframes cb-pea{0%,60%,to{transform:none}30%{transform:translateY(-2px)scale(1.08)}}@keyframes cb-node{0%,50%,to{transform:none}20%{transform:scale(1.22)}}@keyframes cb-led{0%,to{opacity:1}50%{opacity:.25}}@keyframes cb-cursor{0%,to{opacity:1}50%{opacity:0}}@keyframes cb-commit{0%,55%,to{transform:none}25%{transform:translateY(-4px)}40%{transform:translateY(1px)}}@keyframes cb-blink{0%,to{opacity:1}33%{opacity:.2}66%{opacity:1}}@keyframes cb-write{0%{stroke-dashoffset:30px}25%,80%{stroke-dashoffset:0}to{stroke-dashoffset:30px}}.cb-ornaments{pointer-events:none;z-index:0;position:absolute;inset:0}.cb-ornaments>*{position:absolute}.cb-ornaments .cb-ornament,.cb-ornaments .cb-float{transform:rotate(var(--r,0deg));will-change:transform;animation:cb-pop .7s ease-out calc(var(--i,0) * 90ms + .15s) backwards, cb-bob var(--t,6s) ease-in-out var(--d,0s) infinite alternate}.cb-ornaments .cb-float{display:inline-block}.cb-parallax{will-change:translate;display:block}@keyframes cb-pop{0%{opacity:.6;scale:.85}60%{opacity:1;scale:1.08}to{opacity:1;scale:1}}@keyframes cb-bob{0%{transform:translateY(0) rotate(var(--r,0deg))}to{transform:translateY(-12px) rotate(calc(var(--r,0deg) + 7deg))}}.cb-shake{animation:6s ease-in-out 1.5s infinite cb-shake;display:inline-block}@keyframes cb-shake{0%,88%,to{transform:none}90%{transform:translate(-3px)rotate(-3deg)}92%{transform:translate(3px)rotate(2deg)}94%{transform:translate(-2px)rotate(-2deg)}96%{transform:translate(2px)rotate(1deg)}}.cb-float{border:var(--stroke) solid var(--on-fill);border-radius:var(--radius-pill);color:var(--on-fill);font-family:var(--font-ui);padding:6px 16px;font-size:14px;font-weight:600;line-height:1.2}@media (width<=760px){.cb-ornaments{display:none}}.cb-sheet{max-width:var(--size-sheet);border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);margin:0 auto;padding:clamp(28px,5vw,64px) clamp(20px,5vw,64px)}.cb-prose{max-width:var(--size-measure);color:var(--ink);margin:0 auto;font-size:18px;line-height:1.75}.cb-prose>:first-child{margin-top:0}.cb-prose>:last-child{margin-bottom:0}.cb-prose>p:first-child{font-size:20px}.cb-prose p{margin:0 0 1.2em}.cb-prose h2{margin:1.9em 0 .5em;font-size:36px}.cb-prose h3{margin:1.6em 0 .4em;font-size:27px;line-height:1.12}.cb-prose strong{font-weight:700}.cb-prose hr{border:0;border-top:var(--stroke) dashed var(--line);margin:2.4em 0}.cb-prose :not(pre)>code{border:var(--stroke-thin) solid var(--line);background:var(--surface-code);border-radius:8px;padding:.1em .4em;font-size:.88em}.cb-prose ul{flex-direction:column;gap:10px;margin:0 0 1.2em;padding:0;list-style:none;display:flex}.cb-prose ul>li{padding-left:32px;position:relative}.cb-prose ul>li:before{content:"";border:var(--stroke-thin) solid var(--line);border-radius:var(--radius-round);background:var(--butter);width:18px;height:18px;position:absolute;top:.4em;left:0}.cb-prose ol{margin:0 0 1.2em;padding-left:1.4em}.cb-prose ol>li::marker{font-family:var(--font-ui);font-weight:600}.cb-prose blockquote,.cb-quote{border:var(--stroke) solid var(--line);border-radius:var(--radius-lg);background:var(--pink);color:var(--on-fill);box-shadow:var(--shadow-lg);font-family:var(--font-display);letter-spacing:-.01em;text-align:center;text-wrap:balance;margin:1.8em 0;padding:28px 28px 30px;font-size:clamp(24px,3vw,32px);font-weight:700;line-height:1.3}.cb-prose blockquote p{margin:0}.cb-prose blockquote a{color:var(--on-fill)}.cb-quote .cb-highlight,.cb-prose blockquote .cb-highlight{border-width:var(--stroke);background:var(--fill-white);padding:0 14px;font-weight:700}.cb-prose table{border-collapse:collapse;width:100%;margin:1.5em 0;font-size:16px;display:block;overflow-x:auto}.cb-prose th,.cb-prose td{text-align:left;border-bottom:var(--stroke-thin) solid var(--line);padding:.5em .75em}.cb-prose th{font-family:var(--font-ui);font-weight:600}.cb-prose pre,.cb-code pre{border:var(--stroke) solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin:1.8em 0;padding:20px 18px;font-size:14px;line-height:1.7;overflow-x:auto}.cb-prose pre code{font-size:inherit}.astro-code,.astro-code span{background-color:var(--surface-code)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important}.cb-prose img{border:var(--stroke) solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.cb-ornaments .cb-ornament,.cb-ornaments .cb-float,.cb-ornament *,.cb-shake{animation:none}.cb-btn,.cb-card,.cb-feature{transition:none}a.cb-btn:hover,a.cb-btn:active,button.cb-btn:hover,button.cb-btn:active,a.cb-card:hover,a.cb-feature:hover{transform:none}}.cb-footer[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-3) 32px;border-top:var(--stroke) dashed var(--line);color:var(--ink-muted);flex-wrap:wrap;padding:28px 0 48px;font-size:15px;line-height:1.5;display:flex}p[data-astro-cid-jo6i4kqk]{margin:0}.links[data-astro-cid-jo6i4kqk]{gap:var(--space-5);font-family:var(--font-ui);font-weight:600;display:flex}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink);text-decoration:none}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{text-decoration:underline}.cb-header[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);padding:var(--space-5) 0;flex-wrap:wrap;display:flex}.cb-brand[data-astro-cid-nen7h5rs]{width:var(--size-tap-lg);height:var(--size-tap-lg);border:var(--stroke) solid var(--line);border-radius:var(--radius-round);background:var(--surface);box-shadow:var(--shadow-md);justify-content:center;align-items:center;transition:transform .12s,box-shadow .12s;display:inline-flex}.cb-brand[data-astro-cid-nen7h5rs]:hover{box-shadow:var(--shadow-lg);transform:translate(-1px,-1px)}@media (prefers-reduced-motion:reduce){.cb-brand[data-astro-cid-nen7h5rs]{transition:none}.cb-brand[data-astro-cid-nen7h5rs]:hover{transform:none}}.cb-nav[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cb-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs],.cb-nav[data-astro-cid-nen7h5rs] button[data-astro-cid-nen7h5rs]{min-height:var(--size-tap);border:var(--stroke) solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font-family:var(--font-ui);letter-spacing:.02em;cursor:pointer;justify-content:center;align-items:center;padding:0 18px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.cb-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.cb-nav[data-astro-cid-nen7h5rs] button[data-astro-cid-nen7h5rs]:hover{box-shadow:var(--shadow-sm)}.cb-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--butter);color:var(--on-fill);box-shadow:var(--shadow-md)}.cb-nav[data-astro-cid-nen7h5rs] .cb-theme[data-astro-cid-nen7h5rs]{width:var(--size-tap);border-radius:var(--radius-round);padding:0}
