._header_d9ybw_1{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--border)}._inner_d9ybw_10{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.5rem;width:min(100% - 2rem,var(--max));margin-inline:auto}._brand_d9ybw_20{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;letter-spacing:-.03em;color:var(--text);text-decoration:none;font-size:1.05rem}._brand_d9ybw_20:hover{color:var(--accent)}._nav_d9ybw_35{display:flex;align-items:center;gap:.15rem 1.1rem;flex-wrap:wrap;justify-content:flex-end}._nav_d9ybw_35 a{color:var(--text-muted);font-size:.9rem;text-decoration:none}._nav_d9ybw_35 a:hover,._nav_d9ybw_35 a[data-active=true]{color:var(--text)}._socials_d9ybw_54{display:flex;align-items:center;gap:.65rem;margin-left:.5rem;padding-left:.85rem;border-left:1px solid var(--border)}._socials_d9ybw_54 a{color:var(--text-muted);display:inline-flex}._socials_d9ybw_54 a:hover{color:var(--accent)}._icon_d9ybw_72{width:1.1rem;height:1.1rem}._themeToggle_d9ybw_77{display:inline-flex;padding:0;border:0;background:none;color:var(--text-muted);cursor:pointer}._themeToggle_d9ybw_77:hover{color:var(--accent)}._moon_d9ybw_91,[data-theme=light] ._sun_d9ybw_92{display:none}[data-theme=light] ._moon_d9ybw_91{display:block}._nav_d9ybw_35{margin-left:auto}@media(max-width:720px){._inner_d9ybw_10{flex-wrap:wrap;column-gap:0}._socials_d9ybw_54{margin-left:auto;border-left:0}._nav_d9ybw_35{order:3;width:100%;margin:0 -1rem;padding:.1rem 1rem .6rem;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;white-space:nowrap;box-sizing:content-box}}.seaside[data-astro-cid-mpqikseg]{position:relative;color:var(--text);cursor:crosshair}.pine[data-astro-cid-mpqikseg]{transform-box:fill-box;transform-origin:50% 100%}[data-astro-cid-mpqikseg][data-weather=windy] .pine[data-astro-cid-mpqikseg]{animation:sway 1.4s ease-in-out infinite alternate}@keyframes sway{0%{rotate:-1deg}to{rotate:-5deg}}svg[data-astro-cid-mpqikseg]{display:block;width:100%;height:clamp(150px,14vw,200px);overflow:hidden;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}svg[data-astro-cid-mpqikseg] *{vector-effect:non-scaling-stroke}.solid[data-astro-cid-mpqikseg],.solid[data-astro-cid-mpqikseg] path,.solid[data-astro-cid-mpqikseg] rect,.solid[data-astro-cid-mpqikseg] circle{fill:var(--bg)}.soft[data-astro-cid-mpqikseg]{stroke:var(--text-muted);opacity:.6}.templates[data-astro-cid-mpqikseg]{display:none}.win[data-astro-cid-mpqikseg]{fill:var(--bg);transition:fill 1.2s ease}.windows[data-astro-cid-mpqikseg]{stroke:var(--text-muted)}.wave[data-astro-cid-mpqikseg]{stroke:var(--text-muted);animation:drift linear infinite}.w1[data-astro-cid-mpqikseg]{stroke-dasharray:18 26;animation-duration:9s}.w2[data-astro-cid-mpqikseg]{stroke-dasharray:8 34;animation-duration:14s}.w3[data-astro-cid-mpqikseg]{stroke-dasharray:26 44;animation-duration:20s}[data-astro-cid-mpqikseg][data-weather=windy] .wave[data-astro-cid-mpqikseg]{animation-duration:3s}@keyframes drift{to{stroke-dashoffset:-440}}.sun[data-astro-cid-mpqikseg],.moon[data-astro-cid-mpqikseg],.stars[data-astro-cid-mpqikseg],.beam[data-astro-cid-mpqikseg],.rain[data-astro-cid-mpqikseg]{transition:opacity 1.5s ease}.moon[data-astro-cid-mpqikseg],.stars[data-astro-cid-mpqikseg],.beam[data-astro-cid-mpqikseg],.rain[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=night] .sun[data-astro-cid-mpqikseg]{opacity:0}[data-astro-cid-mpqikseg][data-phase=night] .moon[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=night] .stars[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=night] .beam[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=twilight] .beam[data-astro-cid-mpqikseg]{opacity:1}[data-astro-cid-mpqikseg][data-weather=rainy] .rain[data-astro-cid-mpqikseg]{opacity:.55}[data-astro-cid-mpqikseg][data-weather=rainy] .sun[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-weather=rainy] .moon[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-weather=rainy] .stars[data-astro-cid-mpqikseg]{opacity:0}.rays[data-astro-cid-mpqikseg]{animation:spin 60s linear infinite}.star[data-astro-cid-mpqikseg]{animation:twinkle 4s ease-in-out infinite}.rain[data-astro-cid-mpqikseg]{stroke:var(--text-muted);animation:fall .7s linear infinite}@keyframes spin{to{rotate:360deg}}@keyframes twinkle{50%{opacity:.2}}@keyframes fall{to{translate:-14px 200px}}[data-astro-cid-mpqikseg][data-phase=night] .win[data-astro-cid-mpqikseg][data-lit],[data-astro-cid-mpqikseg][data-phase=twilight] .win[data-astro-cid-mpqikseg][data-lit],[data-astro-cid-mpqikseg][data-phase=night] .win[data-astro-cid-mpqikseg].lit,[data-astro-cid-mpqikseg][data-phase=night] .lamp[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=twilight] .lamp[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=night] .lantern[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=twilight] .lantern[data-astro-cid-mpqikseg]{fill:var(--glow)}.beam[data-astro-cid-mpqikseg]{fill:var(--glow);stroke:none;fill-opacity:.3;transform-box:view-box;transform-origin:335px 48px;animation:sweep 6s ease-in-out infinite}.beam-r[data-astro-cid-mpqikseg]{animation-delay:-3s}@keyframes sweep{0%,to{scale:0 1}50%{scale:1 1}}.flag[data-astro-cid-mpqikseg]{transform-box:fill-box;transform-origin:0 50%;animation:flutter 1.8s ease-in-out infinite}[data-astro-cid-mpqikseg][data-weather=windy] .flag[data-astro-cid-mpqikseg]{animation-duration:.35s}@keyframes flutter{50%{scale:.85 1.1}}.moored[data-astro-cid-mpqikseg]{opacity:0;transition:opacity .6s ease}[data-astro-cid-mpqikseg][data-docked] .moored[data-astro-cid-mpqikseg]{opacity:1}.seaside[data-astro-cid-mpqikseg] .leg{transform-box:fill-box;transform-origin:50% 0;animation:step .42s ease-in-out infinite alternate;animation-delay:var(--phase, 0s)}.seaside[data-astro-cid-mpqikseg] .leg.b{animation-delay:calc(var(--phase, 0s) - .42s)}.seaside[data-astro-cid-mpqikseg] .leg.fast{animation-duration:.2s}.seaside[data-astro-cid-mpqikseg] .leg.fast.b{animation-delay:calc(var(--phase, 0s) - .2s)}.seaside[data-astro-cid-mpqikseg] .leg.run{transform-origin:0 0;animation-name:stride}.seaside[data-astro-cid-mpqikseg] .arm{transform-box:fill-box;transform-origin:54% 0;animation:pump .2s ease-in-out infinite alternate;animation-delay:calc(var(--phase, 0s) - .2s)}.seaside[data-astro-cid-mpqikseg] .arm.b{animation-delay:var(--phase, 0s)}.seaside[data-astro-cid-mpqikseg] .jog{animation:bounce .1s ease-in-out infinite alternate}.seaside[data-astro-cid-mpqikseg] .sweatband{stroke:#e83030;stroke-width:1.6}.seaside[data-astro-cid-mpqikseg] .still .arm,.seaside[data-astro-cid-mpqikseg] .jog.still{animation:none}.seaside[data-astro-cid-mpqikseg] .tail{transform-box:fill-box;transform-origin:100% 100%;animation:wag .3s ease-in-out infinite alternate}.seaside[data-astro-cid-mpqikseg] .wing{transform-box:fill-box;transform-origin:50% 100%;animation:flap .5s ease-in-out infinite alternate}.seaside[data-astro-cid-mpqikseg] .bob{animation:bob 2.4s ease-in-out infinite;animation-delay:var(--phase, 0s)}[data-astro-cid-mpqikseg][data-weather=windy] .lean{rotate:-8deg}.seaside[data-astro-cid-mpqikseg] .still .leg{animation:none}.rope[data-astro-cid-mpqikseg]{stroke:var(--text-muted);stroke-width:.9}.seaside[data-astro-cid-mpqikseg] .halo{fill:var(--glow);stroke:none;opacity:0;transition:opacity 1.5s ease}[data-astro-cid-mpqikseg][data-phase=night] .halo{opacity:.3}[data-astro-cid-mpqikseg][data-phase=night] .screen{fill:var(--glow)}.seaside[data-astro-cid-mpqikseg] .scoop{fill:#f7b6cb}.seaside[data-astro-cid-mpqikseg] .splat{stroke:#ea86a7;stroke-width:1.6}.cruise[data-astro-cid-mpqikseg] .win[data-astro-cid-mpqikseg]{stroke:none;fill:var(--text-muted);opacity:.55}[data-astro-cid-mpqikseg][data-phase=night] .cruise[data-astro-cid-mpqikseg] .win[data-astro-cid-mpqikseg].lit,[data-astro-cid-mpqikseg][data-phase=twilight] .cruise[data-astro-cid-mpqikseg] .win[data-astro-cid-mpqikseg].lit{fill:var(--glow);opacity:1}.cruise[data-astro-cid-mpqikseg] .lifeboat[data-astro-cid-mpqikseg]{fill:#f97a1f;stroke-width:.8}.cruise[data-astro-cid-mpqikseg] .trim[data-astro-cid-mpqikseg]{stroke:#1d64c9;stroke-width:2}.cruise[data-astro-cid-mpqikseg] .funnel[data-astro-cid-mpqikseg]{fill:#fac72e}.cruise[data-astro-cid-mpqikseg] .funnel-band[data-astro-cid-mpqikseg]{stroke:#1d64c9;stroke-width:2.4}.cruise[data-astro-cid-mpqikseg] .slide[data-astro-cid-mpqikseg]{stroke:#19b3e6;stroke-width:1.8}.cruise[data-astro-cid-mpqikseg] .slide[data-astro-cid-mpqikseg].b{stroke:#e7559e}.cruise[data-astro-cid-mpqikseg] .pax[data-astro-cid-mpqikseg]{stroke-width:.8}.cruise[data-astro-cid-mpqikseg] .waving[data-astro-cid-mpqikseg]{transform-box:fill-box;transform-origin:0 100%;animation:wave .5s ease-in-out infinite alternate}.cruise[data-astro-cid-mpqikseg] .dressline[data-astro-cid-mpqikseg]{stroke:var(--text-muted);stroke-width:.6}.cruise[data-astro-cid-mpqikseg] .pennant[data-astro-cid-mpqikseg],.cruise[data-astro-cid-mpqikseg] .bulb[data-astro-cid-mpqikseg]{stroke:none}.cruise[data-astro-cid-mpqikseg] .tricolore[data-astro-cid-mpqikseg]{stroke-width:.5}[data-astro-cid-mpqikseg][data-phase=night] .cruise[data-astro-cid-mpqikseg] .bulb[data-astro-cid-mpqikseg],[data-astro-cid-mpqikseg][data-phase=twilight] .cruise[data-astro-cid-mpqikseg] .bulb[data-astro-cid-mpqikseg]{fill:var(--glow)}.cruise[data-astro-cid-mpqikseg] .shipname[data-astro-cid-mpqikseg]{font:italic 600 4.5px/1 system-ui,sans-serif;letter-spacing:.4px;fill:currentColor;stroke:none}.cruise[data-astro-cid-mpqikseg] .smoke[data-astro-cid-mpqikseg] circle[data-astro-cid-mpqikseg]{fill:var(--bg);stroke:var(--text-muted);animation:smoke 3s ease-out infinite}.cruise[data-astro-cid-mpqikseg] .smoke[data-astro-cid-mpqikseg] circle[data-astro-cid-mpqikseg]+circle[data-astro-cid-mpqikseg]{animation-delay:-1.5s}.tractor[data-astro-cid-mpqikseg]{fill:var(--glow);fill-opacity:.3;stroke:none;opacity:0}.blink[data-astro-cid-mpqikseg]{fill:var(--glow);stroke:none;animation:blink .6s steps(2) infinite}.saucer[data-astro-cid-mpqikseg]{transform-box:fill-box;transform-origin:50% 50%;animation:hover 1.1s ease-in-out infinite alternate}.flash[data-astro-cid-mpqikseg]{fill:var(--glow);stroke:none;opacity:0;animation:flash 1.3s infinite;animation-delay:var(--phase, 0s)}.scream[data-astro-cid-mpqikseg]{font:700 7px/1 system-ui,sans-serif;fill:currentColor;stroke:none}.seaside[data-astro-cid-mpqikseg] .flail{animation:flail .16s ease-in-out infinite alternate}@keyframes wave{0%{rotate:-30deg}to{rotate:40deg}}@keyframes smoke{0%{translate:0 6px;opacity:.8}to{translate:-14px -12px;opacity:0}}@keyframes blink{50%{opacity:.25}}@keyframes hover{0%{rotate:-5deg}to{rotate:5deg;translate:0 -2px}}@keyframes flash{0%,6%{opacity:.95}14%,to{opacity:0}}@keyframes flail{0%{rotate:-14deg}to{rotate:14deg}}@keyframes stride{0%{rotate:40deg}to{rotate:-40deg}}@keyframes pump{0%{rotate:45deg}to{rotate:-45deg}}@keyframes bounce{to{translate:0 -1.3px}}@keyframes step{0%{rotate:22deg}to{rotate:-22deg}}@keyframes wag{to{rotate:30deg}}@keyframes flap{to{scale:1 -.6}}@keyframes bob{50%{translate:0 1.5px}}.seaside[data-astro-cid-mpqikseg][data-paused] *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.seaside[data-astro-cid-mpqikseg] *{animation:none!important}}._footer_ijov6_1{padding-bottom:2rem;margin-top:2rem}._inner_ijov6_7{width:min(100% - 2rem,var(--max));margin:2rem auto 0;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;align-items:flex-start}._brand_ijov6_17{font-weight:600;color:var(--text);text-decoration:none}._brand_ijov6_17:hover{color:var(--accent)}._tagline_ijov6_27{max-width:22rem;font-size:.9rem;color:var(--text-muted);margin:.4rem 0 0}._links_ijov6_34{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}._links_ijov6_34 a{color:var(--text-muted);font-size:.9rem;text-decoration:none}._links_ijov6_34 a:hover{color:var(--text)}._copy_ijov6_50{width:100%;margin-top:.5rem;font-size:.8rem;color:color-mix(in srgb,var(--text-muted) 70%,transparent)}:root{--radius: 10px;--max: 72rem;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0a0a0a;--bg-elevated: #141414;--bg-soft: #111111;--text: #f2f2f2;--text-muted: #a1a1a1;--accent: #f5c35b;--accent-hover: #ffd88a;--accent-dim: #9a7a3c;--border: #262626;--gold: var(--accent);--kind-youtube: #ff5a5f;--kind-blog: #5ec8ff;--kind-x: #f5d76e;--kind-learning: #6ee7a8;--canvas-ink: #ffffff;--canvas-ink-2: #f5c35b;--canvas-multi: #d4d4d4;--canvas-blend: lighter;--sky-star: 255, 255, 255;--sky-base: #141414;--glow: #f5c35b}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-elevated: #ffffff;--bg-soft: #f5f5f5;--text: #0a0a0a;--text-muted: #5c5c5c;--accent: #b45309;--accent-hover: #8a3f06;--accent-dim: #b07a3f;--border: #e5e5e5;--gold: var(--accent);--kind-youtube: #e0313b;--kind-blog: #0a78b8;--kind-x: #b8860b;--kind-learning: #1f9d63;--canvas-ink: #0a0a0a;--canvas-ink-2: #b45309;--canvas-multi: #3d3d3d;--canvas-blend: source-over;--sky-star: 10, 10, 10;--sky-base: #ffffff;--glow: #e39a12}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;transition:color .15s ease,opacity .15s ease}a:hover{color:var(--accent-hover)}img,video,iframe{max-width:100%;display:block}h1,h2,h3,h4{line-height:1.15;letter-spacing:-.03em;font-weight:650}h1{font-size:clamp(2rem,4vw,2.75rem);margin:0 0 .75rem}h2{font-size:clamp(1.35rem,2.5vw,1.75rem);margin:0 0 .75rem}h3{font-size:1.1rem;margin:0 0 .5rem}p{margin:0 0 1rem;color:var(--text-muted)}p:last-child{margin-bottom:0}.container{width:min(100% - 2rem,var(--max));margin-inline:auto}.section{padding:3.5rem 0}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.section-title a{font-size:.9rem;color:var(--text-muted)}.section-title a:hover{color:var(--accent)}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem}.muted{color:var(--text-muted)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.35rem;transition:border-color .15s ease,background .15s ease}.card:hover{border-color:var(--text-muted)}.card-link{display:block;color:inherit;text-decoration:none}.card-link:hover{color:inherit}.card-link h3{color:var(--text)}.card-link:hover h3{color:var(--accent)}.grid-2,.grid-3{display:grid;gap:1.25rem;grid-template-columns:1fr}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.btn:hover{border-color:var(--text-muted);color:var(--text)}.btn-primary{background:var(--text);border-color:var(--text);color:var(--bg)}.btn-primary:hover{background:color-mix(in srgb,var(--text) 82%,var(--bg));border-color:transparent;color:var(--bg)}.tag{display:inline-block;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;margin-right:.35rem}.prose{max-width:42rem}.prose h2,.prose h3{margin-top:2rem;color:var(--text)}.prose p,.prose li{color:var(--text-muted)}.prose ul,.prose ol{padding-left:1.25rem}.prose a{text-decoration:underline;text-underline-offset:3px}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elevated);padding:.1em .35em;border-radius:4px}.site-main{min-height:calc(100dvh - 8rem)}.page-header{padding:3rem 0 1.5rem}.page-header p{max-width:36rem}.meta{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--bg);padding:.5rem 1rem;z-index:100}.skip-link:focus{left:1rem;top:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
