.site-header[data-astro-cid-nen7h5rs]{z-index:var(--z-nav);backdrop-filter:blur(12px);background:oklch(99% .006 230/.86);border-bottom:1px solid oklch(24% .035 250/.08);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;min-height:4.25rem;display:flex}.logo[data-astro-cid-nen7h5rs]{letter-spacing:-.02em;font-size:1.125rem;font-weight:800;text-decoration:none}.site-nav[data-astro-cid-nen7h5rs]{align-items:center;gap:1.1rem;display:flex}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{font-weight:600;font-size:var(--text-label);color:var(--color-muted);align-items:center;min-height:2.75rem;text-decoration:none;display:inline-flex}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--color-ink)}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{font-weight:800}.nav-cta[data-astro-cid-nen7h5rs]{background:var(--color-primary);border-radius:var(--radius-pill);padding:.55rem 1rem;color:#fff!important}.nav-cta[data-astro-cid-nen7h5rs]:hover{background:var(--color-primary-deep);color:#fff!important}.nav-toggle[data-astro-cid-nen7h5rs]{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:2.75rem;height:2.75rem;padding:0;display:none}.nav-toggle[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]:not(.sr-only){background:var(--color-ink);border-radius:2px;width:1.35rem;height:2px;margin-inline:auto;display:block}.sr-only[data-astro-cid-nen7h5rs]{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.nav-toggle[data-astro-cid-nen7h5rs]{display:inline-flex}.site-nav[data-astro-cid-nen7h5rs]{inset-inline:0;background:var(--color-bg);box-shadow:var(--shadow-soft);border-bottom:1px solid oklch(24% .035 250/.08);flex-direction:column;align-items:stretch;gap:0;padding:.75rem 1.25rem 1.25rem;display:none;position:absolute;top:100%}.site-nav[data-astro-cid-nen7h5rs].is-open{display:flex}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-bottom:1px solid oklch(24% .035 250/.06);padding:.85rem .25rem}.nav-cta[data-astro-cid-nen7h5rs]{text-align:center;justify-content:center;margin-top:.5rem}}.site-footer[data-astro-cid-jo6i4kqk]{padding-block:var(--space-3) var(--space-4);background:oklch(97% .014 220/.65);border-top:1px solid oklch(55% .08 250/.12)}.footer-inner[data-astro-cid-jo6i4kqk]{gap:var(--space-2) var(--space-3);font-size:var(--text-label);grid-template-columns:1fr auto;align-items:center;display:grid}.footer-inner[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0}.status[data-astro-cid-jo6i4kqk]{color:var(--color-primary-deep);cursor:pointer;user-select:none;justify-self:start;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.status[data-astro-cid-jo6i4kqk]:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:.5rem}.status-dot[data-astro-cid-jo6i4kqk]{background:oklch(72% .16 145);border-radius:50%;width:.55rem;height:.55rem;animation:2.4s ease-out infinite status-pulse;box-shadow:0 0 oklch(72% .16 145/.45)}@keyframes status-pulse{0%{box-shadow:0 0 oklch(72% .16 145/.45)}70%{box-shadow:0 0 0 8px oklch(72% .16 145/0)}to{box-shadow:0 0 oklch(72% .16 145/0)}}.footer-links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-self:end;align-items:center;gap:.45rem;display:inline-flex}.footer-inner[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--color-muted);align-items:center;min-height:2.75rem;font-weight:600;text-decoration:none;display:inline-flex}.footer-inner[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-primary-deep)}.built[data-astro-cid-jo6i4kqk]{text-align:center;color:var(--color-primary-deep);letter-spacing:.01em;grid-column:1/-1;justify-self:center;padding-top:.15rem;font-size:.85rem;font-weight:700}.copy[data-astro-cid-jo6i4kqk]{font-weight:650}@media (width<=640px){.footer-inner[data-astro-cid-jo6i4kqk]{text-align:center;grid-template-columns:1fr;justify-items:center}.status[data-astro-cid-jo6i4kqk],.footer-links[data-astro-cid-jo6i4kqk]{justify-self:center}}@media (prefers-reduced-motion:reduce){.status-dot[data-astro-cid-jo6i4kqk]{animation:none}}.lightbox{color:#fff;background:oklch(18% .03 255);border:none;border-radius:1.25rem;width:min(96vw,78rem);max-width:96vw;max-height:94vh;margin:auto;padding:0;overflow:hidden;box-shadow:0 28px 80px oklch(20% .04 255/.55)}.lightbox::backdrop{backdrop-filter:blur(6px);background:oklch(20% .03 255/.72)}.lightbox[open]{flex-direction:column;display:flex}.lightbox-bar{background:oklch(22% .035 255);border-bottom:1px solid oklch(100% 0 0/.08);justify-content:space-between;align-items:center;gap:1rem;margin:0;padding:.65rem .75rem .65rem 1.1rem;display:flex}.lightbox-hint{color:oklch(88% .02 230);margin:0;font-size:.82rem;font-weight:650}.lightbox-close{color:#fff;cursor:pointer;background:oklch(100% 0 0/.1);border:none;border-radius:999px;place-items:center;width:2.4rem;height:2.4rem;font-size:1.55rem;line-height:1;transition:background .2s;display:grid}.lightbox-close:hover{background:oklch(100% 0 0/.2)}.lightbox-stage{cursor:zoom-in;background:radial-gradient(circle at 80% 10%,oklch(55% .1 250/.25),#0000 40%),radial-gradient(circle at 10% 90%,oklch(70% .12 95/.18),#0000 35%),oklch(16% .025 255);max-height:min(78vh,820px);position:relative;overflow:auto}.lightbox-stage.is-zoomed{cursor:zoom-out}.lightbox-stage img{transform-origin:50%;user-select:none;width:100%;max-width:none;height:auto;margin:0 auto;transition:transform .28s cubic-bezier(.16,1,.3,1);display:block}.lightbox-stage.is-zoomed img{width:180%;max-width:none}.lightbox-caption{color:oklch(90% .02 230);border-top:1px solid oklch(100% 0 0/.08);margin:0;padding:.85rem 1.15rem 1.05rem;font-size:.92rem;font-weight:650}@media (width<=700px){.lightbox-stage.is-zoomed img{width:240%}.lightbox-hint{font-size:.75rem}}@media (prefers-reduced-motion:reduce){.lightbox-stage img{transition:none}}.fun-root{pointer-events:none;z-index:80;position:fixed;inset:0}.fun-hud{z-index:81;color:#fff;font-family:var(--font);box-shadow:var(--shadow-lift);opacity:0;pointer-events:none;background:oklch(42% .14 255/.92);border-radius:999px;padding:.45rem .75rem;font-size:.75rem;font-weight:800;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1);position:fixed;bottom:1rem;right:1rem;transform:translateY(8px)}.fun-hud.is-on{opacity:1;transform:translateY(0)}.fun-toast{color:#fff;font-family:var(--font);box-shadow:var(--shadow-lift);opacity:0;pointer-events:none;text-align:center;background:oklch(42% .14 255);border-radius:999px;max-width:min(90vw,32rem);padding:.75rem 1.15rem;font-size:.9rem;font-weight:700;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1);position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(1rem)}.fun-toast.is-on{opacity:1;transform:translate(-50%)translateY(0)}.fun-toast.is-help{text-align:left;white-space:pre-line;border-radius:1.25rem;padding:1rem 1.25rem;font-size:.85rem;font-weight:650;line-height:1.45;bottom:1.25rem}.fun-bubble{pointer-events:none;border-radius:50%;animation:.9s cubic-bezier(.16,1,.3,1) forwards fun-pop;position:fixed}.fun-spark{pointer-events:none;opacity:.8;border-radius:50%;width:6px;height:6px;animation:.52s ease-out forwards fun-spark;position:fixed}.fun-raindrop{pointer-events:none;border-radius:50%;animation:1.8s linear forwards fun-rain;position:fixed;top:-2rem}.nav-mail-badge{color:#fff;vertical-align:middle;background:oklch(62% .18 25);border-radius:999px;place-items:center;min-width:1.15rem;height:1.15rem;margin-left:.35rem;padding:0 .3rem;font-size:.65rem;font-weight:800;line-height:1;display:inline-grid}.is-wiggle{animation:.52s cubic-bezier(.16,1,.3,1) fun-wiggle}.is-shake{animation:.48s cubic-bezier(.16,1,.3,1) fun-shake}.is-flip{animation:.7s cubic-bezier(.16,1,.3,1) fun-flip}.is-rainbow{animation:1.6s linear infinite fun-rainbow}[data-fun-kicker]{cursor:pointer;display:inline-block}[data-fun-portrait]{cursor:pointer}html.is-party body{filter:hue-rotate(18deg)saturate(1.15);transition:filter .4s}@keyframes fun-pop{0%{opacity:.95;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1.15)}}@keyframes fun-spark{to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.2)}}@keyframes fun-rain{to{opacity:.15;transform:translateY(110vh)rotate(220deg)}}@keyframes fun-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)scale(1.02)}75%{transform:rotate(3deg)scale(1.02)}}@keyframes fun-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)rotate(-1deg)}40%{transform:translate(6px)rotate(1deg)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes fun-flip{0%{transform:rotateY(0)}50%{transform:rotateY(12deg)scale(1.03)}to{transform:rotateY(0)}}@keyframes fun-rainbow{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fun-bubble,.fun-spark,.fun-raindrop{display:none}.fun-toast,.fun-hud{transition:opacity .16s}.is-wiggle,.is-shake,.is-flip,.is-rainbow{animation:none}html.is-party body{filter:none}}:root{--color-bg:oklch(99% .006 230);--color-surface:oklch(97% .014 220);--color-ink:oklch(25% .03 260);--color-muted:oklch(42% .025 250);--color-primary:oklch(55% .16 250);--color-primary-deep:oklch(42% .14 255);--color-accent:oklch(62% .1 300);--color-pop:oklch(86% .15 92);--color-sky:oklch(70% .14 230);--color-blush:oklch(74% .09 350);--color-primary-soft:oklch(94% .035 240);--color-ring:oklch(55% .16 250);--cursor-glow:oklch(65% .12 230/.14);--font:"Nunito", "Segoe UI", system-ui, sans-serif;--text-display:clamp(2.25rem, 5.5vw, 3.75rem);--text-headline:clamp(1.65rem, 3.2vw, 2.25rem);--text-title:clamp(1.2rem, 2vw, 1.4rem);--text-body:1.0625rem;--text-label:.9375rem;--leading-display:1.08;--leading-body:1.65;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4.5rem;--space-7:7rem;--radius-sm:.75rem;--radius-md:1.25rem;--radius-lg:1.75rem;--radius-pill:999px;--shadow-soft:0 12px 40px oklch(35% .06 250/.12);--shadow-lift:0 20px 56px oklch(35% .08 250/.18);--ease-out:cubic-bezier(.16, 1, .3, 1);--duration:.52s;--z-nav:40;--z-cursor:5;--max:72rem;--measure:68ch;--mx:50vw;--my:40vh}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font);font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit}:focus-visible{outline:3px solid var(--color-ring);outline-offset:3px}.skip-link{left:var(--space-2);z-index:100;padding:var(--space-1) var(--space-2);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-weight:700;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--space-2)}.wrap{width:min(100% - var(--space-4), var(--max));margin-inline:auto}h1,h2,h3{text-wrap:balance;line-height:var(--leading-display);letter-spacing:-.02em;margin:0}p{text-wrap:pretty;max-width:var(--measure)}.muted{color:var(--color-muted)}.btn{border-radius:var(--radius-pill);min-height:3rem;font-family:inherit;font-size:var(--text-label);cursor:pointer;transition:transform var(--duration) var(--ease-out), background-color .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.35rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-soft)}.btn-primary:hover{background:var(--color-primary-deep);box-shadow:var(--shadow-lift)}.btn-secondary{color:var(--color-ink);background:oklch(100% 0 0/.75);border-color:oklch(35% .08 340/.18)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary-deep)}.btn-group{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}
