:root{color-scheme:light dark;--surface:light-dark(#fcfcfb,#1a1a19);--surface-raised:light-dark(#f4f3f0,#24241f);--surface-sunken:light-dark(#eeece8,#121211);--ink:light-dark(#14140f,#f0efe9);--ink-secondary:light-dark(#45443c,#bebcb3);--ink-muted:light-dark(#6e6d63,#8b8981);--ink-inverse:light-dark(#fcfcfb,#14140f);--rule:light-dark(#d9d7d0,#35342f);--rule-strong:light-dark(#b4b2a8,#4f4e47);--seq-0:light-dark(#f2f1ed,#262521);--seq-1:light-dark(#d5d3cc,#43423b);--seq-2:light-dark(#a9a69c,#66645b);--seq-3:light-dark(#7b786e,#94928a);--seq-4:light-dark(#4a4841,#bfbdb3);--seq-5:light-dark(#1f1e1a,#f0efe9);--seq-null:light-dark(#e8e6e1,#2b2a26);--notice-bg:light-dark(#fdf6dd,#2c2718);--notice-border:light-dark(#dcc471,#635730);--notice-ink:light-dark(#4a3f14,#e8dcae);--font-body:var(--font-serif), Georgia, serif;--font-ui:var(--font-sans), system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--leading-tight:1.2;--leading-normal:1.65;--measure:68ch;--measure-wide:1080px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:var(--rule-strong)}a:hover{text-decoration-color:currentColor}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-tight);text-wrap:balance}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--rule);block-size:2.25rem;inline-size:2.25rem;color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:2px;place-items:center;padding:0;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--ink);border-color:var(--rule-strong)}.icon[data-astro-cid-l6lhmie6]{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;grid-area:1/1;block-size:1.1rem;inline-size:1.1rem}.icon-moon[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=dark] .icon-moon[data-astro-cid-l6lhmie6]{display:block}:root[data-theme=dark] .icon-sun[data-astro-cid-l6lhmie6]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-moon[data-astro-cid-l6lhmie6]{display:block}:root:not([data-theme=light]) .icon-sun[data-astro-cid-l6lhmie6]{display:none}}.panorama{--land-h:max(120px, min(150px, 11vw), 100vw / 14);isolation:isolate;background:linear-gradient(light-dark(#86c5ec,#0b1730),light-dark(#d6effa,#2a4069));padding-block-end:var(--land-h);position:relative;overflow:hidden}.pano-scene{z-index:-1;pointer-events:none;position:absolute;inset:0}.pano-scene>*{position:absolute}.pano-scene svg{max-width:none}.pano-stars{width:100%;height:100%;inset:0}.pano-sun{width:clamp(40px,4.5vw,58px);top:8px;left:max(50% - 3rem,11rem)}.pano-cloud,.pano-gull{left:var(--x);top:var(--y);width:var(--w);animation:pano-drift var(--d) linear infinite}@media (width<=40rem){.pano-cloud{width:calc(var(--w) * .6)}.pano-stars circle:nth-child(2n){display:none}}.pano-gull{animation-name:pano-fly}.pano-track{height:var(--land-h);will-change:transform;animation:150s linear infinite pano-pan;bottom:0;left:0}.pano-far{animation-duration:330s}.pano-track>svg{height:100%;width:calc(var(--land-h) * 28);display:block}.panorama .star{fill:light-dark(#0000,#fff6d5)}.panorama .sun{fill:light-dark(#ffd23f,#0000)}.panorama .sun-ray{stroke:light-dark(#ffd23f,#0000);stroke-width:3px;stroke-linecap:round}.panorama .moon{fill:light-dark(#0000,#f1ecd0)}.panorama .cloud{fill:light-dark(#fff,#34466b)}.panorama .cloud-shade{fill:light-dark(#d9e8f3,#27375a)}.pano-gull path{fill:none;stroke:light-dark(#3b4048,#9aa6bb);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.panorama .far-high{fill:light-dark(#b9dac9,#1a2c46)}.panorama .far-low{fill:light-dark(#a0cfa6,#1a3440)}.panorama .hill-back{fill:light-dark(#8cc97a,#1b4030)}.panorama .hill{fill:light-dark(#62ad55,#17392a)}.panorama .field{fill:none;stroke:light-dark(#72b862,#1a3f2e);stroke-width:9px}.panorama .hedge,.panorama .grass-edge{fill:none;stroke:light-dark(#3f8a3c,#0f2a1c);stroke-width:1.5px;stroke-linecap:round}.panorama .grass-edge{stroke:light-dark(#62ad55,#17392a);stroke-width:3px}.panorama .tree{fill:light-dark(#3f8f45,#123424)}.panorama .tree-light{fill:light-dark(#5aac5a,#184330)}.panorama .trunk{fill:light-dark(#7a5536,#3b2a1e)}.panorama .wool{fill:light-dark(#fbfaf5,#b8bcc6)}.panorama .face{fill:light-dark(#2d2b28,#0d0d10)}.panorama .legs{stroke:light-dark(#2d2b28,#0d0d10);stroke-width:1.1px}.panorama .sea{fill:light-dark(#4aa3d8,#12305a)}.panorama .sea-top{fill:light-dark(#7cc3ea,#1d4677)}.panorama .glint{fill:none;stroke:light-dark(#fff,#8fb3e0);stroke-width:1.4px;stroke-linecap:round}.panorama .sand{fill:light-dark(#efd79c,#5b5036)}.panorama .rock{fill:light-dark(#c9b597,#4b4640)}.panorama .rock-facet{fill:light-dark(#b8a283,#413c37)}.panorama .rock-line{fill:none;stroke:light-dark(#b8a283,#413c37);stroke-width:2px;stroke-linecap:round}.panorama .slate{fill:light-dark(#5f6674,#2a2e38)}.panorama .win{fill:light-dark(#44596b,#ffd66e)}.panorama .win.dim{fill:light-dark(#44596b,#2c3444)}.panorama .door{fill:light-dark(#6b4a32,#2a2019)}.panorama .h-pink{fill:light-dark(#f4a9bb,#6e4a57)}.panorama .h-yellow{fill:light-dark(#f6d56f,#6d6038)}.panorama .h-blue{fill:light-dark(#9fd0ea,#3c5b6e)}.panorama .h-mint{fill:light-dark(#a6dcc0,#3d6153)}.panorama .h-cream{fill:light-dark(#f6e7c6,#6a6150)}.panorama .h-lilac{fill:light-dark(#c9b5e2,#54486b)}.panorama .h-peach{fill:light-dark(#f6bd92,#6c5040)}.panorama .cottage{fill:light-dark(#fbfaf6,#9da2ad)}.panorama .chapel{fill:light-dark(#d8d2c4,#56565e)}.panorama .smoke{fill:light-dark(#fff,#6b7488)}.panorama .stone{fill:light-dark(#bdb6a8,#5d5c64)}.panorama .stone-shade{fill:light-dark(#a39b8c,#4b4a52)}.panorama .stone-deep{fill:light-dark(#8e877a,#403f46)}.panorama .stone-dark{fill:light-dark(#57524a,#1c1c22)}.panorama .course,.panorama .portcullis{fill:none;stroke:light-dark(#a39b8c,#4b4a52);stroke-width:1.2px}.panorama .portcullis{stroke:light-dark(#8a8274,#3a3940)}.panorama .pole{fill:none;stroke:light-dark(#3b3a36,#8b8f99);stroke-width:1.2px}.panorama .flag-white{fill:light-dark(#fff,#c9cbd1)}.panorama .flag-green{fill:light-dark(#2f9e4a,#1f6031)}.panorama .flag-red{fill:light-dark(#d52b2b,#a02828)}.panorama .brick{fill:light-dark(#c2462d,#6d2a21)}.panorama .brick-shade{fill:light-dark(#a33a25,#57221b)}.panorama .brick-trim{fill:light-dark(#e8b48c,#8b5a44)}.panorama .clock{fill:light-dark(#fbf5e3,#ffe7a3)}.panorama .clock-hands{fill:none;stroke:light-dark(#2d2b28,#3a3020);stroke-width:1.2px;stroke-linecap:round}.panorama .plinth{fill:light-dark(#4f5560,#26292f)}.panorama .plinth-step{fill:none;stroke:light-dark(#6c7582,#363a42);stroke-width:1px}.panorama .glass{fill:light-dark(#bfe3f2,#c9a95a)}.panorama .glass-line{fill:none;stroke:light-dark(#8fc3da,#9c7f3f);stroke-width:1px}.panorama .wood{fill:light-dark(#c08a52,#7a5530)}.panorama .wood.inside{opacity:.7}.panorama .steel-roof{fill:light-dark(#aab3bc,#4a5160)}.panorama .quay{fill:light-dark(#b7b2a7,#45454d)}.panorama .quay-top{fill:light-dark(#d9d4c9,#5b5b63)}.panorama .quay-joint{fill:none;stroke:light-dark(#a19b8f,#3a3a41);stroke-width:1px}.panorama .road{fill:light-dark(#8d8f94,#3c3e45)}.panorama .steel,.panorama .steel-leg,.panorama .cable,.panorama .hanger{fill:none;stroke:light-dark(#56779a,#7d93ad);stroke-width:1.1px;stroke-linejoin:round}.panorama .steel-leg{stroke-width:2.6px}.panorama .cable{stroke:light-dark(#3f5d7c,#6c819a);stroke-width:1px}.panorama .hanger{stroke:light-dark(#3f5d7c,#6c819a);stroke-width:.8px}.panorama .deck{fill:light-dark(#3c4f63,#6c7f95)}.panorama .car{fill:light-dark(#d9443a,#b0453b)}.panorama .hull-red{fill:light-dark(#d9443a,#7a2e29)}.panorama .hull-blue{fill:light-dark(#2f6fb0,#22436a)}.panorama .hull-yellow{fill:light-dark(#f2c230,#6e5b22)}.panorama .white,.panorama .sail{fill:light-dark(#fff,#c8ccd4)}@keyframes pano-pan{to{transform:translate(-50%)}}@keyframes pano-drift{0%{transform:translateX(calc(100vw - var(--x)))}to{transform:translateX(calc(-1 * var(--x) - 100%))}}@keyframes pano-fly{0%{transform:translateX(calc(-1 * var(--x) - 100%))}to{transform:translateX(calc(100vw - var(--x)))}}.pano-gull path{transform-box:fill-box;transform-origin:50% 90%;animation:.45s ease-in-out infinite alternate pano-flap}@keyframes pano-flap{to{transform:scaleY(.35)}}.pano-rays{transform-origin:32px 32px;animation:80s linear infinite pano-spin}@keyframes pano-spin{to{transform:rotate(1turn)}}.pano-twinkle{animation:2.8s ease-in-out infinite alternate pano-twinkle}.pano-twinkle:nth-child(3n){animation-delay:-1.4s}@keyframes pano-twinkle{to{opacity:.25}}.pano-bob{transform-box:fill-box;transform-origin:50% 100%;animation:4s ease-in-out infinite alternate pano-bob}@keyframes pano-bob{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)translateY(1px)}}.pano-flag{transform-box:fill-box;transform-origin:0;animation:1.4s ease-in-out infinite alternate pano-wave}@keyframes pano-wave{0%{transform:skewY(-6deg)}to{transform:skewY(5deg)scaleX(.94)}}.pano-cowl{transform-box:fill-box;transform-origin:50%;animation:26s ease-in-out infinite pano-cowl}@keyframes pano-cowl{0%,40%{transform:scaleX(1)}50%,90%{transform:scaleX(-1)}}.pano-gondola{animation:30s ease-in-out infinite pano-ferry}@keyframes pano-ferry{0%,12%{transform:none}42%,62%{transform:translate(216px)}92%,to{transform:none}}.pano-glint{animation:2.6s ease-in-out infinite alternate pano-shimmer}@keyframes pano-shimmer{0%{opacity:.15}to{opacity:.85}}.pano-smoke circle{transform-box:fill-box;transform-origin:50%;opacity:0;animation:6s ease-out infinite pano-smoke}.pano-smoke circle:nth-child(2){animation-delay:-2s}.pano-smoke circle:nth-child(3){animation-delay:-4s}@keyframes pano-smoke{0%{opacity:.8;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(7px,-16px)scale(1.8)}}.pano-toggle{z-index:1;right:max(var(--space-4), (100% - var(--measure-wide)) / 2 + var(--space-6));bottom:var(--space-2);border:1px solid var(--rule);background:color-mix(in srgb, var(--surface) 80%, transparent);block-size:1.75rem;inline-size:1.75rem;color:var(--ink-secondary);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.pano-toggle:hover{color:var(--ink);border-color:var(--rule-strong)}.pano-toggle svg{fill:currentColor;block-size:.7rem;inline-size:.7rem}.pano-toggle .icon-play,:root[data-motion=paused] .pano-toggle .icon-pause{display:none}:root[data-motion=paused] .pano-toggle .icon-play{display:inline}:root[data-motion=paused] .pano-scene,:root[data-motion=paused] .pano-scene *,.panorama[data-offscreen] .pano-scene,.panorama[data-offscreen] .pano-scene *{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.pano-scene *{animation:none!important}.pano-toggle{display:none}}@media print{.pano-scene,.pano-toggle{display:none}.panorama{background:0 0;padding-block-end:0}}.inner[data-astro-cid-nen7h5rs]{max-inline-size:var(--measure-wide);padding:var(--space-4) var(--space-6);align-items:center;gap:var(--space-6);margin-inline:auto;display:flex}.wordmark[data-astro-cid-nen7h5rs]{font-family:var(--font-ui);font-weight:600;font-size:var(--text-base);letter-spacing:-.01em;margin-inline-end:auto;text-decoration:none}nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:var(--space-4);font-family:var(--font-ui);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink-secondary);text-decoration:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--ink);text-underline-offset:.18em;text-decoration:underline}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink);text-underline-offset:.18em;text-decoration:underline 1.5px}@media (width<=34rem){.inner[data-astro-cid-nen7h5rs]{gap:var(--space-3);flex-wrap:wrap}nav[data-astro-cid-nen7h5rs]{order:3;inline-size:100%}}.social[data-astro-cid-y2qsmizv]{gap:var(--space-4);font-family:var(--font-ui);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-y2qsmizv]{align-items:center;gap:var(--space-2);color:var(--ink-secondary);text-decoration:none;display:inline-flex}a[data-astro-cid-y2qsmizv]:hover{color:var(--ink);text-underline-offset:.18em;text-decoration:underline}svg[data-astro-cid-y2qsmizv]{fill:currentColor;block-size:.95rem;inline-size:.95rem}.site-footer[data-astro-cid-jo6i4kqk]{border-block-start:1px solid var(--rule);margin-block-start:var(--space-16)}.inner[data-astro-cid-jo6i4kqk]{max-inline-size:var(--measure-wide);padding:var(--space-6);align-items:center;gap:var(--space-6);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--ink-muted);flex-wrap:wrap;margin-inline:auto;display:flex}.copyright[data-astro-cid-jo6i4kqk]{margin-inline-end:auto}.feed[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-secondary);text-decoration:none}.feed[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink);text-decoration:underline}.main[data-astro-cid-z4jru4n3]{max-inline-size:var(--measure-wide);padding:var(--space-12) var(--space-6);margin-inline:auto}.skip-link[data-astro-cid-z4jru4n3]{background:var(--surface);color:var(--ink);padding:var(--space-3) var(--space-4);font-family:var(--font-ui);font-size:var(--text-sm);z-index:10;position:absolute;inset-block-start:0;inset-inline-start:-9999px}.skip-link[data-astro-cid-z4jru4n3]:focus{inset-block-start:var(--space-4);inset-inline-start:var(--space-4)}
