:root{--font-display: "Instrument Serif", "Times New Roman", Times, serif;--font-body: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--border-w: 2px;--radius-row: 2px;--radius-box: 6px;--radius-bar: 8px;--shadow-box: 3px 3px 0 var(--shadow-color);--shadow-row: 2px 2px 0 var(--shadow-color);--shadow-hover: 5px 5px 0 var(--shadow-color);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light;--sky-top: #c7ddf1;--sky-bottom: #e9f2fa;--cloud: #ffffff;--bg: #dce9f6;--card: #fbfaf4;--field: #ffffff;--ink: #2a2b33;--ink-soft: #5d5f6b;--accent: #a1a3ca;--accent-soft: #c7c5d1;--accent-muted: #636592;--berry: #e8506a;--line: var(--ink);--shadow-color: rgba(42, 43, 51, .3)}:root[data-theme=paper] .window-bar{background:color-mix(in oklab,var(--accent) 22%,var(--card))}:root[data-theme=paper] .eyebrow{color:var(--accent-muted)}:root[data-theme=paper] .kit-btn:hover,:root[data-theme=paper] .kit-chip:hover{background:color-mix(in oklab,var(--sky-top) 45%,var(--field))}:root[data-theme=star]{color-scheme:dark;--sky-top: #060a16;--sky-bottom: #101831;--cloud: #1a2340;--bg: #0a0f20;--card: #0f1424;--field: #141a30;--ink: #eef0f6;--ink-soft: #a9b0c4;--accent: #b9c4d9;--accent-soft: #dfe6f2;--accent-muted: #96a2bd;--berry: #e9edf7;--line: #2c3452;--shadow-color: rgba(0, 0, 0, .5);--halo-a: rgba(150, 195, 255, .4);--halo-b: rgba(90, 150, 255, .28);--halo-c: rgba(60, 120, 240, .16)}:root{--ink-85: color-mix(in oklab, var(--ink) 85%, transparent);--ink-70: color-mix(in oklab, var(--ink) 70%, transparent);--ink-55: color-mix(in oklab, var(--ink) 55%, transparent);--ink-35: color-mix(in oklab, var(--ink) 35%, transparent);--ink-18: color-mix(in oklab, var(--ink) 18%, transparent);--ink-08: color-mix(in oklab, var(--ink) 8%, transparent)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font-body);font-size:17px;line-height:1.7;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .6s var(--ease-out),color .6s var(--ease-out)}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none;transition:color .2s var(--ease-out)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.01em;margin:0 0 .5em;color:var(--ink)}p{margin:0 0 1em}code,pre{font-family:var(--font-mono);font-size:.88em}::selection{background:var(--accent-soft);color:#2a2b33}:focus-visible{outline:var(--border-w) solid var(--ink);outline-offset:2px}.eyebrow{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-55);margin:0 0 1.6rem}.lede{color:var(--ink-70)}.link{color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:1px;transition:background .2s,border-color .2s}.link:hover{background:color-mix(in oklab,var(--accent) 30%,transparent)}.ph-slot{color:var(--accent-muted);font-style:italic}.window{background:var(--card);border:var(--border-w) solid var(--line);border-radius:var(--radius-box);box-shadow:var(--shadow-box)}.window-bar{display:flex;align-items:center;gap:.6rem;padding:.4rem .55rem .4rem .8rem;border-bottom:var(--border-w) solid var(--line);font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;color:var(--ink-70)}.window-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-x{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border:var(--border-w) solid var(--line);border-radius:2px;font-size:.6rem;line-height:1;color:var(--ink);background:var(--field);flex-shrink:0}a.window-x:hover,button.window-x:hover{background:var(--accent);cursor:pointer}.window-body{padding:1.1rem 1.2rem}.kit-btn{appearance:none;display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--field);border:var(--border-w) solid var(--line);border-radius:var(--radius-box);box-shadow:var(--shadow-row);padding:.55em 1.1em;cursor:pointer;transition:background .15s,transform .06s,box-shadow .06s}.kit-btn:hover{background:var(--card)}.kit-btn:active{transform:translate(2px,2px);box-shadow:none}.kit-btn.primary{background:var(--accent);color:#2a2b33}.kit-btn.primary:hover{background:var(--accent-soft)}.kit-chip{appearance:none;display:inline-flex;align-items:baseline;gap:.45em;font-family:var(--font-mono);font-size:.74rem;font-weight:500;color:var(--ink);background:var(--field);border:var(--border-w) solid var(--line);border-radius:999px;padding:.32em .95em;cursor:pointer;transition:background .15s,color .15s}.kit-chip:hover{background:var(--card)}.kit-chip[aria-pressed=true],.kit-chip[aria-selected=true]{background:var(--ink);color:var(--card)}.kit-input{font-family:var(--font-mono);font-size:.85rem;color:var(--ink);background:var(--field);border:var(--border-w) solid var(--line);border-radius:var(--radius-box);padding:.55em .9em}.kit-input::placeholder{color:var(--ink-35)}.kit-input:focus{outline:none;border-color:var(--accent-muted)}.theme-switch{display:inline-flex;border:var(--border-w) solid var(--line);border-radius:var(--radius-row);background:var(--field);box-shadow:var(--shadow-row);overflow:hidden}.theme-set{appearance:none;background:none;border:none;width:26px;height:24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-55);transition:background .15s,color .15s}.theme-set+.theme-set{border-left:var(--border-w) solid var(--line)}.theme-set:hover{background:var(--accent);color:#2a2b33}:root[data-theme=star] .theme-set[data-set-theme=star],:root[data-theme=paper] .theme-set[data-set-theme=paper]{background:var(--ink);color:var(--card)}:root[data-theme=paper] body{cursor:url(/cursors/pixel-arrow.png) 0 0,default}:root[data-theme=paper] :is(a,button,[role=button],select,summary){cursor:url(/cursors/pixel-hand.png) 7 0,pointer}:root.theme-vt::view-transition-old(root),:root.theme-vt::view-transition-new(root){animation:none;mix-blend-mode:normal}:root.theme-vt::view-transition-new(root){clip-path:circle(0 at var(--reveal-x, 50%) var(--reveal-y, 50%));animation:theme-reveal .7s var(--ease-out) forwards}@keyframes theme-reveal{to{clip-path:circle(150% at var(--reveal-x, 50%) var(--reveal-y, 50%))}}.topnav{position:relative;z-index:5;max-width:980px;margin:0 auto;padding:1.6rem 1.5rem 0;display:flex;justify-content:space-between;align-items:center}.topnav .brand{font-family:var(--font-display);font-size:1.05rem;letter-spacing:-.01em;color:var(--ink)}.topnav .brand:hover{color:var(--accent-muted)}.topnav ul{display:flex;gap:1.3rem;list-style:none;margin:0;padding:0;align-items:center;font-family:var(--font-mono);font-size:.74rem;font-weight:500;color:var(--ink-55)}.topnav ul a{padding-bottom:1px;border-bottom:2px solid transparent}.topnav ul a:hover{color:var(--ink);border-bottom-color:var(--accent)}.topnav ul a[aria-current=page]{color:var(--ink);border-bottom-color:var(--line)}main{position:relative;z-index:2;min-height:70vh}footer{position:relative;z-index:2;max-width:980px;margin:6rem auto 0;padding:1.6rem 1.5rem 3rem;color:var(--ink-55);font-family:var(--font-mono);font-size:.74rem;border-top:var(--border-w) solid var(--ink-18)}footer a{color:var(--ink-70);border-bottom:1px solid var(--ink-18)}footer a:hover{color:var(--ink);border-bottom-color:var(--accent-muted)}footer p{margin:0 0 .5em}@media(max-width:540px){.topnav{flex-wrap:wrap;row-gap:.5rem}.topnav ul{gap:.9rem;font-size:.68rem;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}#sky-canvas[data-astro-cid-auaa2bkf]{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}:root[data-theme=star] body.has-cursor{cursor:none}:root[data-theme=star] body.has-cursor :is(a,button,[role=button],input,textarea,select){cursor:none}:root:not([data-theme=star]) #cursor-root{display:none!important}@media(prefers-reduced-motion:reduce),(hover:none){body.has-cursor,body.has-cursor *{cursor:auto!important}#cursor-root{display:none!important}}#cursor-root[data-astro-cid-3mtsmdvv]{position:fixed;inset:0;pointer-events:none;z-index:9998}.cursor-star[data-astro-cid-3mtsmdvv],.cursor-trail[data-astro-cid-3mtsmdvv]{position:absolute;top:0;left:0;pointer-events:none;will-change:transform;transform:translate3d(-100px,-100px,0)}.cursor-star[data-astro-cid-3mtsmdvv]{width:18px;height:18px;margin:-9px 0 0 -9px;fill:var(--ink);filter:drop-shadow(0 0 5px var(--halo-a)) drop-shadow(0 0 14px var(--halo-c));z-index:2}.cursor-trail[data-astro-cid-3mtsmdvv]{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:var(--ink);border-radius:50%}.cursor-trail[data-astro-cid-3mtsmdvv].is-spark{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;background:none;border-radius:0;fill:var(--ink)}.burst-template[data-astro-cid-3mtsmdvv]{display:none}#cursor-root[data-astro-cid-3mtsmdvv] .burst-star{position:absolute;top:0;left:0;width:10px;height:10px;margin:-5px 0 0 -5px;fill:#f7f1e3;filter:drop-shadow(0 0 6px var(--halo-b));pointer-events:none;animation:burst-fly .55s var(--ease-out) forwards}@keyframes burst-fly{0%{opacity:1;transform:translate3d(var(--bx),var(--by),0) scale(1) rotate(0)}to{opacity:0;transform:translate3d(calc(var(--bx) + var(--dx)),calc(var(--by) + var(--dy)),0) scale(.15) rotate(90deg)}}
