@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 700;font-display:swap;src:local("IBM Plex Sans"),url(/fonts/ibm-plex-sans-400-700-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 700;font-display:swap;src:local("IBM Plex Sans"),url(/fonts/ibm-plex-sans-400-700-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYbSB4Zh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-weight:400;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-400-italic-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizBREVNn1dOx-zrZ2X3pZvkTiUa6zsTjnTLgNuZ5w.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-weight:400;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-400-italic-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizBREVNn1dOx-zrZ2X3pZvkTiUa6zUTjnTLgNs.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:400;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-400-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizDREVNn1dOx-zrZ2X3pZvkTiUR2zcZiVbJsNo.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:400;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-400-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizDREVNn1dOx-zrZ2X3pZvkTiUf2zcZiVbJ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-600-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizAREVNn1dOx-zrZ2X3pZvkTi3A_yI6q1vjitOh3oc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:local("IBM Plex Serif"),url(/fonts/ibm-plex-serif-600-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/ibmplexserif/v20/jizAREVNn1dOx-zrZ2X3pZvkTi3A_yI0q1vjitOh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 600;font-display:swap;src:local("Geist Mono"),url(/fonts/geist-mono-400-600-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/geistmono/v4/or3nQ6H-1_WfwkMZI_qYFrkdmhHkjkotbA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 600;font-display:swap;src:local("Geist Mono"),url(/fonts/geist-mono-400-600-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/geistmono/v4/or3nQ6H-1_WfwkMZI_qYFrcdmhHkjko.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, Cantarell, system-ui, sans-serif;--serif: "IBM Plex Serif", Charter, "Iowan Old Style", "Sitka Text", Cambria, "Liberation Serif", Georgia, serif;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Ubuntu Mono", "DejaVu Sans Mono", monospace;--bg: #fafafa;--primary: #000000;--secondary: #0a0a0a;--tertiary: #4a4a4a;--rule: #d6d6d6;--accent: #5a4a2f;--code-bg: #f0eee7;--selection: #f0e6c8;--measure: 52rem;--fs-xs: .625rem;--fs-mono-s: .6875rem;--fs-mono-m: .75rem;--fs-sm: .875rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.4rem;--fs-2xl: 1.75rem}:root[data-theme=dark]{--bg: #0d0d0c;--primary: #f4f1e8;--secondary: #ebe8df;--tertiary: #aaa49a;--rule: #3a3835;--accent: #d4c198;--code-bg: #1a1a18;--selection: #3a3424}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d0d0c;--primary: #f4f1e8;--secondary: #ebe8df;--tertiary: #aaa49a;--rule: #3a3835;--accent: #d4c198;--code-bg: #1a1a18;--selection: #3a3424}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}img,svg,video,iframe{display:block;max-width:100%;height:auto}a{color:inherit}button{font:inherit;background:none;border:0;padding:0;cursor:pointer;color:inherit}html{font-size:17px;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;background:var(--bg);color:var(--primary)}@media(min-width:720px){html{font-size:18px}}body{font-family:var(--sans);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;color:var(--primary);background:var(--bg)}::selection{background:var(--selection);color:var(--primary)}.site{display:flex;flex-direction:column;min-height:100vh}.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding:0 1.25rem}.site>main{flex:1;padding-block:1.6rem 4.5rem}.site-header{padding-block:1.4rem 0}.site-header .row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--primary);padding-bottom:.75rem}.site-title{font-family:var(--sans);font-size:var(--fs-sm);font-weight:700;letter-spacing:-.01em;color:var(--primary);text-decoration:none}.site-nav{display:flex;gap:1.05rem;align-items:center;font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.1em;flex-wrap:wrap}.site-nav a{color:var(--primary);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}.site-nav a[aria-current=page]{border-bottom-color:var(--primary)}.site-nav a:hover{border-bottom-color:var(--accent)}.theme-toggle{display:inline-flex;font-family:var(--mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--primary);border-radius:999px;overflow:hidden;margin-left:.25rem}.theme-toggle button{padding:3px 8px;color:var(--primary);background:transparent;border-radius:0;transition:background .1s ease;line-height:1}.theme-toggle button[aria-pressed=true]{background:var(--primary);color:var(--bg)}.theme-toggle button:hover:not([aria-pressed=true]){background:color-mix(in oklab,var(--primary) 12%,transparent)}.theme-toggle button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.site-footer{border-top:1px solid var(--rule);padding-block:1rem 1.5rem;font-family:var(--mono);font-size:var(--fs-mono-s);text-transform:uppercase;letter-spacing:.1em;color:var(--tertiary)}.site-footer .row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-footer a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px}.site-footer a:hover{color:var(--primary);border-bottom-color:var(--primary)}.hero{margin:.4rem 0 1.2rem}.hero h1{font-family:var(--sans);font-size:var(--fs-xl);font-weight:600;line-height:1.08;letter-spacing:-.025em;margin:0 0 .7rem;color:var(--primary)}.hero p{font-family:var(--serif);font-size:var(--fs-base);line-height:1.5;color:var(--secondary);margin:0}.feed,.feed-post{margin:0}.feed-post[data-pending]{display:none}.feed-post .date-band{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.5rem 0;margin:2.6rem 0 1.1rem;border-top:1px solid var(--primary);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.1em;color:var(--tertiary);text-decoration:none;transition:border-bottom-color .12s ease}.feed-post:first-of-type .date-band{margin-top:.6rem}.feed-post .date-band:hover{border-bottom-color:var(--primary)}.feed-post .date-band:hover .arrow{transform:translate(2px);color:var(--accent)}.feed-post .date-band .stamp{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.feed-post .date-band .tag{color:var(--tertiary);flex:1;text-align:center}.feed-post .date-band .arrow{color:var(--tertiary);display:inline-block;transition:transform .12s ease,color .12s ease}.feed-post-header{margin-bottom:1.1rem}.feed-post h2{font-family:var(--sans);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.025em;line-height:1.1;margin:.4rem 0 .45rem;color:var(--primary)}.feed-post h2 a{color:inherit;text-decoration:none}.feed-post h2 a:hover{color:var(--accent)}.feed-post-description{font-family:var(--serif);font-style:italic;font-size:var(--fs-md);line-height:1.5;color:var(--secondary);margin:0}.feed-sentinel{height:1px}.feed-end{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);text-align:center}.archive-link{display:inline-block;margin-top:1.1rem;font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:1px;text-decoration:none}.archive-link:hover{color:var(--primary);border-bottom-color:var(--primary)}.archive-page h1{font-family:var(--sans);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:0 0 .2rem;color:var(--primary)}.archive-page .lede{font-family:var(--serif);font-style:italic;color:var(--tertiary);font-size:var(--fs-base);margin:0 0 1.4rem}.archive-year{font-family:var(--mono);font-size:var(--fs-mono-m);font-weight:600;letter-spacing:.06em;color:var(--primary);border-top:1px solid var(--primary);padding:1.1rem 0 .4rem;margin-top:1.1rem;display:flex;justify-content:space-between;align-items:baseline}.archive-year:first-of-type{margin-top:0}.archive-year .count{color:var(--tertiary);font-weight:400}.archive-list{list-style:none;padding:0;margin:0}.archive-list li{display:grid;grid-template-columns:3.4rem 1fr 1.1rem;gap:.75rem;padding:.35rem 0;border-top:1px solid var(--rule);align-items:baseline}.archive-list li:last-child{border-bottom:1px solid var(--rule)}.archive-list a{display:contents;color:inherit;text-decoration:none}.archive-list a:hover .title{color:var(--accent)}.archive-list a:hover .arrow{color:var(--accent);transform:translate(2px)}.archive-list .date{font-family:var(--mono);font-size:var(--fs-mono-m);color:var(--tertiary);font-variant-numeric:tabular-nums;padding-top:.12rem}.archive-list .title{font-family:var(--sans);font-size:var(--fs-sm);font-weight:600;letter-spacing:-.01em;color:var(--primary);line-height:1.3}.archive-list .arrow{font-family:var(--mono);color:var(--tertiary);text-align:right;align-self:center;transition:transform .12s ease}@media(max-width:540px){.archive-list li{grid-template-columns:3rem 1fr}.archive-list .arrow{display:none}}.post-meta{font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.1em;color:var(--tertiary);margin:0 0 .5rem;display:flex;gap:.7rem;flex-wrap:wrap;align-items:baseline}.post-meta time{color:var(--tertiary);font-variant-numeric:tabular-nums}.post-meta .tag{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:1px}.post-header{margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid var(--rule)}.post-header h1{font-family:var(--sans);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.025em;line-height:1.1;margin:0 0 .45rem;color:var(--primary)}.post-description{font-family:var(--serif);font-style:italic;font-size:var(--fs-md);line-height:1.5;color:var(--secondary);margin:0}.prose{font-family:var(--serif);font-size:var(--fs-md);line-height:1.65;color:var(--secondary)}.prose>*+*{margin-top:1.6em}.prose p+p{margin-top:1.6em}.prose>h2+*,.prose>h3+*{margin-top:.5em}.prose h2,.prose h3,.prose h4{font-family:var(--sans);font-weight:600;letter-spacing:-.015em;line-height:1.25;color:var(--primary);margin-top:1.8em}.prose h2{font-size:1.125rem}.prose h3{font-size:1rem}.prose h4{font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.12em;color:var(--tertiary)}.prose p{margin:0}.prose a{color:var(--primary);text-decoration:none;border-bottom:1px solid var(--accent);transition:background .12s ease}.prose a:hover{background:var(--selection)}.prose strong{font-weight:600;color:var(--primary)}.prose em{font-style:italic}.prose blockquote{margin-inline:0;padding-left:1rem;border-left:2px solid var(--rule);color:var(--tertiary);font-style:italic}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.4rem}.prose li::marker{color:var(--tertiary)}.prose hr{border:0;border-top:1px solid var(--rule);margin-block:2.2rem}.prose :not(pre)>code{font-family:var(--mono);font-size:.86em;background:var(--code-bg);padding:.1em .35em;border-radius:3px;color:var(--accent)}.prose pre{font-family:var(--mono);font-size:.8125rem;line-height:1.55;padding:.85rem 1rem;border-radius:4px;overflow-x:auto;background:var(--code-bg)!important;border:1px solid var(--rule)}.prose pre code{background:transparent;padding:0;font-size:inherit;color:inherit}:root[data-theme=dark] .prose pre.astro-code,:root[data-theme=dark] .prose pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .prose pre.astro-code,:root:not([data-theme=light]) .prose pre.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.prose figure{margin:1.4rem 0}.prose figure img{border-radius:2px;margin-inline:auto}.prose .palette-compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start;margin:1.4rem 0}.prose .palette-compare figure{margin:0}.prose .palette-compare img{width:100%;height:auto;image-rendering:pixelated}@media(max-width:540px){.prose .palette-compare{grid-template-columns:1fr}}.prose figcaption{margin-top:.5rem;font-family:var(--mono);font-size:var(--fs-mono-s);text-transform:uppercase;letter-spacing:.06em;color:var(--tertiary);text-align:center}.prose table{width:100%;border-collapse:collapse;font-size:.95rem;overflow-x:auto;display:block;margin-bottom:1.6em;-webkit-overflow-scrolling:touch}.prose th,.prose td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--rule)}.prose th{font-weight:600;color:var(--primary)}@media(min-width:720px){.prose table{display:table}}.youtube{position:relative;aspect-ratio:16 / 9;background:var(--code-bg);border-radius:4px;overflow:hidden}.youtube iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.callout{border:1px solid var(--rule);border-left:3px solid var(--accent);padding:.85rem 1rem 1rem;background:var(--code-bg);border-radius:2px;font-size:.95rem;margin-bottom:1.6em}.callout>:first-child{margin-top:0}.callout>*+*{margin-top:.6em}.rom-embed,.prose .rom-embed{margin:1.4rem auto;max-width:480px;padding:0;background:#000}.rom-embed-with-memory,.prose .rom-embed-with-memory{max-width:760px;background:transparent}.rom-embed-stage{position:relative;width:100%;min-width:240px;aspect-ratio:240 / 160;background:#000;overflow:hidden;color:#fff}.rom-embed-with-memory .rom-embed-stage{max-width:480px;margin:0 auto}.rom-embed-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;object-fit:contain;background:#000}.rom-embed-noscript{padding:2.5rem 1rem;text-align:center;font-family:var(--mono);font-size:var(--fs-mono-m);color:var(--accent)}.rom-embed-status{position:absolute;inset:0;display:grid;place-items:center;padding:1rem;text-align:center;font-family:var(--mono);font-size:var(--fs-mono-m);color:#ffffffb3;opacity:0;pointer-events:none;transition:opacity .2s ease}.rom-embed-status[data-show]{opacity:1}.rom-embed-progress{width:60%;max-width:240px;height:3px;margin-top:8px;background:#ffffff26;border-radius:2px;overflow:hidden}.rom-embed-progress>i{display:block;width:0;height:100%;background:#fff;transition:width .1s ease}.rom-embed-play{position:absolute;inset:0;display:grid;place-items:center;background:#00000073;border:0;color:inherit;cursor:pointer;padding:0;font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.rom-embed-play[hidden]{display:none}.rom-embed-play-icon{width:80px;height:80px;border-radius:8px;background:#0000008c;color:#fff;display:grid;place-items:center}.rom-embed-play-icon svg{width:40px;height:40px}@media(max-width:540px){.rom-embed-play-icon{width:96px;height:96px;border-radius:10px}.rom-embed-play-icon svg{width:48px;height:48px}}.rom-embed-play:hover .rom-embed-play-icon{background:#000000bf}.rom-embed-play:focus-visible .rom-embed-play-icon{outline:2px solid #fff;outline-offset:2px}.rom-embed-play-icon svg{display:block}.rom-embed-controls{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;pointer-events:none;transition:opacity .2s ease}.rom-embed-stage[data-chrome] .rom-embed-controls,.rom-embed-stage[data-chrome] .rom-embed-download{opacity:1;pointer-events:auto}.rom-embed .rom-embed-controls button,.rom-embed .rom-embed-download{width:32px;height:32px;padding:0;border:0;border-radius:4px;background:#0000008c;color:#fff;cursor:pointer;display:grid;place-items:center;text-decoration:none}.rom-embed .rom-embed-controls button:hover,.rom-embed .rom-embed-download:hover{background:#000000bf}.rom-embed .rom-embed-controls button:focus-visible,.rom-embed .rom-embed-download:focus-visible{outline:2px solid #fff;outline-offset:-2px}.rom-embed .rom-embed-controls svg,.rom-embed .rom-embed-download svg{display:block}.rom-embed .rom-embed-mute .ic-off,.rom-embed .rom-embed-mute[data-state=off] .ic-on{display:none}.rom-embed .rom-embed-mute[data-state=off] .ic-off{display:block}.rom-embed .rom-embed-playpause .ic-pause,.rom-embed .rom-embed-playpause[data-state=play] .ic-pause{display:none}.rom-embed .rom-embed-playpause[data-state=play] .ic-play,.rom-embed .rom-embed-playpause[data-state=pause] .ic-pause{display:block}.rom-embed .rom-embed-playpause[data-state=pause] .ic-play{display:none}.rom-embed-download{position:absolute;bottom:8px;right:8px;text-decoration:none;opacity:0;pointer-events:none;transition:opacity .2s ease}.rom-embed-tooltip{position:absolute;top:0;left:0;max-width:calc(100% - 12px);padding:4px 6px;background:#141414eb;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:3px;font-family:var(--mono);font-size:11px;line-height:1;width:max-content;white-space:normal;overflow-wrap:anywhere;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:4}.rom-embed-tooltip[data-show]{opacity:1}.rom-embed-hud{position:absolute;bottom:8px;left:8px;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:#0000008c;color:#fff;border-radius:4px;font-family:var(--mono);font-size:11px;line-height:1;letter-spacing:.02em;pointer-events:none;opacity:0;transition:opacity .2s ease}.rom-embed-stage[data-chrome] .rom-embed-hud{opacity:1}.rom-embed-hud-sep{opacity:.5}.rom-embed-led{width:6px;height:6px;border-radius:50%;background:#2f4a2a;box-shadow:inset 0 0 0 1px #0006;transition:background .15s ease,box-shadow .15s ease}.rom-embed-stage[data-running] .rom-embed-led{background:#6dff86;box-shadow:inset 0 0 0 1px #0006,0 0 6px #6dff868c}.rom-embed-memory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;font-family:var(--mono)}.rom-embed-memory-toolbar{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.rom-embed-memory-toolbar button{min-width:74px;padding:6px 8px;border:1px solid var(--rule);border-radius:4px;background:var(--bg);color:var(--secondary);font-size:11px;line-height:1;text-transform:uppercase}.rom-embed-memory-toolbar button[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--bg)}.rom-embed-memory-toolbar button:hover:not([aria-pressed=true]){background:var(--code-bg)}.rom-embed-memory-toolbar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rom-embed-memory-panel{min-width:0;border:1px solid var(--rule);border-radius:6px;overflow:hidden;background:var(--code-bg)}.rom-embed-memory-head{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-bottom:1px solid var(--rule);color:var(--secondary);font-size:11px;line-height:1;text-transform:uppercase}.rom-embed-memory canvas{display:block;width:100%;height:auto;background:#050505;image-rendering:pixelated}@media(max-width:720px){.rom-embed-memory{grid-template-columns:1fr}}.post-footer{margin-top:2.2rem;padding-top:1rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.1em;color:var(--tertiary);display:flex;justify-content:space-between;gap:1rem}.post-footer a{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:1px;text-decoration:none}.post-footer a:hover{color:var(--primary);border-bottom-color:var(--primary)}.about-page h1{font-family:var(--sans);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:0 0 1.2rem;color:var(--primary)}.about-page p{font-family:var(--serif);font-size:var(--fs-md);line-height:1.65;color:var(--secondary);margin:0}.about-page p+p{margin-top:1rem}.about-page a{color:var(--primary);text-decoration:none;border-bottom:1px solid var(--accent)}.about-page a:hover{background:var(--selection)}.cv-page h1{font-family:var(--sans);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:0 0 .4rem;color:var(--primary)}.cv-page .cv-summary{font-family:var(--serif);font-size:var(--fs-md);line-height:1.6;color:var(--secondary);margin:0 0 2.4rem}.cv-section{margin-top:2rem}.cv-section h2{font-family:var(--mono);font-size:var(--fs-mono-m);text-transform:uppercase;letter-spacing:.16em;color:var(--primary);font-weight:600;border-bottom:1px solid var(--primary);padding-bottom:.5rem;margin:0 0 1rem}.cv-entry{padding-block:.85rem}.cv-entry+.cv-entry{border-top:1px solid var(--rule)}.engagements-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem;row-gap:1.5rem;align-items:start}.engagements-grid .cv-entry-current{grid-column:1 / -1}.engagements-grid .cv-entry-left{grid-column:1}.engagements-grid .cv-entry-right{grid-column:2}.engagements-grid .cv-entry+.cv-entry{border-top:0}.engagements-divider{grid-column:1 / -1;height:0;border-top:1px solid var(--rule);margin:.4rem 0 .5rem}.cv-entry .year{font-family:var(--mono);font-size:var(--fs-mono-m);color:var(--accent);letter-spacing:.05em;font-variant-numeric:tabular-nums;font-weight:600;margin-top:.35rem}@media(max-width:720px){.engagements-grid{grid-template-columns:1fr;column-gap:0;row-gap:0}.engagements-grid .cv-entry-current,.engagements-grid .cv-entry-left,.engagements-grid .cv-entry-right{grid-column:auto}.engagements-divider{display:none}.engagements-grid .cv-entry+.cv-entry{border-top:1px solid var(--rule)}}.cv-entry .who{font-family:var(--sans);font-weight:600;color:var(--primary);font-size:var(--fs-sm);line-height:1.35;letter-spacing:-.01em}.cv-entry .what{font-family:var(--serif);color:var(--secondary);margin-top:.45rem;font-size:var(--fs-base);line-height:1.55}.cv-entry .what ul{margin:.4rem 0 0;padding-left:1.1rem}.cv-entry .what li+li{margin-top:.3rem}.cv-entry .what li::marker{color:var(--tertiary)}.cv-skills p{font-family:var(--serif);font-size:var(--fs-base);line-height:1.55;color:var(--secondary);margin:0}.cv-skills p+p{margin-top:.5rem}.cv-skills strong{font-family:var(--sans);font-weight:600;color:var(--primary);font-size:var(--fs-sm);letter-spacing:-.01em}
