:root{--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;--space-24: 6rem;--font-sans: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.5rem;--color-bg: #ffffff;--color-surface: #ffffff;--color-border: #e6e4ee;--color-hairline: #e4def6;--color-ink: #0b0b0c;--color-ink-secondary: #5c5c66;--color-ink-tertiary: #8a8a92;--color-accent: #195cff;--color-accent-ink: #ffffff;--radius: 8px;--radius-card: 2px;--measure: 42rem;--site-width: 64rem;--shadow-sm: 0 1px 2px rgba(25, 35, 90, .06), 0 4px 12px -4px rgba(25, 92, 255, .1);--shadow-md: 0 2px 6px rgba(40, 40, 90, .08), 0 16px 40px -12px rgba(25, 92, 255, .18);--shadow-lg: 0 4px 12px rgba(40, 40, 90, .1), 0 40px 80px -24px rgba(25, 92, 255, .28);--shadow-float: 0 2px 8px rgba(25, 35, 90, .08), 0 24px 60px -24px rgba(20, 40, 120, .4);--ease-pop: cubic-bezier(.34, 1.28, .4, 1);--ease-out: cubic-bezier(.2, .75, .2, 1);--ease-in-out: cubic-bezier(.62, .04, .22, 1);--ease-standard: cubic-bezier(.4, 0, .2, 1);--duration-instant: 80ms;--duration-fast: .16s;--duration-normal: .32s;--duration-slow: .5s;--duration-entrance: .8s;--z-base: 0;--z-raised: 10;--z-overlay: 40;--z-nav: 80;--z-modal: 100;--z-toast: 120}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}a{color:inherit}img{max-width:100%;display:block}.container{max-width:var(--site-width);margin-inline:auto;padding-inline:var(--space-6)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.prose{max-width:var(--measure)}.prose a{color:var(--color-accent);text-underline-offset:2px}.prose p,.prose ul,.prose ol{margin-block:0 var(--space-4)}.prose h2{font-size:var(--text-lg);line-height:1.3;margin-block:var(--space-12) var(--space-4)}.prose h3{font-size:var(--text-base);margin-block:var(--space-8) var(--space-3)}.prose blockquote{margin:0 0 var(--space-4);padding-left:var(--space-4);border-left:2px solid var(--color-border);color:var(--color-ink-secondary)}.prose code{font-family:var(--font-mono);font-size:.9em}.prose hr{border:none;border-top:1px solid var(--color-border);margin-block:var(--space-8)}.detail>header{max-width:var(--measure);margin-bottom:var(--space-8)}.detail .meta{font-size:var(--text-sm);color:var(--color-ink-tertiary);margin-bottom:var(--space-3)}.detail .meta a{color:var(--color-ink-secondary);text-decoration:none}.detail .meta a:hover{text-decoration:underline}.detail .draft{margin-left:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.detail h1{font-size:var(--text-2xl);line-height:1.15;letter-spacing:-.02em;margin-bottom:var(--space-4)}.detail .description{font-size:var(--text-lg);line-height:1.4;color:var(--color-ink-secondary)}.detail .frame{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.detail iframe{display:block;width:100%;aspect-ratio:16 / 10;border:none}.detail .actions{margin-block:var(--space-3) var(--space-12);font-size:var(--text-sm)}.detail .actions a{color:var(--color-ink-secondary)}.detail>footer{max-width:var(--measure);margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.detail .tags{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:var(--space-12) 0 0;padding:0}.detail>footer .tags{margin:0}.detail .tags li{font-size:var(--text-xs);color:var(--color-ink-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-1) var(--space-3)}.calm-bg[data-astro-cid-5hce7sga]{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--color-bg)}main[data-astro-cid-5hce7sga]{position:relative;min-height:100vh;padding-block:var(--space-12) 120px}.cnst-nav[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:0;background:#ffffffb8;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid rgba(16,24,40,.07);border-radius:999px;box-shadow:0 24px 60px -24px #14287866;padding:7px;position:fixed;bottom:26px;left:0;right:0;width:max-content;margin-inline:auto;z-index:80;transition:gap .4s cubic-bezier(.2,.75,.2,1)}.cnst-nav[data-astro-cid-5hce7sga]:hover{gap:6px}.navdot[data-astro-cid-5hce7sga]{width:40px;height:40px;border:none;background:none;padding:0;flex-shrink:0;cursor:pointer;display:grid;place-items:center;text-decoration:none}.navdot-mark[data-astro-cid-5hce7sga]{width:30px;height:30px;display:block;transition:transform .2s cubic-bezier(.2,.75,.2,1)}.navdot[data-astro-cid-5hce7sga]:hover .navdot-mark[data-astro-cid-5hce7sga]{transform:scale(1.08)}.navdot[data-astro-cid-5hce7sga]:active .navdot-mark[data-astro-cid-5hce7sga]{transform:scale(.94)}.navlinks[data-astro-cid-5hce7sga]{display:flex;align-items:center;max-width:0;overflow:hidden;opacity:0;transition:max-width .45s cubic-bezier(.2,.75,.2,1),opacity .35s ease}.cnst-nav[data-astro-cid-5hce7sga]:hover .navlinks[data-astro-cid-5hce7sga]{max-width:360px;opacity:1;padding-left:4px}.navlinks[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{font-family:var(--font-sans);font-weight:500;font-size:var(--text-sm);color:var(--color-ink);text-decoration:none;padding:6px 14px;border-radius:999px;white-space:nowrap;transition:background .2s ease,color .2s ease}.navlinks[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{background:#14287812}.navlinks[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga].active{color:var(--color-accent-ink);background:var(--color-accent)}
