.social-links[data-astro-cid-zamss57n]{display:flex;gap:.75rem}.social-links[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--outline-variant, var(--rule));color:var(--on-surface-variant, var(--ink-muted));transition:color .15s ease,border-color .15s ease}.social-links[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]:hover{color:var(--primary);border-color:var(--primary)}@media(pointer:coarse){.social-links[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]{position:relative}.social-links[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);border-radius:50%}}.social-links-md[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]{width:2.5rem;height:2.5rem}.social-links-md[data-astro-cid-zamss57n] svg[data-astro-cid-zamss57n]{width:1.15rem;height:1.15rem}.social-links-sm[data-astro-cid-zamss57n] a[data-astro-cid-zamss57n]{width:2rem;height:2rem}.social-links-sm[data-astro-cid-zamss57n] svg[data-astro-cid-zamss57n]{width:1.05rem;height:1.05rem}.site-footer[data-astro-cid-sz7xmlte]{position:relative;width:100%;background:var(--surface-container-low);color:var(--on-surface-variant);font-family:var(--font-body);border-top:1px solid var(--outline-variant);margin-top:var(--space-2xl)}.footer-trace[data-astro-cid-sz7xmlte]{position:absolute;top:-7px;left:0;width:100%;height:14px;color:var(--sandy-gold)}.footer-inner[data-astro-cid-sz7xmlte]{max-width:1200px;margin:0 auto;padding:var(--space-xl) var(--gutter) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.footer-about[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-xs) var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--outline-variant)}.footer-brand[data-astro-cid-sz7xmlte]{font-family:var(--font-sans);font-weight:700;font-size:1.35rem;color:var(--primary);margin:0}.footer-brand[data-astro-cid-sz7xmlte] span[data-astro-cid-sz7xmlte]{font-weight:400;color:var(--on-surface-variant)}.footer-blurb[data-astro-cid-sz7xmlte]{font-size:var(--text-small);line-height:1.6;max-width:46ch;margin:0}.footer-cols[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}.footer-label[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin:0 0 var(--space-xs)}.footer-col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte],.footer-top[data-astro-cid-sz7xmlte]{font-size:var(--text-small);color:var(--on-surface-variant);text-decoration:none;text-underline-offset:.2em;transition:color .2s ease}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover,.footer-top[data-astro-cid-sz7xmlte]:hover{color:var(--secondary);text-decoration:underline;text-decoration-color:var(--sandy-gold)}.footer-bar[data-astro-cid-sz7xmlte]{max-width:1200px;margin:0 auto;padding:var(--space-sm) var(--gutter) var(--space-md);border-top:1px solid var(--outline-variant);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2xs) var(--space-md);font-size:var(--text-micro)}.footer-bar[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0}.footer-tagline[data-astro-cid-sz7xmlte]{font-style:italic;opacity:.8}.footer-top[data-astro-cid-sz7xmlte]{font-size:var(--text-micro)}@media(max-width:760px){.footer-cols[data-astro-cid-sz7xmlte]{gap:var(--space-sm)}.footer-bar[data-astro-cid-sz7xmlte]{flex-direction:column;align-items:flex-start}}.chapter-pager[data-astro-cid-2bkp6j4o]{width:100%;margin-top:var(--space-2xl);font-family:var(--font-body)}.chapter-pager-inner[data-astro-cid-2bkp6j4o]{max-width:1200px;margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.pager-btn[data-astro-cid-2bkp6j4o]{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.25rem;background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:10px;color:var(--on-surface);text-decoration:none;transition:border-color .2s ease,background-color .2s ease}.pager-btn[data-astro-cid-2bkp6j4o]:hover{border-color:var(--primary);background:var(--surface-container)}.pager-btn[data-astro-cid-2bkp6j4o]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.pager-btn-next[data-astro-cid-2bkp6j4o]{text-align:right;align-items:flex-end}.pager-dir[data-astro-cid-2bkp6j4o]{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant)}.pager-btn[data-astro-cid-2bkp6j4o] strong[data-astro-cid-2bkp6j4o]{font-family:var(--font-sans);font-size:1.02rem;line-height:1.35;color:var(--primary);overflow-wrap:anywhere}.pager-code[data-astro-cid-2bkp6j4o]{font-family:var(--font-mono);font-size:.8em;font-weight:500;color:var(--on-surface-variant)}.chapter-pager[data-astro-cid-2bkp6j4o]+.site-footer{margin-top:var(--space-xl)}@media(max-width:560px){.chapter-pager-inner[data-astro-cid-2bkp6j4o]{grid-template-columns:1fr}.pager-btn-next[data-astro-cid-2bkp6j4o]{text-align:left;align-items:flex-start}}.assignment-card[data-astro-cid-z4bti5hh]{width:100%;margin-top:var(--space-2xl);font-family:var(--font-body)}.assignment-card[data-astro-cid-z4bti5hh]+.chapter-pager{margin-top:var(--space-sm)}.assignment-inner[data-astro-cid-z4bti5hh]{margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-md);padding:1.25rem 1.5rem;background:linear-gradient(var(--surface-container-low),var(--surface-container-low)) padding-box,linear-gradient(120deg,var(--sandy-gold),var(--outline-variant) 45%) border-box;border:1px solid transparent;border-radius:12px;max-width:calc(1200px - 2 * var(--gutter));width:calc(100% - 2 * var(--gutter))}.assignment-icon[data-astro-cid-z4bti5hh]{width:44px;height:52px;color:var(--secondary);flex-shrink:0}.assignment-text[data-astro-cid-z4bti5hh]{min-width:0}.assignment-eyebrow[data-astro-cid-z4bti5hh]{margin:0;font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant)}.assignment-title[data-astro-cid-z4bti5hh]{margin:.2rem 0 0;font-family:var(--font-sans);font-size:1.15rem;line-height:1.3;color:var(--on-surface);overflow-wrap:anywhere}.assignment-code[data-astro-cid-z4bti5hh]{font-family:var(--font-mono);font-size:.8em;font-weight:500;color:var(--on-surface-variant);margin-right:.25em}.assignment-facts[data-astro-cid-z4bti5hh]{margin:.3rem 0 0;font-family:var(--font-mono);font-size:.8rem;color:var(--on-surface-variant)}.assignment-note[data-astro-cid-z4bti5hh]{margin:.35rem 0 0;font-size:.92rem;color:var(--on-surface-variant)}.assignment-actions[data-astro-cid-z4bti5hh]{display:flex;flex-direction:column;gap:.5rem}.assignment-btn[data-astro-cid-z4bti5hh]{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.55rem 1.1rem;border:1px solid var(--outline-variant);border-radius:999px;font-family:var(--font-sans);font-size:.92rem;font-weight:600;color:var(--primary);background:var(--surface);text-decoration:none;white-space:nowrap;transition:border-color .2s ease,background-color .2s ease}.assignment-btn[data-astro-cid-z4bti5hh]:hover{border-color:var(--primary)}.assignment-btn-primary[data-astro-cid-z4bti5hh]{background:var(--primary);border-color:var(--primary);color:var(--paper)}.assignment-btn-primary[data-astro-cid-z4bti5hh]:hover{background:color-mix(in srgb,var(--primary) 88%,var(--paper))}.assignment-btn[data-astro-cid-z4bti5hh]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.assignment-btn[data-astro-cid-z4bti5hh] svg[data-astro-cid-z4bti5hh]{width:1.1em;height:1.1em}@media(max-width:680px){.assignment-inner[data-astro-cid-z4bti5hh]{grid-template-columns:auto 1fr}.assignment-actions[data-astro-cid-z4bti5hh]{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}.assignment-btn[data-astro-cid-z4bti5hh]{flex:1 1 10rem}}@media print{.assignment-card[data-astro-cid-z4bti5hh]{display:none}}.cs-box{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);border:1px solid var(--rule);border-radius:10px;background:var(--paper)}.cs-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;cursor:pointer;list-style:none;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.cs-summary::-webkit-details-marker{display:none}.cs-chev{transition:transform .2s ease}.cs-box[open] .cs-chev{transform:rotate(180deg)}.cs-group{padding:0 .6rem .9rem}.cs-heading{margin:0 0 .45rem;padding:0 .45rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.cs-heading a{color:inherit;text-decoration:none}.cs-heading a:hover{color:var(--primary)}.cs-side ol{list-style:none;margin:0;padding:0}.cs-chapters a,.cs-tab,.cs-sections button{display:flex;gap:.55rem;width:100%;padding:.38rem .45rem;border:0;border-radius:6px;background:none;font:inherit;line-height:1.35;text-align:left;color:var(--ink-muted);text-decoration:none;cursor:pointer}.cs-chapters a:hover,.cs-tab:hover,.cs-sections button:hover{color:var(--ink);background:var(--surface-container-low)}.cs-chapters a:focus-visible,.cs-tab:focus-visible,.cs-sections button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.cs-code{flex:0 0 2.6em;font-weight:600;color:var(--stamp-progress)}.cs-chapters a[aria-current=page]{color:var(--primary);font-weight:700;background:var(--surface-container)}.cs-tab{font-weight:600;color:var(--ink)}.is-active>.cs-tab{color:var(--primary);background:var(--surface-container)}.cs-sections{display:none;margin:.15rem 0 .35rem .9rem;padding-left:.5rem;border-left:1px solid var(--rule-strong)}.is-active>.cs-sections{display:block}.is-flat>.cs-sections{margin:0}.cs-sections button{font-family:var(--font-sans);font-size:.8rem}.cs-sections button[aria-current=location]{color:var(--primary);font-weight:600}.cs-side{margin-bottom:.75rem}.course-frame{padding:1.5rem var(--gutter) 0}.course-body{min-width:0}.course-body :where(select,textarea,input){max-width:100%;min-width:0}.course-body :where(label){min-width:0}.course-body :where(code,legend){overflow-wrap:anywhere}.course-body :where(pre){max-width:100%;overflow-x:auto}.course-body :where(fieldset){min-inline-size:0}@media(max-width:640px){.course-body :where(table){display:block;max-width:100%;overflow-x:auto;position:relative}}@media(min-width:1024px){.course-frame{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:15rem minmax(0,1fr) 14rem;column-gap:2rem;align-items:start}.course-frame.no-toc{grid-template-columns:minmax(0,1fr) 14rem}.cs-side-toc{grid-column:1;grid-row:1}.course-body{grid-row:1;grid-column:2}.cs-side-chapters{grid-row:1;grid-column:3}.course-frame.no-toc .course-body{grid-column:1}.course-frame.no-toc .cs-side-chapters{grid-column:2}.cs-side{position:sticky;top:calc(var(--nav-h) + 1rem);max-height:calc(100vh - var(--nav-h) - 2rem);overflow-y:auto;overscroll-behavior:contain;margin-bottom:0}.cs-summary{display:none}.cs-group{padding-top:.9rem}}@media(prefers-reduced-motion:reduce){.cs-chev{transition:none}}.maew{--maew-w: 136px;--maew-h: calc(var(--maew-w) * 136 / 160);--x: 0px;--y: 0px;--tuck: 0px;--gx: 0;--gy: 0;--c-fur: #fff6ea;--c-shade: #f3dfc6;--c-point: #e6a26a;--c-line: #8a6a4f;--c-sock: #fffaf2;--c-inner: #f2b3a6;--c-eye: #2f7fb8;--c-eye2: #a9dcf2;--c-nose: #e8899a;--c-blaze: 1;--c-patch: transparent;--c-patch2: transparent;--c-stripe: transparent;position:fixed;left:0;bottom:0;z-index:44;width:var(--maew-w);height:var(--maew-h);display:none;pointer-events:none;transform:translate3d(var(--x),calc(var(--y) + var(--tuck)),0)}.maew.is-ready{display:block}.maew.is-walking{will-change:transform}.maew.is-tucked{--tuck: calc(var(--maew-h) * .72)}.maew.is-tucked .maew-cat{pointer-events:auto;cursor:pointer}.maew-cat{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:grab;touch-action:none;transform-origin:50% 100%;transition:transform .1s ease-out;-webkit-tap-highlight-color:transparent}.maew.is-dragging .maew-cat{cursor:grabbing}.maew-cat:focus-visible{outline:2px solid var(--primary, var(--c-point));outline-offset:2px;border-radius:12px}.maew-cat svg{display:block;width:100%;height:100%;overflow:visible}.maew-cat svg *{transform-box:view-box}.maew-cat svg :is(.m-fur,.m-tailfur,.m-legfur,.m-sock,.m-point){pointer-events:auto}.m-edge,.m-ruff{stroke:var(--c-line);stroke-width:.55;stroke-linejoin:round;stroke-opacity:.6}.m-ruff{stroke:none}.m-fur{fill:url(#m-furshade)}.m-tailfur{fill:url(#m-tailshade)}.m-legfur{fill:url(#m-legshade)}.m-point{fill:var(--c-point)}.m-inner{fill:var(--c-inner)}.m-sock{fill:var(--c-sock)}.m-blaze{fill:var(--c-fur);opacity:var(--c-blaze)}.m-patch{fill:var(--c-patch)}.m-patch2{fill:var(--c-patch2)}.m-stripes{fill:none;stroke:var(--c-stripe);stroke-width:3;stroke-linecap:round}.m-hair{fill:none;stroke:var(--c-shade);stroke-width:.7;stroke-linecap:round;opacity:.6}.m-ink,.m-pupil{fill:#231a14}.m-glint,.m-fang{fill:#fff}.m-nose{fill:var(--c-nose)}.m-blush{fill:var(--c-nose);opacity:.25;transition:opacity .3s}.m-tongue{fill:#ef8fa2;display:none}.m-line{fill:none;stroke:#3b3027;stroke-width:2;stroke-linecap:round}.m-mouth{stroke-width:1.1}.m-whisker{fill:none;stroke:#78695f8c;stroke-width:.7;stroke-linecap:round}.m-claw{fill:none;stroke:#3b3027;stroke-width:1.6;stroke-linecap:round;display:none}.m-ground{fill:#000;opacity:.16}.m-kibble{fill:#a8703c}.maew[data-coat=black] :is(.m-line,.m-claw){stroke:#e9e2d8}.m-side,.m-curl,.m-bowl,.m-snarl,.m-eyes-happy,.m-eyes-shut,.m-seyes-shut,.maew[data-rig=side] .m-front,.maew[data-rig=curl] .m-front{display:none}.maew[data-rig=side] .m-side,.maew[data-rig=curl] .m-curl{display:block}.maew[data-rig=side][data-dir=left] .maew-cat svg,.maew[data-state=attack][data-dir=left] .maew-cat svg,.maew[data-pose=swat][data-dir=left] .maew-cat svg{transform:scaleX(-1)}.m-torso{transform-origin:80px 134px;animation:maew-breathe 3.9s ease-in-out infinite}.m-head{transform-origin:80px 78px;transform:rotate(calc(var(--gx) * 4deg)) translateY(calc(var(--gy) * 1.5px));transition:transform .25s ease-out}.m-tail{transform-origin:100px 124px;animation:maew-tail 3.3s ease-in-out infinite}.m-tail2{transform-origin:32px 76px;animation:maew-tail 1s ease-in-out infinite}.m-eyes{transform:translate(calc(var(--gx) * 3.5px),calc(var(--gy) * 3px));transition:transform .15s ease-out}.m-eye{transform-box:fill-box!important;transform-origin:center;transition:transform .14s ease-out}.m-ears{transform-origin:80px 34px;transition:transform .2s ease-out}.m-limb{transform-box:fill-box!important;transform-origin:50% 8%}.m-shead{transform-origin:104px 70px;transition:transform .25s ease-out}.m-side{transform-origin:80px 90px}.m-trunk{transform-origin:70px 90px}.maew:is([data-state=blink],[data-state=sleepy],[data-state=happy],[data-pose=groom]) .m-eyes{display:none}.maew:is([data-state=blink],[data-state=sleepy],[data-pose=groom]) .m-eyes-shut,.maew[data-state=happy] .m-eyes-happy{display:block}.maew:is([data-pose=stretch],[data-pose=eat]) .m-seyes{display:none}.maew:is([data-pose=stretch],[data-pose=eat]) .m-seyes-shut{display:block}.maew[data-state=happy] .m-blush{opacity:.75}.maew[data-state=happy] .m-head{animation:maew-purr .32s ease-in-out infinite}.maew:is([data-state=curious],[data-state=surprised]) .m-ears{transform:scale(1.05) translateY(-3px)}.maew[data-state=curious] .m-eye{transform:scale(1.1)}.maew[data-state=surprised] .m-eye{transform:scale(1.22)}.maew[data-state=surprised] .maew-cat{animation:maew-hop .5s ease-out}.maew[data-state=attack] .m-snarl,.maew[data-state=attack] .m-claw,.maew[data-pose=swat] .m-claw{display:block}.maew[data-state=attack] .m-mouth{display:none}.maew[data-state=attack] .m-ears,.maew[data-state=annoyed] .m-ears{transform:scaleY(.72) translateY(14px)}.maew[data-state=attack] .m-eye{transform:scale(.82)}.maew[data-state=attack] .m-tail{animation-duration:.28s}.maew[data-state=attack] .maew-cat{animation:maew-lunge .9s ease-out}.maew:is([data-state=attack],[data-pose=swat]) .m-arm-r{animation:maew-swipe .3s ease-in-out 3}.maew[data-state=flick] .m-tail,.maew[data-state=annoyed] .m-tail{animation:maew-flick .34s ease-in-out infinite}.maew.is-crouching .maew-cat{transform:scale(1.1,.8)}.maew.is-winding .maew-cat{animation:maew-wind .38s ease-in-out}.maew.is-landing .maew-cat{animation:maew-land .2s ease-out}.maew[data-pose=walk] .m-side{animation:maew-bob .45s ease-in-out infinite}.maew[data-pose=walk] :is(.m-leg-lf,.m-leg-rb){animation:maew-leg .45s ease-in-out infinite alternate}.maew[data-pose=walk] :is(.m-leg-rf,.m-leg-lb){animation:maew-leg .45s ease-in-out infinite alternate-reverse}.maew[data-pose=jump] :is(.m-leg-lf,.m-leg-rf){transform:rotate(-46deg)}.maew[data-pose=jump] :is(.m-leg-lb,.m-leg-rb){transform:rotate(46deg)}.maew-cat svg.m-hangsvg{display:none}.maew[data-rig=hang] :is(.m-front,.m-side,.m-curl,.m-ground,.m-bowl){display:none}.maew[data-rig=hang] .maew-cat svg.m-hangsvg{display:block;position:absolute;left:0;bottom:0;width:100%;height:auto}.m-hang{transform-origin:80px 20px;animation:maew-hangsway 1.3s ease-in-out infinite}.m-hangtail{transform-origin:80px 140px;animation:maew-hangtail 1.3s ease-in-out infinite}.m-hangtail .m-tailfur{fill:url(#m-hangtail)}.m-hangleg{transform-origin:50% 0;animation:maew-hangleg 1.3s ease-in-out infinite}.m-hangleg2{animation-delay:-.65s}.maew[data-pose=stretch] .m-side{transform:rotate(9deg)}.maew[data-pose=stretch] :is(.m-leg-lf,.m-leg-rf){transform:rotate(-62deg)}.maew[data-pose=stretch] .m-shead{transform:rotate(-14deg) translateY(4px)}.maew[data-pose=stretch] .m-tail2{animation:none;transform:rotate(-16deg)}.maew[data-pose=eat] .m-bowl{display:block}.maew[data-pose=eat] .m-shead{animation:maew-eat .6s ease-in-out infinite}.maew[data-pose=eat] .m-tail2{animation-duration:2.2s}.maew[data-pose=groom] .m-arm-r{animation:maew-groom .7s ease-in-out infinite}.maew[data-pose=groom] .m-tongue{display:block}.maew[data-pose=groom] .m-head{transform:rotate(7deg) translateY(4px)}.maew[data-pose=knead] .m-arm-l{animation:maew-knead .56s ease-in-out infinite}.maew[data-pose=knead] .m-arm-r{animation:maew-knead .56s ease-in-out -.28s infinite}.maew[data-pose=type] .m-arm-l{animation:maew-knead .24s ease-in-out infinite}.maew[data-pose=type] .m-arm-r{animation:maew-knead .24s ease-in-out -.12s infinite}.maew[data-pose=type] .m-head{transform:translateY(3px) rotate(-3deg)}.maew[data-pose=roll] .m-side{animation:maew-roll 2.6s ease-in-out}.maew[data-pose=roll] .m-ground{opacity:.08}.maew[data-pose=happyhop] .maew-cat{animation:maew-happyhop .55s ease-out 2}.m-curl-body{transform-origin:84px 134px;animation:maew-breathe 5.5s ease-in-out infinite}.m-curl-head{transform-origin:49px 126px;animation:maew-nod 5.5s ease-in-out infinite}.maew.is-tucked :is(.m-torso,.m-tail,.m-tail2,.m-curl-body,.m-curl-head){animation-play-state:paused}.maew-more{position:absolute;top:2px;right:-2px;width:26px;height:26px;display:none;place-items:center;padding:0;border:1px solid var(--c-line);border-radius:50%;background:var(--c-fur);color:var(--c-line);cursor:pointer;pointer-events:auto}.maew-more svg{width:13px;height:13px;fill:currentColor}.maew:is(.show-more,:hover) .maew-more,.maew-more:focus-visible{display:grid}.maew:is(.is-tucked,.is-dragging,.is-walking,[data-state=attack],[data-pose=jump]) .maew-more{display:none}.maew-menu{position:fixed;z-index:46;min-width:190px;padding:6px;border:1px solid var(--outline-variant, #c9bfae);border-radius:12px;background:var(--paper, #fff);color:var(--ink, #222);box-shadow:0 8px 24px #00000038;font-size:.875rem}.maew-menu[hidden]{display:none}.maew-menu button[role^=menuitem]{display:block;width:100%;padding:.5rem .65rem;border:0;border-radius:8px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.maew-menu button[role^=menuitem]:hover,.maew-menu button[role^=menuitem]:focus-visible{background:color-mix(in srgb,currentColor 10%,transparent)}.maew-menu button[aria-checked=true]:after{content:" ✓"}.maew-coats{display:flex;gap:6px;padding:.45rem .65rem}.maew-coats button{width:24px;height:24px;padding:0;border:1px solid #0003;border-radius:50%;cursor:pointer}.maew-coats button[aria-pressed=true]{outline:2px solid currentColor;outline-offset:1px}.maew-zzz{position:absolute;top:16px;left:24%;display:none;color:var(--ink, #3b3027);font-size:.95rem;font-weight:700}.maew-zzz i{position:absolute;font-style:normal;opacity:0;animation:maew-zzz 3.6s ease-out infinite}.maew-zzz i:nth-child(2){animation-delay:1.2s}.maew-zzz i:nth-child(3){animation-delay:2.4s}.maew[data-pose=sleep]:not(.is-tucked) .maew-zzz{display:block}.maew-fx{position:absolute;left:var(--fx-x, 50%);bottom:78%;color:var(--c-nose);font-size:1.2rem;line-height:1;white-space:nowrap;pointer-events:none;animation:maew-float 1.3s ease-out forwards}.maew-fx.is-word{left:50%;bottom:100%;padding:.15rem .55rem;border:1px solid #c9a67c;border-radius:999px;background:#fbeedb;color:#3b3027;font-size:.8rem;font-weight:600}.maew-fx.is-word.is-hiss{background:#c8402f;border-color:#8f2a1e;color:#fff;font-weight:800}.maew-dust{position:absolute;bottom:0;width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--ink, #555) 28%,transparent);pointer-events:none;animation:maew-dust .42s ease-out forwards}.maew-slash{position:fixed;z-index:45;width:84px;height:84px;margin:-42px 0 0 -42px;pointer-events:none}.maew-slash svg{display:block;width:100%;height:100%;overflow:visible}.maew-slash path{fill:none;stroke:#e4432f;stroke-width:6;stroke-linecap:round;stroke-dasharray:90;stroke-dashoffset:90;animation:maew-slash .62s ease-out forwards}.maew-slash path:nth-child(2){animation-delay:.05s}.maew-slash path:nth-child(3){animation-delay:.1s}@keyframes maew-hangsway{0%,to{transform:rotate(-3.5deg)}50%{transform:rotate(3.5deg)}}@keyframes maew-hangtail{0%,to{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}@keyframes maew-hangleg{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes maew-breathe{50%{transform:scaleY(1.025)}}@keyframes maew-nod{50%{transform:translateY(-1.5px)}}@keyframes maew-purr{50%{transform:rotate(2.4deg)}}@keyframes maew-tail{0%,to{transform:rotate(-7deg)}50%{transform:rotate(9deg)}}@keyframes maew-flick{0%,to{transform:rotate(-26deg)}50%{transform:rotate(24deg)}}@keyframes maew-bob{50%{transform:translateY(-2px)}}@keyframes maew-leg{0%{transform:rotate(-24deg)}to{transform:rotate(24deg)}}@keyframes maew-hop{40%{transform:translateY(-14px)}}@keyframes maew-happyhop{50%{transform:translateY(-20px) scale(.97,1.05)}}@keyframes maew-wind{0%,50%,to{transform:scale(1.14,.72) translate(-2px)}25%,75%{transform:scale(1.14,.72) translate(2px)}}@keyframes maew-land{35%{transform:scale(1.16,.76)}}@keyframes maew-swipe{0%,to{transform:rotate(-10deg)}45%{transform:rotate(-125deg) translateY(4px)}}@keyframes maew-groom{0%,to{transform:rotate(160deg) translateY(-2px)}50%{transform:rotate(170deg) translate(-2px,3px)}}@keyframes maew-knead{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes maew-eat{0%,to{transform:rotate(30deg) translate(4px,22px)}50%{transform:rotate(36deg) translate(4px,26px)}}@keyframes maew-roll{0%,to{transform:rotate(0)}30%,42%,54%,66%{transform:rotate(180deg) translateY(32px)}36%,60%{transform:rotate(168deg) translateY(32px)}48%{transform:rotate(192deg) translateY(32px)}}@keyframes maew-lunge{0%{transform:scale(1.08,.86)}18%,70%{transform:translateY(-8px) scale(1.04)}}@keyframes maew-float{0%{transform:translate(-50%,4px);opacity:1}70%{opacity:1}to{transform:translate(-50%,-34px);opacity:0}}@keyframes maew-zzz{0%{transform:translate(0) scale(.7);opacity:0}20%{opacity:.8}to{transform:translate(12px,-26px) scale(1.25);opacity:0}}@keyframes maew-dust{to{transform:translate(var(--dx),-10px) scale(1.8);opacity:0}}@keyframes maew-slash{30%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@media(max-width:640px){.maew{--maew-w: 100px}}@media print{.maew,.maew-menu{display:none!important}}.live-btn[data-astro-cid-5rkfanqn]{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .95rem;border-radius:999px;background:var(--primary);color:var(--paper);font-family:var(--font-mono);font-size:.82rem;font-weight:600;letter-spacing:.02em;text-decoration:none;box-shadow:0 6px 18px #0000002e;transition:transform .15s ease}.live-btn[data-astro-cid-5rkfanqn][hidden]{display:none}.live-btn[data-astro-cid-5rkfanqn]:hover{transform:translateY(-1px)}.live-btn[data-astro-cid-5rkfanqn]:focus-visible{outline:3px solid var(--sandy-gold, currentColor);outline-offset:3px}.live-btn-dot[data-astro-cid-5rkfanqn]{width:.55rem;height:.55rem;border-radius:50%;background:#e5484d;box-shadow:0 0 0 3px #e5484d40}.live-btn-n[data-astro-cid-5rkfanqn]{opacity:.75;font-weight:400}@media(prefers-reduced-motion:reduce){.live-btn[data-astro-cid-5rkfanqn]{transition:none}}@media print{.live-btn[data-astro-cid-5rkfanqn]{display:none}}:root{--paper: #f3f5f9;--ink: #16203b;--ink-muted: #4b5d7e;--rule: #e4e8f0;--rule-strong: #8b97b0;--primary: #16203b;--secondary: #836419;--sandy-gold: #c8a24b;--stamp-done: #7d5f16;--stamp-progress: #0a1f44;--stamp-planned: #525e78;--error: #c0392f;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;--font-sans: Inter, var(--font-mono);--font-body: Inter, var(--font-serif);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--gutter: clamp(1.25rem, 4vw, 1.5rem);--nav-h: 4.8rem;--section-py: clamp(3rem, 7vw, 5rem);--section-py-lg: clamp(3.5rem, 8vw, 6.5rem);--text-h1: clamp(2.3rem, 5vw, 3.5rem);--text-h2: clamp(1.6rem, 3.2vw, 2.2rem);--text-h3: 1.25rem;--text-body-lg: 1.1rem;--text-body: 1rem;--text-small: .85rem;--text-micro: .75rem;--surface: #f3f5f9;--surface-container: #e4e8f0;--surface-container-low: #ffffff;--surface-container-high: #e4e8f0;--surface-container-highest: #e4e8f0;--outline-variant: #e4e8f0;--on-surface: #16203b;--on-surface-variant: #4b5d7e;--primary-blue: #0a1f44}:root[data-theme=dark]{--paper: #16203b;--ink: #ffffff;--ink-muted: #e4e8f0;--rule: #1d3563;--rule-strong: #4b5d7e;--primary: #d8b368;--secondary: #8b97b0;--sandy-gold: #c8a24b;--stamp-done: #d8b368;--stamp-progress: #8b97b0;--stamp-planned: #8b97b0;--error: #f2b8b5;--surface: #16203b;--surface-container: #0a1f44;--surface-container-low: #0a1f44;--surface-container-high: #1d3563;--surface-container-highest: #1d3563;--outline-variant: #1d3563;--on-surface: #ffffff;--on-surface-variant: #e4e8f0;--primary-blue: #8b97b0}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%}html{scroll-behavior:smooth;scroll-padding-top:6rem;color-scheme:light}:root[data-theme=dark]{color-scheme:dark}h1,h2,h3{text-wrap:balance}main:focus{outline:none}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:100;padding:.6rem 1rem;border-radius:6px;background:var(--primary);color:var(--paper);font-family:var(--font-mono);font-size:var(--text-small);text-decoration:none}.skip-link:focus-visible{top:.75rem}:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--stamp-progress);outline-offset:3px}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}a{color:inherit}main{position:relative;z-index:1}@view-transition{navigation:auto}.site-nav{view-transition-name:site-nav}@keyframes vt-content-out{to{opacity:0;transform:translateY(-12px)}}@keyframes vt-content-in{0%{opacity:0;transform:translateY(16px)}}::view-transition-old(root){animation:vt-content-out .22s cubic-bezier(.4,0,1,1) both}::view-transition-new(root){animation:vt-content-in .36s cubic-bezier(.16,.84,.2,1) both}.scroll-rail{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}.scroll-rail span{display:block;height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 55%,var(--sandy-gold) 100%);transform:scaleX(0);transform-origin:0 50%}#jazzy-cursor{position:fixed;top:0;left:0;width:22px;height:22px;margin:-11px 0 0 -11px;border:1px solid var(--ink);border-radius:999px;z-index:9999;pointer-events:none;visibility:hidden;opacity:0;mix-blend-mode:difference}#jazzy-cursor.is-active{background:var(--ink);border-color:transparent}@media(hover:hover)and (pointer:fine){body:has(#jazzy-cursor) a,body:has(#jazzy-cursor) button{cursor:none}}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}.scroll-rail{display:none}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}:where(a,button,summary,label,input,select,textarea,[role=button]){touch-action:manipulation;-webkit-tap-highlight-color:color-mix(in srgb,var(--primary) 16%,transparent)}[data-count]{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.chip{display:inline-flex;align-items:center;line-height:1;font-size:var(--text-micro);padding:.35rem .7rem;border-radius:999px;background:var(--surface-container-high, var(--rule));color:var(--on-surface-variant, var(--ink-muted));border:1px solid var(--outline-variant, var(--rule))}.chip-outline{background:var(--surface-container-low, transparent)}.chip-outline em{font-style:normal;font-size:.85em;margin-left:.3rem}.site-nav{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;padding:1.15rem clamp(1.25rem,4vw,3rem);background:var(--paper);border-bottom:1px solid var(--rule);transition:padding .2s ease,border-color .2s ease,box-shadow .2s ease}.site-nav.is-compact{padding-top:.7rem;padding-bottom:.7rem;border-bottom-color:var(--rule-strong);box-shadow:0 8px 20px -16px #00000059}.site-nav .brand{margin-left:max(0px,calc(12vw + .75rem - clamp(1.25rem,4vw,3rem)));font-family:var(--font-mono);font-weight:700;font-size:.95rem;text-decoration:none;letter-spacing:.01em}.site-nav .brand span{color:var(--ink-muted);font-weight:400}.slide-tabs{position:relative;list-style:none;display:flex;align-items:center;justify-content:center;margin:0;padding:.25rem;border:1px solid var(--rule);border-radius:999px;background:var(--surface-container-low)}.slide-tabs-item{position:relative;z-index:1}.slide-tabs-link{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:999px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;color:var(--ink-muted);transition:color .25s ease}.slide-tabs-item[data-hover]>.slide-tabs-link{color:var(--paper)}.slide-tabs-cursor{position:absolute;top:.25rem;bottom:.25rem;left:0;z-index:0;border-radius:999px;background:var(--primary);pointer-events:none;opacity:0;transition:transform .45s cubic-bezier(.34,1.36,.64,1),width .45s cubic-bezier(.34,1.36,.64,1),opacity .2s ease}.lang-switch{justify-self:end;display:inline-flex;gap:.15rem;padding:.2rem;border:1px solid var(--rule);border-radius:999px;background:var(--surface-container-low)}.lang-btn{min-width:2.6rem;padding:.35rem .6rem;border:none;border-radius:999px;background:transparent;color:var(--ink-muted);font-family:var(--font-mono);font-size:.74rem;font-weight:600;letter-spacing:.04em;line-height:1.2;cursor:pointer;transition:color .2s ease,background-color .2s ease}.lang-btn:hover{color:var(--ink)}.lang-btn[aria-pressed=true]{background:var(--primary);color:var(--paper)}.lang-btn:focus-visible{outline:2px solid var(--stamp-progress);outline-offset:2px}.goog-te-banner-frame,iframe.skiptranslate,#goog-gt-tt,.goog-te-balloon-frame,.goog-te-spinner-pos,.VIpgJd-ZVi9od-ORHb-OEVmcd,.VIpgJd-ZVi9od-aZ2wEe-wOHMyf,.VIpgJd-ZVi9od-l4eHX-hSRGPd{display:none!important}:root[data-translated] body{top:0!important;position:static!important}.goog-text-highlight{background:none!important;box-shadow:none!important}:root[data-translated=th] body,.lang-btn[lang=th]{font-family:var(--font-serif),"Leelawadee UI","Thonburi","Sarabun","Noto Sans Thai",Tahoma,sans-serif}:root[data-translated=zh-CN] body,.lang-btn[lang=zh-CN]{font-family:var(--font-serif),"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",sans-serif}.sky-toggle{position:fixed;top:-8vw;left:-8vw;z-index:60;width:20vw;height:20vw;padding:0;border:none;background:transparent;cursor:pointer;pointer-events:none}.sky-toggle .sky-body{width:100%;height:100%;overflow:visible}.sky-toggle .sky-disc{pointer-events:auto;transition:filter .2s ease}.sky-toggle:hover .sky-disc{filter:brightness(1.06)}.sky-toggle:active .sky-disc{filter:brightness(.95)}.sky-toggle:focus-visible{outline:none}.sky-toggle:focus-visible .sky-body{outline:2px solid var(--stamp-progress);outline-offset:4px;border-radius:50%}.sky-toggle .sky-sun,.sky-toggle .sky-moon{transform-origin:50% 50%;transition:opacity .5s ease,transform .5s ease}.sky-toggle .sky-sun{opacity:1;transform:scale(1);filter:drop-shadow(0 0 18px rgba(255,190,90,.55))}.sky-toggle .sky-moon{opacity:0;transform:scale(.82);filter:drop-shadow(0 0 16px rgba(170,200,245,.4))}:root[data-theme=dark] .sky-toggle .sky-sun{opacity:0;transform:scale(.82)}:root[data-theme=dark] .sky-toggle .sky-moon{opacity:1;transform:scale(1)}.sky-light-wash,.sky-shadow-wash{position:fixed;inset:0;z-index:45;pointer-events:none;transition:background .5s ease,opacity .5s ease}:global(:root[data-world-ready]) .sky-light-wash,:global(:root[data-world-ready]) .sky-shadow-wash{mix-blend-mode:normal}.sky-light-wash{mix-blend-mode:screen;background:radial-gradient(ellipse 13rem 10rem at 2vw 2vw,rgba(255,226,160,.42),transparent 72%),conic-gradient(from 112deg at 2vw 2vw,transparent 0deg,rgba(255,224,158,.16) 14deg,rgba(255,224,158,.1) 62deg,transparent 100deg);-webkit-mask-image:radial-gradient(ellipse 70rem 58rem at 2vw 2vw,#000 8%,transparent 70%);mask-image:radial-gradient(ellipse 70rem 58rem at 2vw 2vw,#000 8%,transparent 70%)}.sky-shadow-wash{mix-blend-mode:multiply;background:radial-gradient(ellipse 95rem 80rem at 2vw 2vw,transparent 0%,transparent 30%,rgba(24,19,12,.09) 62%,rgba(18,15,10,.2) 100%),radial-gradient(ellipse 32rem 26rem at 8vw 100%,rgba(20,16,10,.22),transparent 72%)}:root[data-theme=dark] .sky-light-wash{background:radial-gradient(ellipse 18rem 13rem at 2vw 2vw,rgba(176,202,244,.22),transparent 74%),conic-gradient(from 112deg at 2vw 2vw,transparent 0deg,rgba(170,198,242,.1) 14deg,rgba(170,198,242,.06) 62deg,transparent 100deg)}:root[data-theme=dark] .sky-shadow-wash{opacity:0}@media(pointer:coarse){.slide-tabs-link{position:relative}.slide-tabs-link:after{content:"";position:absolute;inset:-.45rem 0}}@media(max-width:800px){.site-nav{grid-template-columns:auto 1fr;gap:.75rem 1.25rem}.slide-tabs{grid-row:2;grid-column:1 / -1;flex-wrap:wrap;gap:.3rem;border-color:transparent;background:transparent;padding:0}.slide-tabs-cursor{display:none}.lang-switch{grid-row:1;grid-column:2}.slide-tabs-item[data-hover]>.slide-tabs-link,.slide-tabs-item>.slide-tabs-link[aria-current]{color:var(--ink)}}@media(max-width:480px){.slide-tabs{justify-content:space-between;gap:.1rem}.slide-tabs-link{padding-inline:.4rem;font-size:.74rem;letter-spacing:.03em}}@media(max-width:374px){.slide-tabs-link{padding-inline:.28rem;font-size:.68rem;letter-spacing:0}}@media(max-width:640px){.sky-toggle{top:-12vw;left:-14vw;width:56vw;height:56vw;z-index:40}.site-nav .brand{margin-left:0}}
