/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:Ubuntu regular;src:url(/static/fonts/ubuntu-regular-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu regular italic;src:url(/static/fonts/ubuntu-regular-italic-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu light;src:url(/static/fonts/ubuntu-light-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu light italic;src:url(/static/fonts/ubuntu-light-italic-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu medium;src:url(/static/fonts/ubuntu-medium-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu medium italic;src:url(/static/fonts/ubuntu-medium-italic-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu bold;src:url(/static/fonts/ubuntumono-bold-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu bold italic;src:url(/static/fonts/ubuntumono-bold-italic-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu Condensed;src:url(/static/fonts/ubuntu-condensed-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu Mono regular;src:url(/static/fonts/ubuntumono-regular-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu Mono regular italic;src:url(/static/fonts/ubuntumono-regular-italic-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu Mono bold;src:url(/static/fonts/ubuntumono-bold-webfont.woff2) format("woff2")}@font-face{font-family:Ubuntu Mono bold italic;src:url(/static/fonts/ubuntumono-bold-italic-webfont.woff2) format("woff2")}:root{--color-black-base: #191b1f;--color-payne-base: #495867;--color-blue-base: #577399;--color-sky-base: #bdd5ea;--color-neutral-base: #f7f7ff;--color-coral-base: #fe5f55;--color-black-100: #f5f5f8;--color-black-200: #dadade;--color-black-300: #bdbec2;--color-black-400: #a0a1a6;--color-black-500: #838489;--color-black-600: #65666b;--color-black-700: #484950;--color-black-800: #2c2d34;--color-black-900: #191b1f;--color-payne-100: #edeef0;--color-payne-200: #d0d3d7;--color-payne-300: #b3b8be;--color-payne-400: #8e949c;--color-payne-500: #697079;--color-payne-600: #495867;--color-payne-700: #3a4652;--color-payne-800: #2a333c;--color-payne-900: #1a2025;--color-blue-100: #eef1f5;--color-blue-200: #d3dbe7;--color-blue-300: #b6c4d8;--color-blue-400: #94adc8;--color-blue-500: #7191b3;--color-blue-600: #577399;--color-blue-700: #44597a;--color-blue-800: #2f3f56;--color-blue-900: #1a2330;--color-sky-100: #f4f8fc;--color-sky-200: #e6f0f7;--color-sky-300: #d4e5f2;--color-sky-400: #c9dcee;--color-sky-500: #bdd5ea;--color-sky-600: #9dbdd7;--color-sky-700: #7da5c4;--color-sky-800: #5d8dab;--color-sky-900: #3d6f8c;--color-neutral-100: #f7f7ff;--color-neutral-200: #eeeef7;--color-neutral-300: #d8d8e8;--color-neutral-400: #b8b8cc;--color-neutral-500: #9898ae;--color-neutral-600: #787890;--color-neutral-700: #585870;--color-neutral-800: #3a3a50;--color-neutral-900: #1e1e30;--color-coral-100: #fff0ef;--color-coral-200: #ffd0cd;--color-coral-300: #ffaeab;--color-coral-400: #fe8680;--color-coral-500: #fe5f55;--color-coral-600: #e04840;--color-coral-700: #b83830;--color-coral-800: #8c2820;--color-coral-900: #601a14;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-xs: var(--space-2);--space-sm: var(--space-3);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-12);--space-3xl: var(--space-16);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-h6: clamp(.875rem, .84rem + .18vw, 1rem);--text-h5: clamp(1rem, .93rem + .36vw, 1.25rem);--text-h4: clamp(1.125rem, 1.02rem + .54vw, 1.5rem);--text-h3: clamp(1.375rem, 1.23rem + .71vw, 1.875rem);--text-h2: clamp(1.75rem, 1.61rem + .71vw, 2.25rem);--text-h1: clamp(2rem, 1.71rem + 1.43vw, 3rem);--text-display: clamp(2.5rem, 2.07rem + 2.14vw, 4rem);--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed: 1.75;--bg-page: var(--color-black-900);--bg-nav: #0a0b0c;--bg-surface: var(--color-black-800);--bg-surface-hover: var(--color-payne-900);--text-primary: var(--color-neutral-100);--text-secondary: var(--color-payne-400);--text-muted: var(--color-black-500);--text-accent: var(--color-blue-400);--border-subtle: var(--color-payne-800);--border-default: var(--color-payne-700);--border-hover: var(--color-blue-600);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--font-sans: "Ubuntu regular", sans-serif;--font-sans-medium: "Ubuntu medium", sans-serif;--font-sans-bold: "Ubuntu bold", sans-serif;--font-mono: "Ubuntu Mono regular", monospace}.menu{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-4) 0}.menu .logo{color:var(--text-primary);font-size:var(--text-xs);text-decoration:none;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;display:flex;align-items:center;opacity:.9;transition:opacity .2s ease}.menu .logo:hover{opacity:1}.menu div:first-child{display:flex;align-items:center;gap:var(--space-8)}.menu ul{list-style:none;display:flex;align-items:center;margin:0;padding:0}.menu ul li a{color:var(--text-secondary);font-size:var(--text-xs);text-decoration:none;padding:var(--space-1) var(--space-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;transition:color .2s ease}.menu ul li a:hover{color:var(--accent)}.menu ul li a.twitter,.menu ul li a.github{padding:0;margin:0 var(--space-3);display:flex;align-items:center;opacity:.5;transition:opacity .2s ease}.menu ul li a.twitter:hover,.menu ul li a.github:hover{opacity:1}.twitter svg,.github svg{fill:var(--text-primary);width:15px;height:15px;display:block}.github svg{width:17px;height:17px}:root{--bg-page: #0f1116;--bg-nav: rgba(15, 17, 22, .88);--bg-surface: #16191f;--bg-surface-hover: #1b1f27;--font-sans-light: "Ubuntu light", sans-serif;--accent: #fe5f55;--accent-dim: rgba(254, 95, 85, .08)}*,*:before,*:after{box-sizing:border-box}html,body{background-color:var(--bg-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:var(--leading-tight);color:var(--text-primary);margin:0}p{color:var(--text-secondary);line-height:var(--leading-normal);margin:0}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-8)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes tickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.site-nav{position:sticky;top:0;z-index:100;background-color:var(--bg-nav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.05)}.hero{padding:var(--space-3xl) 0 var(--space-2xl);background:linear-gradient(155deg,#0f1116,#111624 55%,#0f1116);animation:fadeIn .5s ease both}.hero__eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.2em;color:var(--accent);display:block;margin-bottom:var(--space-5);animation:fadeUp .6s ease .1s both}.hero__name{font-family:var(--font-sans-light);font-size:clamp(3.5rem,2rem + 6vw,7.5rem);line-height:1;letter-spacing:-.03em;color:var(--text-primary);margin:0 0 var(--space-8);animation:fadeUp .6s ease .2s both}.hero__row{display:flex;align-items:flex-start;gap:var(--space-10);animation:fadeUp .6s ease .34s both}.hero__tagline{font-size:var(--text-lg);color:var(--text-secondary);max-width:48ch;line-height:var(--leading-relaxed);margin:0}.hero__ctas{display:flex;gap:var(--space-3);flex-shrink:0;padding-top:var(--space-1)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);transition:background-color .2s ease,color .2s ease,border-color .2s ease;white-space:nowrap;cursor:pointer}.btn--primary{background-color:var(--accent);color:var(--color-black-900);border:1px solid var(--accent)}.btn--primary:hover{background-color:var(--color-coral-600);border-color:var(--color-coral-600)}.btn--ghost{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn--ghost:hover{color:var(--text-primary);border-color:var(--border-hover)}.ticker{overflow:hidden;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);padding:var(--space-3) 0;background-color:#ffffff05;animation:fadeIn .7s ease .5s both}.ticker__track{display:flex;white-space:nowrap;animation:tickerScroll 30s linear infinite;width:-moz-max-content;width:max-content}.ticker:hover .ticker__track{animation-play-state:paused}.ticker__item{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);padding:0 var(--space-6)}.ticker__item--accent{color:var(--accent)}.ticker__sep{color:var(--border-default);font-family:var(--font-mono);font-size:.5rem;line-height:1.2rem;align-self:center}.work{padding:var(--space-3xl) 0;animation:fadeIn .7s ease .45s both}.work__header{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-8)}.work__label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background-color:#ffffff12;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-md);overflow:hidden}.card{background-color:var(--bg-surface);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);transition:background-color .22s ease,transform .22s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s ease;pointer-events:none}.card:hover{transform:translateY(-2px);background-color:var(--bg-surface-hover)}.card:hover:before{opacity:1}.card--project:before{background:radial-gradient(ellipse at top left,rgba(254,95,85,.08),transparent 70%)}.card--experiment:before{background:radial-gradient(ellipse at top left,rgba(87,115,153,.12),transparent 70%)}.card--collection:before{background:radial-gradient(ellipse at top left,rgba(189,213,234,.07),transparent 70%)}.card__tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;padding:2px var(--space-2);border-radius:2px;width:-moz-fit-content;width:fit-content}.card__tag--project{color:var(--accent);background-color:#fe5f551a}.card__tag--experiment{color:var(--color-blue-400);background-color:#5773991f}.card__tag--collection{color:var(--color-sky-500);background-color:#bdd5ea14}.card__title{font-family:var(--font-sans-medium);font-size:var(--text-h5);color:var(--text-primary);margin:0}.card__desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);flex:1;margin:0}.card__link{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);width:-moz-fit-content;width:fit-content;transition:color .15s ease}.card__link:after{content:"→";transition:transform .15s ease}.card:hover .card__link{color:var(--text-primary)}.card:hover .card__link:after{transform:translate(3px)}.about{padding:var(--space-3xl) 0}.about__hero{display:grid;grid-template-columns:200px 1fr;gap:var(--space-10);align-items:start;padding-bottom:var(--space-3xl);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-3xl);animation:fadeUp .6s ease .1s both}.about__photo img{width:100%;border-radius:var(--radius-md);display:block;filter:grayscale(20%);transition:filter .4s ease}.about__photo img:hover{filter:grayscale(0%)}.about__name{font-family:var(--font-sans-light);font-size:var(--text-h1);letter-spacing:-.02em;color:var(--text-primary);margin-bottom:var(--space-2)}.about__handle{font-family:var(--font-mono);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);display:block;margin-bottom:var(--space-6)}.about__intro p{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-relaxed);max-width:60ch}.about__intro p+p{margin-top:var(--space-4)}.about__sections{display:grid;grid-template-columns:repeat(3,1fr);gap:0;animation:fadeUp .6s ease .25s both}.about__block{padding:0 var(--space-8) 0 0;border-right:1px solid var(--border-subtle)}.about__block:not(:first-child):not(:last-child){padding-left:var(--space-8)}.about__block:last-child{border-right:none;padding-right:0;padding-left:var(--space-8)}.about__block-label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--accent);display:block;margin-bottom:var(--space-4)}.about__block p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}.about__block p+p{margin-top:var(--space-3)}.about__block strong{color:var(--text-primary);font-family:var(--font-sans-medium);font-weight:400}.error-page{padding:var(--space-3xl) 0;text-align:center;min-height:60vh;display:flex;align-items:center;animation:fadeUp .6s ease .1s both}.error-page__code{font-family:var(--font-sans-light);font-size:clamp(6rem,2rem + 12vw,12rem);line-height:1;letter-spacing:-.04em;color:var(--text-primary);margin-bottom:var(--space-4)}.error-page__message{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-8)}.error-page__link{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);transition:background-color .2s ease,color .2s ease}.error-page__link:hover{background-color:var(--accent);color:var(--color-black-900)}@media(max-width:960px){.hero__row{flex-direction:column;gap:var(--space-6)}.card-grid{grid-template-columns:repeat(2,1fr)}.about__sections{grid-template-columns:1fr;gap:0}.about__block,.about__block:not(:first-child):not(:last-child),.about__block:last-child{padding:0 0 var(--space-8) 0;border-right:none;border-bottom:1px solid var(--border-subtle)}.about__block:last-child{border-bottom:none;padding-bottom:0}}@media(max-width:640px){.container{padding:0 var(--space-5)}.hero__name{font-size:clamp(2.5rem,10vw,4rem)}.hero__ctas{flex-direction:column;width:100%}.btn{justify-content:center}.card-grid{grid-template-columns:1fr}.about__hero{grid-template-columns:1fr;gap:var(--space-6)}.about__photo img{max-width:140px}}
