@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.city[data-astro-cid-zo6cikw2]{height:var(--city-h);z-index:5;position:fixed;inset:auto 0 0;overflow:hidden}.city[data-astro-cid-zo6cikw2]:before{content:"";background:var(--sky-paint);background-position:50% 100%;background-repeat:no-repeat;background-size:100% 100vh;position:absolute;inset:0}.city__scene[data-astro-cid-zo6cikw2] .ink-img{filter:saturate(calc(1 - var(--cloud) * .3)) sepia(calc(var(--golden) * (1 - var(--cloud)) * .28)) brightness(calc(1 + var(--golden) * (1 - var(--cloud)) * .04))}[data-fog] .city__scene[data-astro-cid-zo6cikw2] .ink-img{filter:saturate(.55)contrast(.6)brightness(1.12)}.city__track[data-astro-cid-zo6cikw2]{will-change:transform;width:max-content;height:100%;position:relative}.city__scene[data-astro-cid-zo6cikw2]{height:100%;margin:0;position:relative}.city__scene[data-astro-cid-zo6cikw2] .ink-frame{height:100%}.city__place[data-astro-cid-zo6cikw2]{position:absolute;top:20%;bottom:0}.city__name[data-astro-cid-zo6cikw2]{white-space:nowrap;pointer-events:none;color:var(--ink);background:color-mix(in srgb, var(--sky-bottom) 78%, transparent);backdrop-filter:blur(8px);opacity:0;transition:opacity .35s var(--ease), translate .5s var(--ease);border-radius:999px;padding:4px 11px;position:absolute;top:18%;left:50%;translate:-50% 6px}.city__place[data-astro-cid-zo6cikw2]:hover .city__name[data-astro-cid-zo6cikw2]{opacity:1;translate:-50%}@font-face{font-family:Familjen;src:url(/fonts/familjen-400_700-normal.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Familjen;src:url(/fonts/familjen-400_700-normal-ext.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Familjen;src:url(/fonts/familjen-400_700-italic.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Familjen;src:url(/fonts/familjen-400_700-italic-ext.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Familjen Fallback;src:local(Arial),local(Helvetica),local(Liberation Sans);size-adjust:93.68%;ascent-override:108.9%;descent-override:24.6%;line-gap-override:0%}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-500-normal.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--sky-top:#97bde5;--sky-bottom:#e9e4d6;--ink:#0e1320;--muted:#0e1320c2;--line:#0e132033;--glow:.25;--cloud:0;--golden:0;--aurora:0;--wind:1;--sky-paint:radial-gradient(42vmax 42vmax at var(--gx,72%) var(--gy,58%), rgba(255, 238, 205, calc(var(--glow) * (1 - var(--cloud) * .8))), transparent 70%), linear-gradient(180deg, rgba(126, 135, 148, calc(var(--cloud) * (1 - var(--night)) * .55)), rgba(172, 176, 182, calc(var(--cloud) * (1 - var(--night)) * .4))), linear-gradient(180deg, rgba(52, 44, 50, calc(var(--cloud) * var(--night) * .5)), rgba(92, 70, 60, calc(var(--cloud) * var(--night) * .5))), linear-gradient(180deg, rgba(255, 200, 130, calc(var(--golden) * (1 - var(--cloud)) * .12)) 20%, rgba(255, 146, 82, calc(var(--golden) * (1 - var(--cloud)) * .4)) 100%), linear-gradient(180deg, var(--sky-top), var(--sky-bottom));--night:0;--sun:#fff4d6;--moon:#f2ead2;--code-bg:#12161f;--f:"Familjen", "Familjen Fallback", ui-sans-serif, system-ui, sans-serif;--mono:"Plex Mono", ui-monospace, "SF Mono", monospace;--t-mega:clamp(4.2rem, .6rem + 15.5vw, 17rem);--t-xl:clamp(2.4rem, 1.2rem + 4.6vw, 5.4rem);--t-l:clamp(1.9rem, 1.3rem + 2.6vw, 3.6rem);--t-m:clamp(1.3rem, 1.08rem + .9vw, 1.9rem);--t-body:1rem;--t-s:.875rem;--t-xs:.8125rem;--gutter:clamp(16px, 3vw, 32px);--measure:38rem;--col:36rem;--city-h:clamp(140px, 25svh, 290px);--ease:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0)}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{background:var(--sky-bottom);color:var(--ink);-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{font-family:var(--f);font-size:var(--t-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100svh;line-height:1.55}img,svg,canvas{max-width:100%;display:block}a{color:inherit}::selection{background:var(--ink);color:var(--sky-bottom)}:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}.mono{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.01em;font-variant-numeric:tabular-nums}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--ink);color:var(--sky-bottom);transition:top .3s var(--ease);padding:10px 14px;text-decoration:none;position:fixed;top:-60px;left:12px}.skip-link:focus{top:12px}.sky{z-index:-2;background:var(--sky-paint);height:100vh;position:fixed;inset:0 0 auto;overflow:hidden}.sky:after{content:none;pointer-events:none;position:absolute;inset:-100% -10% 0}:root[data-fall=rain] .sky:after{content:"";rotate:calc(3deg + var(--wind) * 6deg);background:linear-gradient(#0000 72%,#cdd6e452 72%) 0 0/100% 58px,linear-gradient(#0000 80%,#cdd6e438 80%) 0 17px/100% 83px;mask:repeating-linear-gradient(90deg,#000 0 1px,#0000 1px 29px),repeating-linear-gradient(90deg,#0000 0 13px,#000 13px 14px,#0000 14px 41px)}:root[data-fall=snow] .sky:after{content:"";background:radial-gradient(circle,#ffffffb3 0 1.6px,#0000 2.4px) 0 0/64px 64px,radial-gradient(circle,#ffffff73 0 1.1px,#0000 1.8px) 23px 31px/41px 47px}.motion[data-fall=rain] .sky:after{animation:.9s linear infinite fall}.motion[data-fall=snow] .sky:after{animation:26s linear infinite fall}@keyframes fall{0%{translate:0}to{translate:0 50%}}.sky:before{content:"";pointer-events:none;opacity:calc(var(--aurora) * var(--night));filter:blur(7px);background:radial-gradient(60% 40% at 30% 62%,#5affaa6b,#0000 70%),radial-gradient(50% 35% at 66% 48%,#6effc852,#0000 70%),radial-gradient(40% 30% at 86% 66%,#aa78ff33,#0000 70%);position:absolute;inset:-10% -20% 40%;mask:repeating-linear-gradient(93deg,#000000f2 0,#00000059 7px,#000c 11px,#00000026 23px,#0009 31px,#0000004d 47px,#000000f2 53px)}.motion .sky:before{animation:24s ease-in-out infinite alternate aurora}@keyframes aurora{0%{translate:-4%;scale:1}to{translate:4% -3%;scale:1.08 1.15}}main{transition:opacity .38s var(--ease), translate .6s var(--ease)}html.is-leaving main{opacity:0;transition:opacity .3s var(--ease-in), translate .3s var(--ease-in);translate:0 -14px}html.is-entering main{opacity:0;transition:none;translate:0 18px}@media (height<=720px){:root{--city-h:clamp(120px, 21svh, 290px)}}.corner{z-index:30;padding:16px var(--gutter);position:absolute;top:0;left:0}.clock{font-family:var(--mono);font-size:var(--t-xs);line-height:1.45;text-decoration:none;display:grid}.clock__top{align-items:baseline;gap:10px;display:flex}.clock__top b{letter-spacing:-.02em;font-size:1.6rem;font-weight:500;line-height:1.15}.clock__top [data-greeting]{font-family:var(--f);letter-spacing:-.01em;font-size:1.05rem;font-weight:600}.clock__sky,.clock__weather{color:var(--muted)}.clock__weather:empty{display:none}.clock__mirror{color:var(--muted);opacity:0;max-height:0;transition:max-height .5s var(--ease), opacity .4s;overflow:hidden}.clock:hover .clock__mirror:not(:empty),.clock:focus-visible .clock__mirror:not(:empty){opacity:1;max-height:1.5em}.clock__name{transition:background-size .6s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;justify-self:start}.clock:hover .clock__name,.clock:focus-visible .clock__name{background-size:100% 1px}main{padding-bottom:calc(var(--city-h) + 24px);min-height:100svh}.sound{top:16px;right:var(--gutter);z-index:30;font:400 var(--t-xs) var(--mono);color:var(--ink);background:color-mix(in srgb, var(--sky-bottom) 45%, transparent);border:1px solid var(--line);cursor:pointer;backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 10px;transition:background-color .3s,border-color .3s;display:inline-flex;position:absolute}.sound:hover{border-color:var(--ink)}.sound__bars{align-items:flex-end;gap:2px;height:11px;display:inline-flex}.sound__bars i{width:2px;height:3px;transition:height .3s var(--ease);background:currentColor;border-radius:1px}.sound[aria-pressed=true] .sound__bars i{animation:.9s ease-in-out infinite alternate bars}.sound[aria-pressed=true] .sound__bars i:nth-child(2){animation-delay:-.3s}.sound[aria-pressed=true] .sound__bars i:nth-child(3){animation-delay:-.6s}.sound[aria-pressed=true] .sound__bars i:nth-child(4){animation-delay:-.15s}@keyframes bars{0%{height:3px}to{height:11px}}@media (prefers-reduced-motion:reduce){.sound[aria-pressed=true] .sound__bars i{height:8px;animation:none}}.col{max-width:calc(var(--col) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.label{font-family:var(--mono);font-size:var(--t-xs);color:var(--muted)}.arrow-link{align-items:baseline;gap:.5em;font-weight:500;text-decoration:none;display:inline-flex}.arrow-link .ar{transition:translate .6s var(--ease);display:inline-block}.arrow-link .tx{transition:background-size .6s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:1px}.arrow-link:hover .ar,.arrow-link:focus-visible .ar{translate:.35em}.ink-scene figcaption{max-width:calc(var(--col) + 2 * var(--gutter));padding:10px var(--gutter) 0;color:var(--muted);margin-inline:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.me__about a,.prose a,.post__end a{text-underline-offset:3px;transition:text-underline-offset .45s var(--ease), text-decoration-thickness .45s var(--ease);text-decoration-thickness:1px}.me__about a:hover,.prose a:hover,.post__end a:hover{text-underline-offset:6px;text-decoration-thickness:2px}.foot__links a{text-underline-offset:4px;padding-block:2px;text-decoration-thickness:1px}.ink-frame{height:clamp(230px,27.5vw,470px);position:relative;overflow:hidden}.ink-img{object-fit:cover;object-position:center bottom;opacity:0;width:100%;height:100%;transition:opacity .9s var(--ease);position:absolute;inset:0}.ink-img.is-on{opacity:1}.ink-moon{width:100%;height:100%;opacity:var(--night);transition:opacity .9s;position:absolute;inset:0}.ink-moon__disc{fill:#f2ead21f;stroke:#f2ead280;stroke-width:1px;vector-effect:non-scaling-stroke}.ink-moon__lit{fill:#f2ead2}.ink-moon[data-off]{display:none}.ink-sprites{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.ink-sprites[data-off]{display:none}.ink-sprites :where(path,rect,line,polygon,polyline,circle,ellipse){fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.ink-sprites .l{stroke:var(--ink);stroke-width:1.35px}.ink-sprites .d{stroke:var(--ink);stroke-width:.95px}.ink-sprites .h{stroke:var(--ink);stroke-width:.6px;stroke-opacity:.7}.ink-sprites .p{fill:var(--paper)}.ink-sprites .p2{fill:var(--paper-2)}.ink-sprites .g{fill:var(--glass)}.ink-sprites .lit{fill:#ffcf86;stroke:none;opacity:var(--night)}.ink-sprites .smoke{stroke-opacity:.4}.ink-sprites .w-red{fill:color-mix(in srgb, #b8432f calc(var(--wash) * 100%), var(--paper))}.ink-sprites .w-cream{fill:color-mix(in srgb, #efe0bf calc(var(--wash) * 100%), var(--paper))}.ink-sprites .w-hull{fill:color-mix(in srgb, #f4f1ea calc(var(--wash) * 100%), var(--paper))}.ink-sprites .w-copper{fill:color-mix(in srgb, #7ea897 calc(var(--wash) * 100%), var(--paper))}.ink-sprites .w-gold{fill:color-mix(in srgb, #d9ae45 calc(var(--wash) * 100%), var(--paper))}.ink-sprites .w-dark{fill:color-mix(in srgb, #2d3340 calc(var(--wash) * 100%), var(--paper-2))}@keyframes drop-in{0%{opacity:0;translate:0 -10px}}@keyframes rise-in{0%{opacity:0;translate:0 16px}}@keyframes city-in{0%{opacity:0;translate:0 48px}}.motion .clock>*,.motion .sound{animation:drop-in .9s var(--ease) both}.motion .clock>:nth-child(2){animation-delay:.1s}.motion .clock>:nth-child(3){animation-delay:.2s}.motion .clock__top [data-greeting]{animation:drop-in .9s var(--ease) .35s both;display:inline-block}.motion :is(.me>*,.post>*,.writing>*,.lost>*){animation:rise-in 1s var(--ease) both;animation-delay:calc(.7s + var(--i,0) * 80ms)}:is(.me,.post,.writing,.lost)>:nth-child(2){--i:1}:is(.me,.post,.writing,.lost)>:nth-child(3){--i:2}:is(.me,.post,.writing,.lost)>:nth-child(4){--i:3}:is(.me,.post,.writing,.lost)>:nth-child(n+5){--i:4}.block{--i:5}.block+.block{--i:6}.foot{--i:7}.motion .city{animation:city-in 1.6s var(--ease) .9s both}:root{--acc:color-mix(in srgb, #ff9a5c calc(var(--night) * 100%), #c4502a);--acc-fill:color-mix(in srgb, var(--acc) 24%, var(--paper,#f4f1ea))}.dg{--w:min(720px, calc(100vw - 2 * var(--gutter)));width:var(--w);margin:2.4em 0 2.4em calc((100% - var(--w)) / 2)}.dg svg{border-top:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background-image:radial-gradient(circle, color-mix(in srgb, var(--ink) 15%, transparent) .8px, transparent 1.2px);background-size:16px 16px;width:100%;height:auto;display:block;overflow:visible}.dg figcaption{font:400 var(--t-xs) var(--mono);color:var(--muted);margin-top:10px}.dg-n{color:var(--ink);margin-right:10px}.dg .lb{font:500 10.5px var(--mono);letter-spacing:.07em;fill:var(--ink)}.dg .lb.small{fill:var(--muted);font-weight:400}.dg .lb.head{letter-spacing:.1em}.dg .lb.ac{fill:var(--acc)}.dg .ln{stroke:var(--ink);stroke-width:1.3px}.dg .hl{stroke:var(--ink);stroke-width:.8px;opacity:.55}.dg .dash{stroke-dasharray:4 4}.dg .box{fill:var(--paper,#f4f1ea);stroke:var(--ink);stroke-width:1.1px}.dg .side{fill:var(--paper-2,#dcd6ca);stroke:var(--ink);stroke-width:1.1px}.dg .hatch{stroke:var(--ink);stroke-width:1.1px}.dg .gone{fill:none;stroke:var(--ink);stroke-width:1px;stroke-dasharray:3 3;opacity:.7}.dg .ac-box{fill:var(--acc-fill);stroke:var(--acc);stroke-width:1.4px}.dg .ac-side{fill:var(--acc);stroke:var(--acc);stroke-width:1.1px}.dg .ac-ln{stroke:var(--acc);stroke-width:1.6px}.dg .dg-draw:not(.dash),.dg .dg-trail{stroke-dasharray:1}.dg .dg-work{fill:var(--acc);opacity:.22}.dg .dg-me{fill:var(--acc);stroke:var(--paper,#f4f1ea);stroke-width:2px}
