.theme-btn[data-astro-cid-x3pjskd3]{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:var(--surface);color:var(--ink);border:var(--border-thick);border-radius:var(--radius);box-shadow:var(--shadow-hard-sm);cursor:pointer;padding:0;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);flex-shrink:0}@media(hover:hover)and (pointer:fine){.theme-btn[data-astro-cid-x3pjskd3]:hover{transform:translate(var(--off-sm),var(--off-sm));box-shadow:0 0 0 var(--ink)}}@media(max-width:768px){.theme-btn[data-astro-cid-x3pjskd3]{min-width:44px;min-height:44px}}.theme-btn[data-astro-cid-x3pjskd3]:active{transform:translate(var(--off),var(--off));box-shadow:0 0 0 var(--ink)}.theme-btn[data-astro-cid-x3pjskd3] svg[data-astro-cid-x3pjskd3]{transition:transform var(--dur-fast) var(--ease-snap)}.theme-btn[data-astro-cid-x3pjskd3]:active svg[data-astro-cid-x3pjskd3]{transform:rotate(90deg)}.theme-btn[data-astro-cid-x3pjskd3].flash-dark{border-color:#cfcfcf;box-shadow:var(--off-sm) var(--off-sm) 0 #cfcfcf}.theme-btn[data-astro-cid-x3pjskd3].flash-light{border-color:#000;box-shadow:var(--off-sm) var(--off-sm) 0 #000}#icon-sun[data-astro-cid-x3pjskd3]{display:none}#icon-moon[data-astro-cid-x3pjskd3],html.dark #icon-sun[data-astro-cid-x3pjskd3]{display:block}html.dark #icon-moon[data-astro-cid-x3pjskd3]{display:none}.nav-header[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:var(--bw-thick) solid var(--ink);height:68px;display:flex;align-items:center;box-shadow:0 0 0 transparent;transition:background var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.nav-header[data-astro-cid-dmqpwcec].is-scrolled{box-shadow:var(--shadow-hard-sm)}.nav-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;height:100%}.nav-wordmark[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:.28rem;font-family:var(--font-head);font-weight:800;font-size:1.3rem;text-transform:none;letter-spacing:-.01em;color:var(--ink);text-decoration:none;position:relative}.nav-wordmark-text[data-astro-cid-dmqpwcec]{line-height:1}.nav-wordmark[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:3px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}.nav-burger[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:var(--surface);color:var(--ink);border:var(--border-thick);border-radius:var(--radius);box-shadow:var(--shadow-hard-sm);cursor:pointer;flex-shrink:0;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.nav-burger[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{display:block;width:18px;height:2px;background:var(--ink);border-radius:0;transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.nav-burger[data-astro-cid-dmqpwcec]:active{transform:translate(var(--off-sm),var(--off-sm));box-shadow:0 0 0 var(--ink)}.nav-links[data-astro-cid-dmqpwcec]{list-style:none;margin:0;padding:0}.nav-link[data-astro-cid-dmqpwcec]{position:relative;color:var(--ink);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.nav-link[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--accent-1);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}.nav-link[data-astro-cid-dmqpwcec].is-active:after{transform:scaleX(1)}.nav-link[data-astro-cid-dmqpwcec].is-active{color:var(--accent-1)}@media(hover:hover)and (pointer:fine){.nav-wordmark[data-astro-cid-dmqpwcec]:hover:after{transform:scaleX(1)}.nav-wordmark[data-astro-cid-dmqpwcec]:hover{color:var(--ink)}.nav-link[data-astro-cid-dmqpwcec]:hover:after{transform:scaleX(1)}.nav-link[data-astro-cid-dmqpwcec]:hover{color:var(--accent-1)}}@media(max-width:768px){.nav-burger[data-astro-cid-dmqpwcec]{display:inline-flex}.nav-header[data-astro-cid-dmqpwcec]{position:sticky}.nav-links[data-astro-cid-dmqpwcec]{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:var(--bw-thick) solid var(--ink);box-shadow:var(--shadow-hard);padding:0;margin:0;z-index:49}.nav-header[data-astro-cid-dmqpwcec].nav-open .nav-links[data-astro-cid-dmqpwcec]{display:flex}.nav-links[data-astro-cid-dmqpwcec] li[data-astro-cid-dmqpwcec]{border-top:var(--bw) solid var(--hairline);width:100%}.nav-links[data-astro-cid-dmqpwcec] li[data-astro-cid-dmqpwcec]:first-child{border-top:none}.nav-link[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 var(--space-5);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase}.nav-link[data-astro-cid-dmqpwcec]:after{content:"→";position:static;width:auto;height:auto;background:none;transform:none;color:var(--accent-1);font-family:inherit;font-size:inherit;opacity:.7;transition:none}.nav-link[data-astro-cid-dmqpwcec].is-active:after{transform:none}}.site-footer[data-astro-cid-sz7xmlte]{background:var(--ink);color:var(--paper);border-top:var(--bw-thick) solid var(--ink);padding-top:var(--space-7);padding-bottom:calc(var(--space-7) + env(safe-area-inset-bottom))}.footer-text[data-astro-cid-sz7xmlte]{font-size:var(--fs-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);opacity:.75}/*! tailwindcss v4.3.1 | 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-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-ease:initial}}}@layer theme{:root,:host{--font-sans:"Archivo Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, "Cascadia Code", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 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:"Anton", "Archivo Variable", system-ui, sans-serif;--font-head:"Archivo Variable", system-ui, sans-serif}}@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,ui-sans-serif, system-ui, 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;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{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{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.z-40{z-index:40}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.flex-shrink,.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}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.border{border-style:var(--tw-border-style);border-width:1px}.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}.invert{--tw-invert:invert(100%);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,)}.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,)}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--container:1200px;--container-narrow:880px;--content:760px;--bw:2px;--bw-thick:3px;--radius:0px;--radius-pill:999px;--off-sm:4px;--off:6px;--off-lg:10px;--border:var(--bw) solid var(--ink);--border-thick:var(--bw-thick) solid var(--ink);--shadow-hard-sm:var(--off-sm) var(--off-sm) 0 var(--ink);--shadow-hard:var(--off) var(--off) 0 var(--ink);--shadow-hard-lg:var(--off-lg) var(--off-lg) 0 var(--ink);--fs-display:clamp(3rem, 9vw, 8rem);--fs-h1:clamp(2.4rem, 6.2vw, 5rem);--fs-h2:clamp(1.9rem, 4vw, 3.2rem);--fs-h3:clamp(1.25rem, 2.2vw, 1.85rem);--fs-lead:clamp(1.08rem, 1.5vw, 1.35rem);--fs-body:1.0625rem;--fs-sm:.9rem;--fs-mono:.76rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.16s;--dur:.28s;--dur-slow:.6s;--ease-slam:cubic-bezier(.16, 1.2, .3, 1);--ease-snap:cubic-bezier(.2, 0, 0, 1);--dur-stamp:.34s;--paper:#f5f2e9;--surface:#fffdf7;--surface-2:#ece7d8;--ink:#0d0d0d;--ink-soft:#3c3a34;--muted:#6b6862;--hairline:#0d0d0d24;--accent-1:#2b4cf0;--on-1:#fff;--accent-2:#ef4322;--on-2:#0d0d0d;--accent-pop:#e8ff2a;--on-pop:#0d0d0d;--accent-3:#2fbf71;--on-3:#0d0d0d;--accent-4:#7c4dff;--on-4:#fff;--accent-5:#ff4da6;--on-5:#0d0d0d;color-scheme:light}.dark{--paper:#12110d;--surface:#1b1914;--surface-2:#232017;--ink:#f3eee3;--ink-soft:#d3cdbf;--muted:#9b958a;--hairline:#f3eee329;--accent-1:#4566ff;--on-1:#fff;--accent-2:#ff6a4d;--on-2:#0d0d0d;--accent-pop:#e8ff2a;--on-pop:#0d0d0d;--accent-3:#34d27d;--on-3:#0d0d0d;--accent-4:#8a5cff;--on-4:#fff;--accent-5:#ff5fb0;--on-5:#0d0d0d;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out);margin:0;font-weight:420;line-height:1.6}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-shell>main{flex:1 0 auto}::selection{background:var(--accent-pop);color:var(--on-pop)}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}:focus-visible{outline:3px solid var(--accent-1);outline-offset:3px}h1,h2,h3,h4{text-wrap:balance;margin:0;line-height:1.02}p{margin:0}.container{width:100%;max-width:var(--container);padding-left:max(clamp(1.25rem,5vw,3rem),env(safe-area-inset-left));padding-right:max(clamp(1.25rem,5vw,3rem),env(safe-area-inset-right));margin-inline:auto}.narrow{max-width:var(--container-narrow)}.content{max-width:var(--content)}.narrow,.content{margin-inline:auto}.section{padding-block:clamp(3.5rem,8vw,7rem)}.section-lg{padding-block:clamp(5rem,11vw,10rem)}.stack{flex-direction:column;display:flex}.stack-2>*+*{margin-top:var(--space-2)}.stack-3>*+*{margin-top:var(--space-3)}.stack-4>*+*{margin-top:var(--space-4)}.stack-5>*+*{margin-top:var(--space-5)}.stack-6>*+*{margin-top:var(--space-6)}.row{align-items:center;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;display:flex}.between{justify-content:space-between}.center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.grid-2{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}.bento{gap:var(--space-5);grid-template-columns:repeat(6,1fr);display:grid}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}@media(max-width:900px){.bento{grid-template-columns:1fr}.col-2,.col-3,.col-4,.col-6{grid-column:auto}}.display{font-family:var(--font-display);font-size:var(--fs-display);letter-spacing:.005em;text-transform:uppercase;font-weight:400;line-height:.92}.h1{font-family:var(--font-display);font-size:var(--fs-h1);text-transform:uppercase;font-weight:400;line-height:.96}.h2{font-family:var(--font-display);font-size:var(--fs-h2);text-transform:uppercase;font-weight:400;line-height:1}.h3{font-family:var(--font-head);font-size:var(--fs-h3);letter-spacing:-.005em;font-weight:800;line-height:1.25}.lead{font-size:var(--fs-lead);color:var(--ink-soft);max-width:56ch;line-height:1.5}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase}.eyebrow{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-1);display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:1.75rem;height:2px}.section-label{align-items:center;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2);margin-bottom:var(--space-5);display:flex}.section-label:after{content:"";background:var(--hairline);flex:1;height:2px}.section-title{font-family:var(--font-display);font-size:var(--fs-h2);text-transform:uppercase;font-weight:400;line-height:1}.ghost-num{font-family:var(--font-display);color:var(--ink);opacity:.07;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:400;line-height:.8}.tx-1{color:var(--accent-1)}.tx-2{color:var(--accent-2)}.tx-pop{color:var(--accent-pop)}.underline-skew{background-image:linear-gradient(var(--accent-2),var(--accent-2));background-position:0 88%;background-repeat:no-repeat;background-size:100% .28em}.panel,.card{background:var(--surface);border:var(--border-thick);border-radius:var(--radius);box-shadow:var(--shadow-hard);position:relative}.card{--card-accent:var(--accent-1);--card-on-accent:var(--on-1)}.card--stripe:before{content:"";background:var(--card-accent);height:8px;position:absolute;inset:0 0 auto}.card--1{--card-accent:var(--accent-1);--card-on-accent:var(--on-1)}.card--2{--card-accent:var(--accent-2);--card-on-accent:var(--on-2)}.card--3{--card-accent:var(--accent-3);--card-on-accent:var(--on-3)}.card--pop{--card-accent:var(--accent-pop);--card-on-accent:var(--on-pop)}.card--ink{--card-accent:var(--ink);--card-on-accent:var(--paper)}.card-pad{padding:clamp(1.5rem,3vw,2.5rem)}.press{transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.press:active{transform:translate(var(--off),var(--off));box-shadow:0 0 0 var(--ink)}.project-card .arrow-link:after{content:"↗";transition:transform var(--dur-fast) var(--ease-out);margin-left:.3em;display:inline-block}@media(hover:hover)and (pointer:fine){.press:hover{transform:translate(var(--off-sm),var(--off-sm));box-shadow:var(--shadow-hard-sm)}.project-card.press:hover{box-shadow:var(--off-sm) var(--off-sm) 0 var(--card-accent)}.project-card:hover .arrow-link:after{transform:translate(2px,-2px)}[data-tilt].press:hover{transform:none}}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-head);letter-spacing:.01em;text-transform:uppercase;cursor:pointer;background:var(--surface);color:var(--ink);border:var(--border-thick);border-radius:var(--radius);box-shadow:var(--shadow-hard-sm);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);padding:.85em 1.5em;font-size:.95rem;font-weight:800;line-height:1;display:inline-flex}.btn:active{transform:translate(var(--off-sm),var(--off-sm))}.btn-primary{background:var(--accent-1);color:var(--on-1)}.btn-accent{background:var(--accent-2);color:var(--on-2)}.btn-pop{background:var(--accent-pop);color:var(--on-pop)}.btn-ghost{background:0 0}@media(hover:hover)and (pointer:fine){.btn:hover{transform:translate(var(--off-sm),var(--off-sm));box-shadow:0 0 0 var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--paper)}}.tag{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--surface);color:var(--ink);border:var(--bw) solid var(--ink);border-radius:var(--radius);padding:.35em .7em;display:inline-flex}.tag-2{background:var(--accent-2);color:var(--on-2)}.tag-ink{background:var(--ink);color:var(--paper)}.status{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--surface);color:var(--ink);border:var(--bw) solid var(--ink);padding:.4em .85em;display:inline-flex}@media(hover:hover)and (pointer:fine){.tag{transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.tag:hover{box-shadow:var(--shadow-hard-sm);transform:translateY(-2px)}}.sticker{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--surface);color:var(--ink);border:var(--bw-thick) solid var(--ink);box-shadow:var(--shadow-hard-sm);padding:.5em 1em;display:inline-flex}.sticker-1{background:var(--accent-1);color:var(--on-1)}.sticker-2{background:var(--accent-2);color:var(--on-2)}.sticker-pop{background:var(--accent-pop);color:var(--on-pop)}.sticker-ink{background:var(--ink);color:var(--paper)}.sticker-3{background:var(--accent-3);color:var(--on-3)}.sticker-4{background:var(--accent-4);color:var(--on-4)}.sticker-5{background:var(--accent-5);color:var(--on-5)}.rot-l{--rot:-2.5deg;transform:rotate(var(--rot))}.rot-r{--rot:2.5deg;transform:rotate(var(--rot))}.sticker{position:relative}@media(hover:hover)and (pointer:fine){.sticker{transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out)}.sticker.is-pulled{box-shadow:var(--shadow-hard);z-index:2}.sticker.is-peeled{box-shadow:var(--off-lg) var(--off-lg) 0 var(--ink);z-index:3}.sticker:hover:not(.is-peeled):not(.is-pulled){box-shadow:var(--off-lg) var(--off-lg) 0 var(--ink);z-index:3;animation:none;transform:translateY(-7px)rotate(0)scale(1.05)}}.marquee{background:var(--ink);border-top:var(--bw-thick) solid var(--paper);border-bottom:var(--bw-thick) solid var(--paper);transform:skew(var(--mq-skew,0deg));transition:transform var(--dur-fast) var(--ease-out);overflow:hidden}.marquee-track{will-change:transform;backface-visibility:hidden;width:max-content;animation:44s linear infinite marquee;display:flex}.marquee.is-paused .marquee-track{animation-play-state:paused}@media(hover:hover)and (pointer:fine){.marquee:hover .marquee-track{animation-play-state:paused}}.marquee-item{align-items:center;gap:var(--space-4);padding:1.05rem 0;padding-right:var(--space-7);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-pop);white-space:nowrap;font-size:.875rem;display:inline-flex}.marquee-item span[aria-hidden]{color:var(--accent-2);opacity:.85;font-size:.7em}@media(hover:hover)and (pointer:fine){.marquee-item:hover{color:var(--accent-pop);transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);transform:scale(1.04)}}.dark .marquee{border-color:var(--hairline);background:#0d0d0d}.reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),clip-path var(--dur-slow) var(--ease-out);transition-delay:var(--d,0s)}.reveal.is-visible{opacity:1;clip-path:inset(0);transform:none}.reveal,.reveal[data-reveal=fade-up]{transform:translateY(28px)}.reveal[data-reveal=slam]{transition-timing-function:var(--ease-slam);transform:scale(1.04)rotate(-1.2deg)}.reveal[data-reveal=clip-wipe]{opacity:1;clip-path:inset(0 100% 0 0);transition:clip-path var(--dur-slow) var(--ease-snap);transition-delay:var(--d,0s);transform:none}.reveal[data-reveal=slam]{will-change:transform}.reveal[data-reveal=slam].is-visible{will-change:auto}.reveal[data-reveal=clip-wipe].is-visible{clip-path:inset(0)}.reveal[data-reveal=stagger-children]{opacity:1;transition:none;transform:none}.reveal[data-reveal=stagger-children]>.reveal-child{opacity:0;transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--d,0s);transform:translateY(20px)}.reveal[data-reveal=stagger-children].is-visible>.reveal-child{opacity:1;transform:none}.hero-section{--stamp-from:.62s;--stamp-step:80ms;--stamp-count:5}.hero-headline .slam-line{padding-block:.06em;display:block;overflow:hidden}.hero-headline .slam-line>span{opacity:0;transition:transform var(--dur) var(--ease-slam),opacity .18s linear;transition-delay:var(--d,0s);display:inline-block;transform:translateY(110%)skewY(3deg)}.hero-loaded .hero-headline .slam-line>span{opacity:1;transform:none}.hero-headline .marker{transition:background-size .42s var(--ease-snap);transform-origin:0%;background-position:0 100%;background-size:0% .09em;padding-bottom:.12em;transition-delay:.52s;display:inline-block}.hero-loaded .hero-headline .marker{background-size:100% .09em}@keyframes marker-sweep{0%{animation-timing-function:cubic-bezier(.45,0,.55,1);transform:rotate(0)}13%{animation-timing-function:cubic-bezier(.16,.82,.28,1);transform:rotate(-7deg)}47%{animation-timing-function:linear;transform:rotate(90deg)}61%{animation-timing-function:cubic-bezier(.6,0,.4,1);transform:rotate(90deg)}88%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:rotate(-3deg)}to{transform:rotate(0)}}.hero-headline .slam-line.is-settled{overflow:visible}.hero-headline .slam-line.is-settled .marker{will-change:transform;animation:.92s linear marker-sweep}.hero-rise{opacity:0;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(14px)}.hero-loaded .hero-rise{opacity:1;transform:none}.sticker-cluster .sticker{opacity:0}@keyframes sticker-stamp{0%{opacity:0;transform:translateY(-10px)scale(1.18)rotate(0)}55%{opacity:1}to{opacity:1;transform:translateY(0) scale(1) rotate(var(--rot,0deg))}}.hero-loaded .sticker-cluster .sticker{animation:sticker-stamp var(--dur-stamp) var(--ease-slam) forwards;animation-delay:calc(var(--stamp-from) + var(--i,0) * var(--stamp-step))}@keyframes paper-sway{0%,to{opacity:1;transform:translateY(0) rotate(var(--rot,0deg))}50%{opacity:1;transform:translateY(-2px) rotate(calc(var(--rot,0deg) + var(--sway,1deg)))}}.hero-section.is-alive .sticker-cluster .sticker{animation:paper-sway var(--per,7s) var(--ease-out) infinite}.hero-section.is-alive .sticker-cluster .sticker:first-child{--sway:-1.4deg;--per:7.5s;animation-delay:-1.1s}.hero-section.is-alive .sticker-cluster .sticker:nth-child(2){--sway:1.2deg;--per:6.5s;animation-delay:-3.4s}.hero-section.is-alive .sticker-cluster .sticker:nth-child(3){--sway:1.5deg;--per:8.2s;animation-delay:-.5s}.hero-section.is-alive .sticker-cluster .sticker:nth-child(4){--sway:-1.1deg;--per:7.1s;animation-delay:-2.2s}.hero-section.is-alive .sticker-cluster .sticker:nth-child(5){--sway:1.3deg;--per:9s;animation-delay:-4s}.sticker-cluster.is-paused .sticker{animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.prose{max-width:var(--content);color:var(--ink-soft);margin-inline:auto;font-size:1.125rem;line-height:1.7}.prose>*+*{margin-top:1.4em}.prose h2{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);margin-top:2em;font-size:clamp(1.7rem,3.5vw,2.6rem);line-height:1.02}.prose h3{font-family:var(--font-head);color:var(--ink);margin-top:1.6em;font-size:1.4rem;font-weight:800;line-height:1.25}.prose a{color:var(--accent-1);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}@media(hover:hover)and (pointer:fine){.prose a{transition:text-decoration-color var(--dur-fast) var(--ease-out),text-underline-offset var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.prose a:hover{color:var(--accent-2);text-underline-offset:5px}}.prose strong{color:var(--ink);font-weight:700}.prose code{font-family:var(--font-mono);background:var(--surface-2);border:var(--bw) solid var(--ink);padding:.1em .4em;font-size:.86em}.prose pre{background:var(--ink);color:var(--paper);border:var(--border-thick);box-shadow:var(--shadow-hard-sm);padding:1.25rem;overflow-x:auto}.prose pre code{color:inherit;background:0 0;border:0;padding:0}.prose blockquote{border-left:var(--bw-thick) solid var(--accent-2);color:var(--muted);padding-left:1.25rem;font-style:italic}.prose ul,.prose ol{padding-left:1.4rem}.prose img{border:var(--border-thick);box-shadow:var(--shadow-hard-sm)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}.marquee-track{white-space:normal;flex-wrap:wrap;animation:none}.press:hover,.btn:hover{transform:none}.reveal,.reveal[data-reveal]{opacity:1;clip-path:none;transform:none}.reveal[data-reveal=stagger-children]>.reveal-child,.hero-headline .slam-line>span{opacity:1;transform:none}.hero-headline .marker{background-size:100% .28em}.hero-rise{opacity:1;transform:none}.sticker-cluster .sticker{opacity:1;transform:rotate(var(--rot,0deg));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-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-ease{syntax:"*";inherits:false}
