/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--spacing:.25rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:var(--font-anybody);--font-body:var(--font-figtree);--color-printguard:#ff4d00;--color-printguard-ink:#170600;--color-graphite:#151618;--color-sun:#ffd23f;--color-go:#2bd46b;--color-boom:#e8391f;--color-sky:#1e57c8;--color-sky-light:#4c8df0;--color-due:#ffd766;--color-fg:rgb(var(--fg-rgb));--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{color:rgb(var(--fg-rgb));font:400 1.0625rem/1.55 var(--font-body);-webkit-font-smoothing:antialiased;background:#fff}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;font-weight:800;font-stretch:115%;line-height:1.05}a{color:inherit}:focus-visible{outline:3px solid var(--color-printguard);outline-offset:3px}[tabindex="-1"]:focus{outline:none}}@layer components{.wrap{width:100%;max-width:1280px;padding-inline:var(--gutter);margin-inline:auto}.muted{color:rgb(var(--fg-rgb) / .7)}.btn{border:1.5px solid rgb(var(--fg-rgb) / .3);min-height:48px;color:inherit;font:600 1rem/1 var(--font-body);white-space:nowrap;cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;transition:background-color .25s,border-color .25s,box-shadow .2s,translate .2s;display:inline-flex}.btn svg{flex:none;width:18px;height:18px}.btn[aria-disabled=true]{cursor:default;border-style:dashed}@media (hover:hover){.btn:not([aria-disabled=true]):hover{border-color:rgb(var(--fg-rgb) / .7)}}.actions{flex-wrap:wrap;gap:12px;display:flex}.glass{color:rgb(var(--fg-rgb));background:rgb(var(--glass-rgb) / .62);backdrop-filter:blur(18px)saturate(1.5);border:1px solid rgb(var(--fg-rgb) / .12)}.topbar{z-index:10;height:var(--bar-h);padding:env(safe-area-inset-top) var(--gutter) 0;view-transition-name:topbar;border-width:0 0 1px;align-items:center;gap:20px;display:flex;position:fixed;inset:0 0 auto}.topbar-home{min-height:44px;font:800 1rem/1 var(--font-display);text-transform:uppercase;flex:none;align-items:center;font-stretch:120%;text-decoration:none;display:inline-flex}.topbar-links{scrollbar-width:none;gap:2px;min-width:0;margin-left:auto;display:flex;overflow-x:auto;-webkit-mask:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000);mask:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000)}.topbar-links::-webkit-scrollbar{display:none}.topbar-links a{white-space:nowrap;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 12px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .25s;display:inline-flex}.topbar-links a[aria-current]{background:rgb(var(--fg-rgb) / .1)}@media (hover:hover){.topbar-links a:hover{background:rgb(var(--fg-rgb) / .07)}}.topbar-blog{min-height:40px;color:rgb(var(--glass-rgb));background:rgb(var(--fg-rgb));border-radius:8px;flex:none;align-items:center;padding:0 16px;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.reading-progress{z-index:11;top:calc(var(--bar-h) - 2px);background:var(--color-sky);transform-origin:0;height:3px;position:fixed;inset-inline:0;transform:scaleX(0)}@media (width<=719px){.topbar{gap:8px}.topbar[data-crowded] .topbar-home{display:none}.topbar[data-crowded] .topbar-links{margin-left:calc(var(--gutter) * -1);padding-left:calc(var(--gutter) - 12px)}}@media (width<=479px){.topbar-home{font-size:.95rem;font-stretch:82%}.topbar-links a{padding:0 9px}}.swatch[data-project=printguard]{--swatch:var(--color-printguard)}.swatch[data-project=ready-set-boom]{--swatch:var(--color-sun)}.swatch[data-project=interdose]{--swatch:var(--color-sky)}.swatch:before{content:"";background:var(--swatch);border-radius:3px;width:10px;height:10px}.floating-action{z-index:10;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));min-height:48px;font:600 .98rem/1 var(--font-body);white-space:nowrap;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:0 16px 0 18px;text-decoration:none;display:inline-flex;position:fixed;translate:-50%;box-shadow:0 12px 30px -12px #00000059}.floating-action svg{width:18px;height:18px;transition:rotate .4s var(--ease-out-expo);flex:none}.floating-action[data-up] svg{rotate:180deg}@media (hover:hover){.floating-action:hover{border-color:rgb(var(--fg-rgb) / .35)}}.swell{letter-spacing:-.01em;text-transform:uppercase;-webkit-user-select:none;user-select:none;font-weight:650;font-stretch:95%;line-height:.84}.swell .line{white-space:nowrap;display:block}.outline-title{letter-spacing:-.005em;color:#0000;-webkit-text-stroke:clamp(1.5px, .2vw, 2.5px) rgb(var(--fg-rgb));font-size:clamp(3rem,min(13vw,9svh),6rem);font-weight:900;font-stretch:75%;line-height:.88}.tag-chip{height:26px;color:rgb(var(--on-tag-rgb));background:var(--tag);white-space:nowrap;border-radius:6px;align-items:center;padding:0 9px;font-size:.82rem;font-weight:650;display:inline-flex}[data-tag=projects]{--tag:var(--color-printguard);--on-tag-rgb:23 6 0}[data-tag=diy]{--tag:var(--color-go);--on-tag-rgb:17 17 17}[data-tag=working-on]{--tag:var(--color-sky);--on-tag-rgb:255 255 255}[data-tag=noticed]{--tag:var(--color-sun);--on-tag-rgb:17 17 17}[data-palette]{color:rgb(var(--fg-rgb))}[data-palette=plain]{--fg-rgb:17 19 24;--glass-rgb:255 255 255;background:#fff}[data-palette=printguard]{--fg-rgb:242 243 245;--glass-rgb:28 29 32;background:radial-gradient(70% 55% at 85% 95%, #ff4d0042, transparent 70%), radial-gradient(45% 35% at 5% 0%, #ff4d0014, transparent 70%), var(--color-graphite)}[data-palette=ready-set-boom]{--fg-rgb:17 17 17;--glass-rgb:255 222 110;background:radial-gradient(#1111112b 1.3px, transparent 1.8px) 0 0 / 20px 20px, var(--color-sun)}[data-palette=interdose]{--fg-rgb:255 255 255;--glass-rgb:40 100 215;background:linear-gradient(180deg, var(--color-sky), var(--color-sky-light))}.device{padding:calc(var(--bezel) + var(--bar)) var(--bezel) var(--bezel);border-radius:var(--radius);background:#0b0b0d;margin:0;display:inline-block;position:relative;box-shadow:inset 0 0 0 1.5px #2e2f35,0 60px 100px -50px #000000b3,0 24px 48px -24px #00000073}.device[data-frame=phone]{--bezel:9px;--radius:44px;--bar:0px;--sw:min(58vw, 236px)}.device[data-frame=browser]{--bezel:6px;--radius:12px;--bar:24px;width:100%;display:block}.device-bar{height:calc(var(--bar) + var(--bezel));top:0;align-items:center;gap:6px;display:flex;position:absolute;inset-inline:14px;overflow:hidden}.device-bar i{background:#3a3b41;border-radius:50%;flex:none;width:9px;height:9px}.device-screen{isolation:isolate;width:var(--sw);height:var(--sh);border-radius:max(4px, calc(var(--radius) - var(--bezel)));background:#111214;position:relative;overflow:hidden;transform:translateZ(0)}.device[data-frame=phone] .device-screen{aspect-ratio:600/1304;height:auto}.device[data-frame=browser] .device-screen{aspect-ratio:1600/1011;width:100%;height:auto}.shot{object-fit:cover;transform-origin:50% 35%;width:100%;height:100%;position:absolute;inset:0}.shot[data-fit=contain]{object-fit:contain;object-position:top center}.island{z-index:5;background:#000;border-radius:999px;width:23%;height:3.5%;position:absolute;top:1.45%;left:50%;translate:-50%}.card{border:1px solid rgb(var(--fg-rgb) / .12);background:#fff;border-radius:12px;flex-direction:column;min-width:0;transition:border-color .25s;display:flex;position:relative;overflow:hidden}.card-link{text-decoration:none}.card-link:after{content:"";z-index:2;position:absolute;inset:0}.card-link:focus-visible{outline:none}.card:has(.card-link:focus-visible){outline:3px solid var(--color-printguard);outline-offset:3px}.card-media{overflow:hidden}.card-media img{width:100%;transition:scale .6s var(--ease-out-expo)}.card-body{align-content:start;gap:12px;padding:20px 20px 24px;display:grid}.card-title{font-size:1.4rem;font-weight:750;font-stretch:104%;line-height:1.08}.card-summary{color:rgb(var(--fg-rgb) / .74)}.card-meta{color:rgb(var(--fg-rgb) / .68);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:.9rem;font-weight:500;display:flex}@media (hover:hover){.card:hover{border-color:rgb(var(--fg-rgb) / .4)}.card:hover .card-media img{scale:1.04}}.card[data-note]{--fg-rgb:var(--on-tag-rgb);color:rgb(var(--fg-rgb));background:radial-gradient(rgb(var(--fg-rgb) / .13) 1.2px, transparent 1.7px) 0 0 / 18px 18px, var(--tag);border-color:#0000}.card[data-note] .card-body{flex-direction:column;flex:1;gap:16px;padding:24px 22px;display:flex}.card[data-note] .card-meta{order:3;margin-top:auto;padding-top:8px}.card[data-note] .tag-chip{color:var(--tag);background:rgb(var(--fg-rgb))}.card[data-note] .card-title{font-size:clamp(1.75rem,2.6vw,2.2rem);font-weight:800;font-stretch:112%;line-height:1}.card[data-note] .card-summary{color:rgb(var(--fg-rgb) / .84);font-size:1.08rem}.card[data-featured] .card-title{font-size:clamp(2.6rem,11vw,4.6rem);line-height:.9}.card[data-featured] .card-summary{max-width:44ch;font-size:1.12rem}@media (width>=700px){.card[data-featured]{flex-direction:row;align-items:center}.card[data-featured] .card-media{border-radius:8px;flex:1.15;margin-left:28px}.card[data-featured] .card-body{flex:1;align-content:center;padding:40px}.card[data-featured] .card-title{font-size:clamp(2.6rem,4.4vw,3.8rem)}}.posts{gap:16px;display:grid}@media (width>=700px){.posts{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (width>=1024px){.posts{grid-template-columns:repeat(3,minmax(0,1fr))}}.prose{font-size:1.15rem;line-height:1.7}.prose>*{max-width:42rem;margin:1.15em auto 0}.prose>:first-child{margin-top:0}.prose>[data-wide]{max-width:1100px;margin-block:2.2em}.prose h2{scroll-margin-top:calc(var(--bar-h) + 24px);margin-top:2.2em;font-size:clamp(1.6rem,3vw,2.2rem);font-stretch:125%;line-height:1.1}.prose h3{margin-top:1.8em;font-size:1.35rem;font-stretch:110%}.prose :is(h2,h3)+p{margin-top:.6em}.prose a{text-decoration-line:underline;-webkit-text-decoration-color:rgb(var(--fg-rgb) / .45);-webkit-text-decoration-color:rgb(var(--fg-rgb) / .45);text-decoration-color:rgb(var(--fg-rgb) / .45);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:text-decoration-color .2s}.prose a:focus-visible{text-decoration-color:currentColor}@media (hover:hover){.prose a:hover{text-decoration-color:currentColor}}.prose :is(ul,ol){padding-left:1.3em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.35em}.prose :not(pre)>code{background:rgb(var(--fg-rgb) / .07);font:500 .88em/1 var(--font-mono);overflow-wrap:anywhere;border-radius:5px;padding:2px 5px}.prose pre{overscroll-behavior-x:contain;color:#e8e9ed;max-width:46rem;font:400 .88rem/1.65 var(--font-mono);tab-size:4;background:#15171c;border-radius:12px;padding:18px 20px;overflow-x:auto}.prose blockquote{border-left:6px solid var(--color-sky);max-width:46rem;font:750 clamp(1.5rem, 3.4vw, 2.3rem)/1.12 var(--font-display);letter-spacing:-.01em;text-wrap:balance;padding:4px 0 4px 22px;font-stretch:106%}.prose img{border-radius:12px}.prose figcaption{color:rgb(var(--fg-rgb) / .66);margin-top:10px;font-size:.93rem;line-height:1.45}.prose [data-zoomable]{cursor:zoom-in}.lightbox{background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox[open]{place-items:center;display:grid}.lightbox::backdrop{backdrop-filter:blur(10px);background:#0c0d10e6}.lightbox img{max-width:calc(100vw - 32px);max-height:calc(100dvh - 128px - env(safe-area-inset-top) - env(safe-area-inset-bottom));cursor:zoom-out;border-radius:16px}.lightbox .btn{top:calc(12px + env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));color:#fff;background:#ffffff14;border-color:#ffffff59;width:48px;padding:0;position:absolute}html:has(.lightbox[open]){overflow:hidden}.token:is(.keyword,.boolean,.important,.atrule){color:#ff8a5b}.token:is(.class-name,.builtin,.tag,.selector){color:#8db8ff}.token:is(.string,.char,.attr-value,.regex,.inserted){color:#7ee2a8}.token:is(.number,.constant,.symbol,.property){color:#ffd23f}.token:is(.function,.attr-name){color:#d7b8ff}.token:is(.comment,.prolog,.doctype,.cdata){color:#8b919c}.token.deleted{color:#ff7b72}.hero{min-height:100svh;padding-block:calc(var(--bar-h) + 32px) 96px;align-items:center;display:grid}.hero-inner{justify-items:start;gap:22px;display:grid}.status{align-items:center;gap:10px;font-size:.95rem;font-weight:600;display:flex}.status:before{content:"";background:var(--color-go);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #2bd46b33}.hero-name{font-size:min(19vw,27svh)}.hero-role{font:600 clamp(1.15rem, 2.4vw, 1.6rem) / 1.3 var(--font-display);font-stretch:120%}.hero-intro{max-width:34ch;font-size:clamp(1.1rem,1.8vw,1.3rem)}.calm{padding-block:112px 40px;position:relative}.block{border-top:1px solid rgb(var(--fg-rgb) / .1);gap:28px;padding-block:56px;scroll-margin-top:28px;display:grid}.block:first-child{border-top:0;padding-top:0}.section-title{font-size:clamp(1.7rem,3vw,2.4rem);font-stretch:130%}@media (width>=900px){.block:not([data-full]){grid-template-columns:300px 1fr;gap:48px}}.block-head{justify-items:start;gap:12px;display:grid}@media (width>=900px){.block-head{grid-template-columns:300px minmax(0,1fr) auto;align-items:end;gap:48px}.block-head p{max-width:36ch}}@media (width<=699px){.latest-posts{margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) 4px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;grid-auto-columns:min(78%,320px);grid-auto-flow:column;gap:14px;overflow-x:auto}.latest-posts>li{scroll-snap-align:start}}.minis{gap:12px;display:grid}@media (width>=700px){.minis{grid-template-columns:1fr 1fr}}.mini{border:1px solid rgb(var(--fg-rgb) / .12);border-radius:12px;gap:8px;height:100%;padding:20px;text-decoration:none;transition:border-color .25s,background-color .25s;display:grid}@media (hover:hover){.mini:hover{border-color:rgb(var(--fg-rgb) / .45);background:rgb(var(--fg-rgb) / .025)}}.mini-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.mini-name{overflow-wrap:anywhere;font-weight:700}.mini-stars{color:rgb(var(--fg-rgb) / .75);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:600;display:inline-flex}.mini-stars svg{fill:#ffb800;width:15px;height:15px}.mini p{color:rgb(var(--fg-rgb) / .72);font-size:.98rem}.xp{gap:28px;display:grid}.xp li{gap:6px;display:grid}@media (width>=700px){.xp li{grid-template-columns:200px 1fr;gap:24px}}.xp h3,.skills h3{font-family:var(--font-body);letter-spacing:0;font-size:1.15rem;font-weight:700;font-stretch:100%}.xp .when{color:rgb(var(--fg-rgb) / .65);font-weight:500}.xp p{max-width:60ch;color:rgb(var(--fg-rgb) / .78);margin-top:4px}.skills{gap:24px 40px;display:grid}@media (width>=700px){.skills{grid-template-columns:1fr 1fr}}.skills h3{margin-bottom:10px;font-size:1rem}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tags li{background:rgb(var(--fg-rgb) / .055);border-radius:8px;padding:6px 10px;font-size:.93rem}.about{max-width:42ch;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.5}.page-head{padding-block:calc(var(--bar-h) + 28px) 36px}.blog-title{margin-left:-.04em;font-size:min(38vw,40svh);line-height:.8}.blog-intro{justify-items:start;gap:10px;max-width:36ch;display:grid}.rss{text-underline-offset:4px;align-items:center;gap:8px;min-height:44px;font-weight:600;display:inline-flex}.rss svg{width:18px;height:18px;color:var(--color-printguard)}.filters{flex-wrap:wrap;gap:8px;padding-bottom:28px;display:flex}.filters button{border:1.5px solid rgb(var(--fg-rgb) / .16);min-height:44px;font:600 .95rem/1 var(--font-body);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:0 14px;transition:background-color .25s,border-color .25s,color .25s;display:inline-flex}.filters button[data-tag]:before{content:"";background:var(--tag);border-radius:3px;width:10px;height:10px}.filters .count{color:rgb(var(--fg-rgb) / .55);font-variant-numeric:tabular-nums;font-weight:500}.filters button[aria-pressed=true]{border-color:rgb(var(--fg-rgb));color:#fff;background:rgb(var(--fg-rgb))}.filters button[aria-pressed=true] .count{color:#ffffffb3}@media (hover:hover){.filters button[aria-pressed=false]:hover{border-color:rgb(var(--fg-rgb) / .5)}}.posts>li,.card[data-featured]{view-transition-name:match-element}.empty{border:1.5px dashed rgb(var(--fg-rgb) / .25);border-radius:12px;justify-items:start;gap:12px;padding:40px 28px;display:grid}.empty h2{font-size:clamp(1.8rem,4vw,2.8rem)}.back{align-items:center;gap:6px;min-height:44px;margin-left:-4px;font-weight:600;text-decoration:none;display:inline-flex}.back svg{width:18px;height:18px}@media (hover:hover){.back:hover{text-underline-offset:4px;text-decoration:underline}}.post{max-width:1440px;padding-top:calc(var(--bar-h) + 20px)}.post-toc{display:none}@media (width>=1180px){.post{grid-template-columns:13rem minmax(0,1fr) 13rem;column-gap:2.5rem;display:grid}.post-toc{top:calc(var(--bar-h) + 20px);max-height:calc(100dvh - var(--bar-h) - 40px);overscroll-behavior:contain;scrollbar-width:none;align-self:start;display:block;position:sticky;overflow-y:auto}.post-toc::-webkit-scrollbar{display:none}}.post-toc-title{margin-bottom:12px;font-weight:700}.post-toc ol{border-left:2px solid rgb(var(--fg-rgb) / .12);gap:2px;display:grid}.post-toc a{color:rgb(var(--fg-rgb) / .62);border-left:2px solid #0000;margin-left:-2px;padding:6px 0 6px 14px;font-size:.92rem;line-height:1.35;text-decoration:none;transition:color .2s,border-color .2s;display:block}.post-toc a[aria-current]{border-left-color:var(--tag);color:rgb(var(--fg-rgb));font-weight:600}@media (hover:hover){.post-toc a:hover{color:rgb(var(--fg-rgb))}}.post-head{justify-items:start;gap:18px;max-width:42rem;margin-inline:auto;display:grid}.post-title{letter-spacing:-.015em;animation:stretch-in 1.4s var(--ease-out-expo) both;margin-top:6px;font-size:clamp(2.7rem,9vw,4.6rem);font-stretch:100%;line-height:.92}.post-summary{max-width:40ch;font-size:clamp(1.2rem,2vw,1.45rem);line-height:1.45}.post-cover{max-width:1100px;margin:36px auto 0}.post-cover img{border-radius:12px;width:100%}.pair{align-items:flex-start;gap:clamp(12px,3vw,28px);display:flex}.pair figure{min-width:0;margin:0}.post-nav{gap:16px;max-width:1100px;padding-block:40px;display:grid}@media (width>=700px){.post-nav{grid-template-columns:1fr 1fr;gap:20px}}.step{border:1px solid rgb(var(--fg-rgb) / .12);border-radius:12px;align-content:start;gap:10px;padding:22px;text-decoration:none;transition:border-color .25s;display:grid}.step-label{color:rgb(var(--fg-rgb) / .65);align-items:center;gap:6px;font-size:.95rem;font-weight:600;display:inline-flex}.step-title{font:750 1.35rem/1.1 var(--font-display);text-wrap:balance;font-stretch:104%}@media (width>=700px){.step[rel=next]{text-align:right;grid-column:2;justify-items:end}}@media (hover:hover){.step:hover{border-color:rgb(var(--fg-rgb) / .45)}}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-5{margin-top:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.min-h-\[70svh\]{min-height:70svh}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\[18px\]{gap:18px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-fg\/10{border-color:color-mix(in srgb, rgb(var(--fg-rgb)) 10%, transparent)}@supports (color:color-mix(in lab, red, red)){.border-fg\/10{border-color:color-mix(in oklab, var(--color-fg) 10%, transparent)}}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-\[calc\(104px\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\[clamp\(1\.15rem\,1\.8vw\,1\.35rem\)\]{font-size:clamp(1.15rem,1.8vw,1.35rem)}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.text-wrap{text-wrap:wrap}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (width>=900px){.min-\[900px\]\:grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.min-\[900px\]\:items-end{align-items:flex-end}.min-\[900px\]\:gap-x-12{column-gap:calc(var(--spacing) * 12)}.min-\[900px\]\:justify-self-end{justify-self:flex-end}.min-\[900px\]\:pb-\[1\.2vw\]{padding-bottom:1.2vw}}}:root{--fg-rgb:17 19 24;--glass-rgb:255 255 255;--gutter:max(20px, env(safe-area-inset-left), env(safe-area-inset-right));--bar-h:calc(60px + env(safe-area-inset-top));-webkit-text-size-adjust:100%;scroll-padding-top:var(--bar-h)}@view-transition{navigation:auto}@keyframes stretch-in{0%{font-stretch:50%}}::view-transition-group(*){animation-duration:.5s;animation-timing-function:var(--ease-out-expo)}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}.card-media img{transition:none}.post-title{animation:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
