@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.1216mhqx6y_is.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module___iwn_a__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module___iwn_a__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.06.f0v_2js29o.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__B2rtqW__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__B2rtqW__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@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-divide-y-reverse:0;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--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-geist-sans);--default-mono-font-family:var(--font-geist-mono);--color-background:var(--color-bg);--color-border:var(--color-border);--color-accent:var(--color-accent)}}@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]){-webkit-text-decoration:underline dotted;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;-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}}@layer components;@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}.relative{position:relative}.block{display:block}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.h-screen{height:100vh}.min-h-\[100dvh\]{min-height:100dvh}.border-collapse{border-collapse:collapse}.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}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.border{border-style:var(--tw-border-style);border-width:1px}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-right{text-align:right}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-wrap{text-wrap:wrap}.text-white\/25{color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.text-white\/25{color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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))}.select-none{-webkit-user-select:none;user-select:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f4f9f7;--color-bg-soft:#e7f1ed;--color-surface:#fafdfc;--color-text:#0b191b;--color-text-muted:#495c5f;--color-border:#cddcd6;--color-accent:#00834b;--color-accent-strong:#00673c;--color-accent-contrast:#f3fbf6;--color-danger:#ba2c25;--color-warning:#c68206;--color-success:#2d8949;--aurora-a:#2fc183;--aurora-b:#00ade4;--aurora-c:#b191ea;--font-size-base:16px;--font-size-sm:.875rem;--font-size-lg:1.125rem;--line-body:1.72;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--shadow-soft:0 18px 60px #1d252e14;--space-section:clamp(4.5rem, 9vw, 8.5rem);--container-width:82rem;--reading-width:46rem;--header-height:4.5rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.18s;--duration-base:.32s;--layer-header:20;--layer-menu:30}@supports (color:lab(0% 0 0)){:root{--color-bg:lab(97.5277% -2.00662 .377405);--color-bg-soft:lab(94.3594% -4.01843 .755084);--color-surface:lab(99.1251% -1.33711 .251544);--color-text:lab(7.37325% -5.05925 -3.72815);--color-text-muted:lab(37.5522% -6.88739 -4.56407);--color-border:lab(86.319% -6.03747 1.13325);--color-accent:lab(47.5456% -53.7995 23.6203);--color-accent-strong:lab(38.1263% -50.9118 22.3341);--color-accent-contrast:lab(97.816% -3.15794 1.39725);--color-danger:lab(42.5537% 56.3463 40.5324);--color-warning:lab(60.3081% 21.4647 64.774);--color-success:lab(50.593% -39.2924 25.9531);--aurora-a:lab(69.4974% -50.0276 19.6512);--aurora-b:lab(65.4669% -23.4234 -38.8818);--aurora-c:lab(65.7709% 26.104 -40.7609);--shadow-soft:0 18px 60px lab(14.1124% -1.55351 -7.0455/.08)}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#041113;--color-bg-soft:#09191c;--color-surface:#0d1b1d;--color-text:#e6edea;--color-text-muted:#99a5a0;--color-border:#202e31;--color-accent:#34c486;--color-accent-strong:#5ad69b;--color-accent-contrast:#08120c;--color-danger:#f47c6e;--color-warning:#e5ac4c;--color-success:#65c281;--aurora-a:#008954;--aurora-b:#0070ac;--aurora-c:#825eb9;--shadow-soft:0 22px 70px #01020366}@supports (color:lab(0% 0 0)){[data-theme=dark]{--color-bg:lab(4.15665% -3.3882 -2.69869);--color-bg-soft:lab(7.38715% -5.52307 -4.09564);--color-surface:lab(8.51654% -5.54967 -3.76191);--color-text:lab(93.1463% -2.67673 .503266);--color-text-muted:lab(66.5591% -5.03197 .944448);--color-border:lab(17.7988% -5.7103 -3.78653);--color-accent:lab(70.6582% -49.9917 19.6412);--color-accent-strong:lab(77.4941% -46.3383 18.2428);--color-accent-contrast:lab(4.6208% -4.19559 1.65982);--color-danger:lab(66.1182% 46.1947 29.8386);--color-warning:lab(74.4885% 14.4062 56.2833);--color-success:lab(71.519% -39.936 23.7634);--aurora-a:lab(49.884% -54.59 21.3013);--aurora-b:lab(43.9568% -11.6954 -46.3374);--aurora-c:lab(46.9173% 29.6842 -43.5098);--shadow-soft:0 22px 70px lab(.457729% -.0907183 -.636858/.4)}}*{box-sizing:border-box}html{background:var(--color-bg);font-size:var(--font-size-base);scroll-behavior:smooth}body{min-height:100dvh;color:var(--color-text);font-family:var(--font-geist-sans), system-ui, sans-serif;line-height:var(--line-body);text-rendering:optimizelegibility;margin:0}::selection{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in oklch, var(--color-accent) 28%, transparent)}}a{color:inherit;text-decoration:none}button,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}img{max-width:100%;display:block}h1,h2,h3,p{margin-block-start:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.site-container{width:min(100% - 2rem, var(--container-width));margin-inline:auto}.site-main{min-height:calc(100dvh - var(--header-height))}.section{padding-block:var(--space-section)}.section--compact{padding-block:clamp(3rem,6vw,5.5rem)}.section-heading{max-width:42rem;margin-bottom:clamp(2rem,5vw,4rem)}.section-heading h1,.section-heading h2{letter-spacing:-.055em;margin-bottom:1rem;font-size:clamp(2.1rem,5vw,4.6rem);font-weight:560;line-height:.98}.section-heading p{max-width:60ch;color:var(--color-text-muted);font-size:var(--font-size-lg);margin-bottom:0}.eyebrow{color:var(--color-accent-strong);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem;font-weight:600}.text-link{min-height:2.75rem;color:var(--color-accent-strong);transition:color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);align-items:center;font-weight:600;display:inline-flex}.text-link:hover{color:var(--color-accent);transform:translate(.18rem)}.text-link:active{transform:translate(.1rem)scale(.98)}.icon-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:2.75rem;height:2.75rem;color:var(--color-text);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;place-items:center;padding:0;display:inline-grid}.icon-button:active{transform:scale(.96)}.secondary-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:2.75rem;color:var(--color-text);cursor:pointer;padding:.55rem 1rem}.secondary-button:active{transform:scale(.98)}.loading-skeleton{gap:1rem;max-width:42rem;display:grid}.loading-skeleton span{border-radius:var(--radius-sm);background:var(--color-bg-soft);height:1rem}.loading-skeleton span:first-child{width:68%;height:3.5rem}.loading-skeleton span:last-child{width:52%}@media (prefers-reduced-motion:no-preference){.loading-skeleton span{animation:skeleton-pulse 1.4s var(--ease-out) infinite alternate}}@keyframes skeleton-pulse{to{opacity:.45}}.site-header{z-index:var(--layer-header);border-bottom:1px solid var(--color-border);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-header{border-bottom:1px solid color-mix(in oklch, var(--color-border) 70%, transparent)}}.site-header{background:var(--color-bg)}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in oklch, var(--color-bg) 72%, transparent)}}.site-header{-webkit-backdrop-filter:blur(18px)saturate(1.5);backdrop-filter:blur(18px)saturate(1.5)}.site-header__inner{min-height:var(--header-height);grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;display:grid}.site-brand{letter-spacing:-.03em;align-items:center;gap:.6rem;width:fit-content;font-size:1rem;font-weight:680;display:inline-flex}.site-brand__mark{background:linear-gradient(135deg, var(--color-accent-strong), var(--aurora-b));width:1.7rem;height:1.7rem;color:var(--color-accent-contrast);box-shadow:0 4px 14px var(--color-accent);border-radius:.55rem;place-items:center;font-size:.78rem;font-weight:720;line-height:1;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.site-brand__mark{box-shadow:0 4px 14px color-mix(in oklch, var(--color-accent) 26%, transparent)}}.site-brand__mark{transition:transform var(--duration-fast) var(--ease-out)}.site-brand:hover .site-brand__mark{transform:rotate(-8deg)scale(1.05)}.desktop-nav{white-space:nowrap;align-items:center;gap:clamp(1rem,2.5vw,2rem);display:flex}.nav-link{color:var(--color-text-muted);font-size:var(--font-size-sm);transition:color var(--duration-fast) var(--ease-out);padding:.35rem .15rem;font-weight:520;position:relative}.nav-link:after{content:"";background:linear-gradient(90deg, var(--color-accent-strong), var(--aurora-b));transform-origin:0;height:2px;transition:transform var(--duration-base) var(--ease-out);border-radius:999px;position:absolute;bottom:-.12rem;left:0;right:0;transform:scaleX(0)}.nav-link:hover{color:var(--color-text)}.nav-link:hover:after,.nav-link--active:after{transform:scaleX(1)}.nav-link--active{color:var(--color-text)}.site-header__actions{justify-content:flex-end;gap:.5rem;display:flex}.mobile-menu{display:none;position:relative}.mobile-menu summary{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-align:center;place-items:center;width:auto;min-width:3.5rem;height:2.75rem;padding-inline:.7rem;list-style:none;display:inline-grid}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu__panel{z-index:var(--layer-menu);border:1px solid var(--color-border);width:min(17rem,100vw - 2rem);padding:.6rem;display:grid;position:absolute;top:calc(100% + .75rem);right:0}@supports (color:color-mix(in lab, red, red)){.mobile-menu__panel{border:1px solid color-mix(in oklch, var(--color-border) 78%, transparent)}}.mobile-menu__panel{border-radius:var(--radius-md);background:var(--color-bg)}@supports (color:color-mix(in lab, red, red)){.mobile-menu__panel{background:color-mix(in oklch, var(--color-bg) 92%, transparent)}}.mobile-menu__panel{box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(24px)saturate(1.4);backdrop-filter:blur(24px)saturate(1.4)}.mobile-menu__panel a{border-radius:calc(var(--radius-sm) - .15rem);min-height:2.75rem;padding:.55rem .75rem}.mobile-menu__panel a:active{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.mobile-menu__panel a:active{background:color-mix(in oklch, var(--color-accent) 10%, transparent)}}@media (hover:hover) and (pointer:fine){.icon-button:hover,.mobile-menu__panel a:hover{background:var(--color-bg-soft)}}.site-footer{margin-top:var(--space-section);border-top:1px solid var(--color-border)}.site-footer__inner{grid-template-columns:minmax(0,1.5fr) minmax(10rem,.7fr) auto;gap:2rem;padding-block:3rem;display:grid}.site-footer__title{margin-bottom:.25rem;font-weight:650}.site-footer__text,.site-footer__copyright{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:0}.site-footer__links{font-size:var(--font-size-sm);flex-wrap:wrap;align-content:start;gap:.5rem 1.25rem;display:flex}.hero{min-height:calc(100dvh - var(--header-height));grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr);align-items:center;gap:clamp(3rem,9vw,9rem);padding-block:clamp(3.5rem,8vw,6rem);display:grid}.hero__title{letter-spacing:-.075em;max-width:13ch;margin-bottom:1.5rem;font-size:clamp(3.5rem,8vw,7.4rem);font-weight:560;line-height:.92}.hero__description{max-width:34ch;color:var(--color-text-muted);margin-bottom:2rem;font-size:clamp(1.05rem,1.5vw,1.3rem)}.hero__aside{align-self:end;padding-bottom:clamp(0rem,8vw,6rem)}.hero__aside-label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:.75rem}.hero__aside p:last-child{margin-bottom:0;font-weight:540}.post-grid{grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:clamp(2rem,5vw,5rem);display:grid}.post-grid>:first-child{grid-row:span 2}.post-card{align-content:start;gap:1.5rem;display:grid}.post-card__media{border-radius:var(--radius-lg);background:var(--color-bg-soft);overflow:hidden}.post-card__media img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .55s var(--ease-out)}.post-card__media:hover img{transform:scale(1.025)}.post-card__meta{color:var(--color-text-muted);font-family:var(--font-geist-mono), monospace;flex-wrap:wrap;gap:.45rem 1rem;margin-bottom:.75rem;font-size:.75rem;display:flex}.post-card h2,.project-card h2{letter-spacing:-.045em;margin-bottom:.65rem;font-size:clamp(1.35rem,2.5vw,2.15rem);font-weight:580;line-height:1.08}.post-card h2 a,.project-card h2 a{transition:color var(--duration-fast) var(--ease-out)}.post-card h2 a:hover,.project-card h2 a:hover{color:var(--color-accent-strong)}.post-card__body>p,.project-card__body>p{max-width:55ch;color:var(--color-text-muted);margin-bottom:0}.project-list{gap:clamp(3.5rem,8vw,7rem);display:grid}.project-card{grid-template-columns:minmax(0,1.25fr) minmax(16rem,.75fr);align-items:end;gap:clamp(2rem,6vw,6rem);display:grid}.project-card:nth-child(2n){grid-template-columns:minmax(16rem,.75fr) minmax(0,1.25fr)}.project-card:nth-child(2n)>a{grid-column:2}.project-card:nth-child(2n) .project-card__body{grid-area:1/1}.project-card img{border-radius:var(--radius-lg);width:100%}.list-stack{gap:0;display:grid}.list-stack .post-card{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(10rem,.35fr) minmax(0,.65fr);padding-block:2rem}.list-stack .post-card__media img{aspect-ratio:4/3}.taxonomy-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.taxonomy-item{background:var(--color-surface);min-height:12rem;transition:background var(--duration-base) var(--ease-out);padding:clamp(1.5rem,4vw,3rem)}.taxonomy-item:hover{background:var(--color-bg-soft)}.taxonomy-item h2{letter-spacing:-.045em;margin-bottom:.65rem;font-size:clamp(1.45rem,3vw,2.2rem);font-weight:580}.taxonomy-item p,.taxonomy-item__meta{color:var(--color-text-muted)}.taxonomy-item__meta{font-size:var(--font-size-sm);margin-bottom:2rem;display:block}.tag-list{flex-wrap:wrap;gap:.75rem;display:flex}.tag-list a{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:2.75rem;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);padding:.55rem 1rem}.tag-list a:hover{background:var(--color-bg-soft);transform:translateY(-.1rem)}.empty-state{max-width:34rem;padding-block:clamp(3rem,8vw,7rem)}.empty-state h2{letter-spacing:-.04em;margin-bottom:.75rem;font-size:clamp(1.8rem,4vw,3rem);font-weight:580}.empty-state p{color:var(--color-text-muted)}.article-header{max-width:var(--reading-width);padding-top:clamp(3rem,6vw,5.5rem);padding-bottom:clamp(2rem,4vw,3.25rem)}.article-header h1{letter-spacing:-.03em;text-wrap:balance;margin-bottom:1.25rem;font-size:clamp(2.2rem,5.2vw,4rem);font-weight:580;line-height:1.12}.article-header__meta{color:var(--color-text-muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem;font-size:.78rem;display:flex}.article-cover{width:min(100% - 2rem, var(--container-width));border-radius:var(--radius-lg);object-fit:cover;max-height:min(70vh,40rem);margin:0 auto clamp(2.5rem,6vw,5rem)}.article-body{width:min(100% - 2rem, var(--reading-width));margin-inline:auto;padding-bottom:clamp(3rem,7vw,6rem)}@media (max-width:767px){.site-header__inner{grid-template-columns:1fr auto}.desktop-nav{display:none}.mobile-menu{display:block}.site-footer__inner,.hero,.post-grid,.project-card,.project-card:nth-child(2n),.list-stack .post-card,.taxonomy-grid{grid-template-columns:1fr}.site-footer__copyright{grid-column:1}.hero{gap:3.5rem;min-height:auto;padding-block:4.5rem}.hero__title{letter-spacing:-.065em;font-size:clamp(3rem,14vw,4.6rem)}.hero__aside{align-self:auto;padding-bottom:0}.post-grid>:first-child{grid-row:auto}.project-card:nth-child(2n)>a,.project-card:nth-child(2n) .project-card__body{grid-area:auto/1}}.aurora{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.aurora-container{width:100%;height:100%;position:absolute;inset:0}.aurora-container canvas{display:block}.aurora:before{content:"";background:radial-gradient(58rem 40rem at 10% -12%, var(--aurora-a), transparent 62%), radial-gradient(48rem 36rem at 92% 4%, var(--aurora-b), transparent 60%), radial-gradient(54rem 44rem at 52% 118%, var(--aurora-c), transparent 62%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.aurora:before{background:radial-gradient(58rem 40rem at 10% -12%, color-mix(in oklch, var(--aurora-a) 30%, transparent), transparent 62%), radial-gradient(48rem 36rem at 92% 4%, color-mix(in oklch, var(--aurora-b) 24%, transparent), transparent 60%), radial-gradient(54rem 44rem at 52% 118%, color-mix(in oklch, var(--aurora-c) 20%, transparent), transparent 62%)}}.aurora__spin{will-change:transform;position:absolute;inset:-50%}.aurora__blob{filter:blur(72px);opacity:.5;will-change:transform;border-radius:50%;width:46vw;min-width:22rem;height:46vw;min-height:22rem;position:absolute}.aurora__blob--a{background:var(--aurora-a);top:18%;left:22%}@supports (color:color-mix(in lab, red, red)){.aurora__blob--a{background:color-mix(in oklch, var(--aurora-a) 55%, transparent)}}.aurora__blob--b{background:var(--aurora-b);top:40%;left:62%}@supports (color:color-mix(in lab, red, red)){.aurora__blob--b{background:color-mix(in oklch, var(--aurora-b) 50%, transparent)}}.aurora__blob--c{background:var(--aurora-c);top:64%;left:34%}@supports (color:color-mix(in lab, red, red)){.aurora__blob--c{background:color-mix(in oklch, var(--aurora-c) 45%, transparent)}}@media (prefers-reduced-motion:no-preference){.aurora__spin{animation:70s linear infinite aurora-spin}.aurora__blob{animation:aurora-breathe 24s var(--ease-out) infinite alternate}}@keyframes aurora-spin{to{transform:rotate(360deg)}}@keyframes aurora-breathe{0%{transform:scale(1)}to{transform:scale(1.1)}}.btn{letter-spacing:-.01em;min-height:3rem;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.6rem;font-size:1rem;font-weight:600;display:inline-flex}.btn--primary{background:var(--color-accent-strong);color:var(--color-accent-contrast);box-shadow:0 10px 28px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.btn--primary{box-shadow:0 10px 28px color-mix(in oklch, var(--color-accent) 30%, transparent)}}.btn--primary:hover{background:var(--color-accent);box-shadow:0 14px 36px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.btn--primary:hover{box-shadow:0 14px 36px color-mix(in oklch, var(--color-accent) 40%, transparent)}}.btn--primary:active{transform:scale(.97)}.btn--ghost{border:1px solid var(--color-border);background:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.btn--ghost{background:color-mix(in oklch, var(--color-surface) 55%, transparent)}}.btn--ghost{color:var(--color-text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.btn--ghost:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.btn--ghost:hover{border-color:color-mix(in oklch, var(--color-accent) 34%, var(--color-border))}}.btn--ghost:hover{background:var(--color-bg-soft)}.btn--ghost:active{transform:scale(.97)}.spotlight-card{position:relative;overflow:hidden}.spotlight-card:before{content:"";z-index:1;border-radius:inherit;background:radial-gradient(22rem circle at var(--spot-x,50%) var(--spot-y,50%), var(--color-accent), transparent 45%);padding:1px;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.spotlight-card:before{background:radial-gradient(22rem circle at var(--spot-x,50%) var(--spot-y,50%), color-mix(in oklch, var(--color-accent) 65%, transparent), transparent 45%)}}.spotlight-card:before{-webkit-mask-composite:xor;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out);-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.spotlight-card:hover:before{opacity:1}.card-frame{border:1px solid var(--color-border);padding:clamp(1.25rem,3vw,2rem)}@supports (color:color-mix(in lab, red, red)){.card-frame{border:1px solid color-mix(in oklch, var(--color-border) 70%, transparent)}}.card-frame{border-radius:var(--radius-lg);background:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.card-frame{background:color-mix(in oklch, var(--color-surface) 40%, transparent)}}.card-frame{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-soft);transition:transform var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out)}.card-frame:hover{border-color:var(--color-accent);transform:translateY(-3px)}@supports (color:color-mix(in lab, red, red)){.card-frame:hover{border-color:color-mix(in oklch, var(--color-accent) 36%, var(--color-border))}}.card-frame:hover{box-shadow:0 24px 60px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.card-frame:hover{box-shadow:0 24px 60px color-mix(in oklch, var(--color-accent) 14%, transparent)}}.project-frame{border-radius:var(--radius-lg)}.hero__content{flex-direction:column;align-items:flex-start;display:flex}.hero__title-accent{background:linear-gradient(100deg, var(--color-accent-strong), var(--aurora-b) 55%, var(--aurora-c));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}@media (prefers-reduced-transparency:reduce){.btn--ghost,.card-frame{background:var(--color-surface);-webkit-backdrop-filter:none;backdrop-filter:none}}.rich-text{--rt-rhythm:1.5em;color:var(--color-text);font-size:clamp(1.0625rem,.98rem + .3vw,1.125rem);line-height:var(--line-body);overflow-wrap:break-word}.rich-text :where(p,ul,ol,blockquote,pre,figure){margin-block:0}.rich-text>*+*{margin-top:var(--rt-rhythm)}.rich-text h2,.rich-text h3,.rich-text h4{color:var(--color-text);letter-spacing:-.025em;text-wrap:balance;font-weight:620}.rich-text h2{margin-top:2.2em;margin-bottom:.65em;font-size:clamp(1.6rem,3.4vw,2.1rem);line-height:1.25}.rich-text h3{margin-top:1.9em;margin-bottom:.55em;font-size:clamp(1.3rem,2.6vw,1.55rem);line-height:1.35}.rich-text h4{margin-top:1.7em;margin-bottom:.5em;font-size:clamp(1.08rem,2vw,1.2rem);line-height:1.45}.rich-text h2+*,.rich-text h3+*,.rich-text h4+*,.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text p,.rich-text li{color:var(--color-text)}@supports (color:color-mix(in lab, red, red)){.rich-text p,.rich-text li{color:color-mix(in oklch, var(--color-text) 90%, var(--color-text-muted))}}.rich-text strong{color:var(--color-text);font-weight:640}.rich-text a{color:var(--color-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.rich-text a{-webkit-text-decoration-color:color-mix(in oklch, var(--color-accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in oklch, var(--color-accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in oklch, var(--color-accent) 45%, transparent);text-decoration-color:color-mix(in oklch, var(--color-accent) 45%, transparent)}}.rich-text a{text-underline-offset:.22em;transition:text-decoration-color var(--duration-fast) var(--ease-out);text-decoration-thickness:1px}.rich-text a:hover{-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.rich-text ul{list-style:outside}.rich-text ol{list-style:decimal}.rich-text ul,.rich-text ol{padding-inline-start:1.4em}.rich-text li+li,.rich-text li>ul,.rich-text li>ol{margin-top:.5em}.rich-text li::marker{color:var(--color-text-muted)}@supports (color:color-mix(in lab, red, red)){.rich-text li::marker{color:color-mix(in oklch, var(--color-text-muted) 80%, var(--color-accent))}}.rich-text li.nestedListItem{list-style:none}.rich-text .list-check{padding-inline-start:0;list-style:none}.rich-text .list-item-checkbox{align-items:flex-start;gap:.55em;display:flex}.rich-text .list-item-checkbox>br{display:none}.rich-text .list-item-checkbox input{width:.95em;height:.95em;margin:calc((1em * var(--line-body) - .95em) / 2) 0 0;accent-color:var(--color-accent);flex:none}.rich-text .list-item-checkbox-checked>label{color:var(--color-text-muted);text-decoration:line-through}.rich-text blockquote{border-left:2px solid var(--color-accent);margin-inline:0;padding:.15em 0 .15em 1.25rem}@supports (color:color-mix(in lab, red, red)){.rich-text blockquote{border-left:2px solid color-mix(in oklch, var(--color-accent) 70%, transparent)}}.rich-text blockquote{color:var(--color-text-muted)}.rich-text blockquote>*+*{margin-top:.75em}.rich-text pre{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-soft);padding:1.25rem;font-size:.88rem;overflow-x:auto}.code-block{border:1px solid var(--color-border);border-radius:var(--radius-md);color:#e5e1da;color:lab(89.5931% .465304 3.79374);background:#0f141a;background:lab(6.16521% -.959493 -5.00245);padding:1.25rem;font-size:.82rem;line-height:1.7;position:relative;overflow-x:auto}.code-copy{border-radius:var(--radius-sm);color:#e5e1da;color:lab(89.5931% .465304 3.79374);cursor:pointer;background:#192027;background:lab(11.8012% -1.35314 -6.0003);border:1px solid #404952;border:1px solid lab(30.3611% -1.72126 -7.10968);align-items:center;gap:.4rem;min-height:2.5rem;margin-top:1rem;padding:.4rem .7rem;display:inline-flex}.rich-text :not(pre)>code{background:var(--color-bg-soft);color:var(--color-text);font-family:var(--font-geist-mono), monospace;border-radius:.3rem;padding:.15em .35em;font-size:.9em}.rich-text hr{border:0;border-top:1px solid var(--color-border);margin-block:3rem}.rich-text picture{display:block}.rich-text img{border-radius:var(--radius-md);background:var(--color-bg-soft);width:100%;height:auto}.rich-media{margin-block:2.5rem}.rich-media img{border-radius:var(--radius-md);width:100%}.rich-media figcaption{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:.75rem;line-height:1.55}.rich-banner{border:1px solid var(--rich-banner-border);border-radius:var(--radius-md);background:var(--rich-banner-bg);border-left-width:3px;gap:.75rem;margin-block:2rem;padding:1rem 1.25rem;display:flex}.rich-banner--info{--rich-banner-border:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.rich-banner--info{--rich-banner-border:color-mix(in oklch, var(--color-accent) 40%, var(--color-border))}}.rich-banner--info{--rich-banner-bg:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.rich-banner--info{--rich-banner-bg:color-mix(in oklch, var(--color-accent) 8%, var(--color-surface))}}.rich-banner--success{--rich-banner-border:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.rich-banner--success{--rich-banner-border:color-mix(in oklch, var(--color-success) 45%, var(--color-border))}}.rich-banner--success{--rich-banner-bg:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.rich-banner--success{--rich-banner-bg:color-mix(in oklch, var(--color-success) 10%, var(--color-surface))}}.rich-banner--warning{--rich-banner-border:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.rich-banner--warning{--rich-banner-border:color-mix(in oklch, var(--color-warning) 45%, var(--color-border))}}.rich-banner--warning{--rich-banner-bg:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.rich-banner--warning{--rich-banner-bg:color-mix(in oklch, var(--color-warning) 12%, var(--color-surface))}}.rich-banner--error{--rich-banner-border:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.rich-banner--error{--rich-banner-border:color-mix(in oklch, var(--color-danger) 45%, var(--color-border))}}.rich-banner--error{--rich-banner-bg:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.rich-banner--error{--rich-banner-bg:color-mix(in oklch, var(--color-danger) 10%, var(--color-surface))}}.rich-text .rich-text,.rich-banner .rich-text{--rt-rhythm:.9em;font-size:1rem}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
