@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a6c19694cd327cd4-s.p.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/851c4691abdf3def-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a8a8dd7277bab4cf-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/313510e2713fb214-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Hanken Grotesk Fallback;src:local("Arial");ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.00%;size-adjust:100.94%}.__className_a9585d{font-family:Hanken Grotesk,Hanken Grotesk Fallback,system-ui,sans-serif;font-style:normal}.__variable_a9585d{--font-sans:"Hanken Grotesk","Hanken Grotesk Fallback",system-ui,sans-serif}@font-face{font-family:DSEG7Classic;src:url(/_next/static/media/37dc784befd8c6a3-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:DSEG7Classic;src:url(/_next/static/media/e87fc350ab4b586c-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:italic}@font-face{font-family:DSEG7Classic Fallback;src:local("Arial");ascent-override:62.50%;descent-override:0.00%;line-gap-override:5.63%;size-adjust:159.99%}.__className_ae8c6c{font-family:DSEG7Classic,DSEG7Classic Fallback,monospace}.__variable_ae8c6c{--font-segm7:"DSEG7Classic","DSEG7Classic Fallback",monospace}@font-face{font-family:DSEG14Classic;src:url(/_next/static/media/50bd1bc76b82116e-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:DSEG14Classic;src:url(/_next/static/media/a1847a1b56d7f4f2-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:italic}@font-face{font-family:DSEG14Classic Fallback;src:local("Arial");ascent-override:62.50%;descent-override:0.00%;line-gap-override:5.63%;size-adjust:159.99%}.__className_a54582{font-family:DSEG14Classic,DSEG14Classic Fallback,monospace}.__variable_a54582{--font-segm14:"DSEG14Classic","DSEG14Classic Fallback",monospace}@font-face{font-family:BerkeleyMono;src:url(/_next/static/media/d473b60d00a19339-s.p.woff2) format("woff2");font-display:swap}@font-face{font-family:BerkeleyMono Fallback;src:local("Arial");ascent-override:72.70%;descent-override:18.56%;line-gap-override:0.00%;size-adjust:131.49%}.__className_0ba930{font-family:BerkeleyMono,BerkeleyMono Fallback,monospace}.__variable_0ba930{--font-mono:"BerkeleyMono","BerkeleyMono Fallback",monospace}@font-face{font-family:Discordia;src:url(/_next/static/media/c50e20543700a1af-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:Discordia;src:url(/_next/static/media/b83d8f81d0419287-s.p.woff2) format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:Discordia;src:url(/_next/static/media/76321a0ed89ffabd-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:Discordia Fallback;src:local("Arial");ascent-override:95.94%;descent-override:43.91%;line-gap-override:0.00%;size-adjust:122.99%}.__className_622799{font-family:Discordia,Discordia Fallback,serif}.__variable_622799{--font-serif:"Discordia","Discordia Fallback",serif}

/*! tailwindcss v4.1.18 | 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)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-font-weight: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-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}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-100:oklch(93.2% .032 255.585);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--font-weight-bold:700;--aspect-video:16/9;--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)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before{box-sizing:border-box}*{margin:0}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{-webkit-font-smoothing:antialiased;line-height:1.5}canvas,img,picture,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#__next,#root{isolation:isolate}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.relative{position:relative}.static{position:static}.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}}.-m-2{margin:calc(var(--spacing)*-2)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-\[22px\]{margin-bottom:22px}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.aspect-video{aspect-ratio:var(--aspect-video)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-\[280px\]{height:280px}.min-h-32{min-height:calc(var(--spacing)*32)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.translate-y-px{--tw-translate-y:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-\[14px\]{border-radius:14px}.rounded-\[32px\]{border-radius:32px}.rounded-full{border-radius:3.40282e+38px}.rounded-t-\[18px\]{border-top-left-radius:18px;border-top-right-radius:18px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-white{border-color:var(--color-white)}.bg-\[\#cb2b1d\]{background-color:#cb2b1d}.bg-gray-900{background-color:var(--color-gray-900)}.bg-white{background-color:var(--color-white)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-0{padding-block:calc(var(--spacing)*0)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.font-mono{font-family:var(--font-mono)}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--color-gray-400)}.text-white{color:var(--color-white)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-\[0_0px_2px_0px_rgba\(0\,0\,0\,0\.25\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0px_2px_0px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 0px 2px 0px var(--tw-shadow-color,#00000040)}.shadow-\[0_0px_2px_1px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 0px 2px 1px var(--tw-shadow-color,#0009)}.shadow-\[0_0px_2px_1px_rgba\(0\,0\,0\,0\.6\)\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.blur{--tw-blur:blur(8px)}.blur,.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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}}.about{margin-bottom:64px}.about__header{font:var(--type-header-large);letter-spacing:var(--type-ls-header);margin-top:32px;margin-bottom:24px}.about__text p{margin:20px 0}@media (max-width:768px){.about__header{margin-top:20px;margin-bottom:16px}}.about__description{color:var(--color-gray-800);font:var(--type-text-medium);letter-spacing:-.005em;margin-bottom:64px}.about__selected-projects{margin-bottom:72px}.about__mini-map{margin-bottom:80px}@media (max-width:768px){.about{margin-bottom:48px}.about__description,.about__mini-map,.about__selected-projects{margin-bottom:54px}.about__header{font:var(--type-header-medium)}}.top-bar{z-index:100;margin-bottom:64px;padding-top:32px;position:relative}.top-bar__links{flex-flow:wrap;flex:1 0;align-items:center;gap:8px 12px;display:flex}.top-bar__link{height:36px;color:var(--color-gray-800);font:var(--type-text-regular);border-radius:3px;align-items:center;padding:0 12px;font-weight:500;text-decoration:none;display:inline-flex}.top-bar__link--active{color:var(--color-gray-500);background-color:var(--color-gray-100)}.top-bar__link:hover:not(.top-bar__link--active){background-color:var(--color-gray-50);color:var(--color-accent)}.top-bar__link--external:after{content:"";background-color:var(--color-gray-300);border-radius:4px;width:4px;height:4px;margin-left:4px;display:inline-block;position:relative;top:-6px}.top-bar__link--external:hover:after{background-color:var(--color-accent);opacity:.8}.top-bar__layout{--logo-size:54px;--logo-margin:40px;margin-left:calc(-1*(var(--logo-size) + var(--logo-margin) + 12px));align-items:center;display:flex}.top-bar__logo-wrapper{margin-right:calc(var(--logo-margin))}.top-bar__logo{--color:var(--color-gray-800);width:var(--logo-size);height:var(--logo-size);border-radius:3px;display:block}.top-bar__logo:after{background:var(--color);content:"";width:100%;height:100%;display:block;-webkit-mask:url(/_next/static/media/logo-mask.9b0d656a.png) 50%/100% no-repeat;mask:url(/_next/static/media/logo-mask.9b0d656a.png) 50%/100% no-repeat}.top-bar__logo:hover{--color:var(--color-accent)}@media (min-width:768px){.top-bar__link--mobile-only{display:none}}@media (max-width:768px){.top-bar__layout{--logo-size:32px;--logo-margin:22px;flex-wrap:wrap;margin-left:0}.top-bar__links{order:1}.top-bar__logo-wrapper{order:2;align-self:flex-start;margin-left:12px;margin-right:0}.top-bar{margin-bottom:48px}}.footer{margin-top:32px;padding:0 0 80px}.footer__main{margin:0 auto 80px}.footer__divider{background:linear-gradient(to right,transparent 5%,var(--color-gray-100),transparent 95%);height:2px}@media (max-width:768px){.footer__main{margin-bottom:64px}}.footer__links{font:var(--type-text-regular);grid-template-columns:repeat(2,1fr);gap:12px 64px;font-weight:500;display:grid}.footer__reach-out{color:var(--color-gray-600);font:var(--type-text-regular);margin-bottom:32px;padding-top:48px}.footer__link{color:var(--color-gray-800);text-decoration:none}.footer__link:hover{color:var(--color-accent)}.footer__cv{grid-area:1/1/span 2/span 1;place-self:flex-start;width:100%}@media (max-width:640px){.footer__cv{grid-column-end:span 2;padding-bottom:6px}}.footer__logo{opacity:.15;width:32px;margin:0 auto 24px}.footer__side-note{color:var(--color-gray-600);font:var(--type-text-small);text-align:center;margin:0 auto}.footer__side-note a{color:var(--color-accent-300);text-decoration:none}.footer__side-note p{margin:18px 0}.footer__side-note a:hover{color:var(--color-accent-500);text-decoration:underline}.footer__font--discordia{font-family:var(--font-serif);font-weight:700}.footer__font--mono{font-family:var(--font-mono);letter-spacing:-1px}.footer__font--dseg7{font-family:var(--font-segm7);font-size:.8em;font-weight:700}.footer__font--dseg14{font-family:var(--font-segm14);font-size:.8em;font-weight:700}.mini-map__header{font:var(--type-text-small);color:var(--color-gray-600);margin-bottom:6px}.mini-map{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:7px;display:grid}.mini-map__item{aspect-ratio:1;cursor:pointer;background-position:50%;background-repeat:no-repeat;background-size:cover;background-color:var(--color-gray-200);--shadow:inset -1px -1px 0 1px #00000012,inset 1px 1px 0px 1px #80808033,inset 2px 2px 0px 1px #fff3;min-width:80px;max-width:96px;min-height:80px;max-height:96px;box-shadow:var(--shadow),inset 0 0 0 2px transparent;border-radius:6px;position:relative;overflow:hidden}.mini-map__item:before{content:"";background:radial-gradient(circle at 0 0,#ffffff4d 0,#0000 35% 70%,#0000000d);border-radius:6px;transition:box-shadow .2s;display:block;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0000}.mini-map__item:hover:before{box-shadow:inset 0 0 0 2px var(--color-accent)}.showcase__popover{--aspect-ratio:2;width:480px;height:calc(480px/var(--aspect-ratio));z-index:999;background-color:var(--color-gray-100);border-radius:8px;position:fixed;overflow:hidden;box-shadow:0 2px 30px #0000001a,0 0 0 1px #00000013}.showcase__popover--modal{width:100%;max-width:480px;height:calc(440px/var(--aspect-ratio));border-radius:0;position:relative}.showcase__popover--hidden{opacity:0;pointer-events:none}.showcase__static-backdrop{z-index:998;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background-color:#00000080;flex-flow:column;gap:40px;padding:32px 0;position:fixed}.showcase__placeholder,.showcase__static-backdrop{justify-content:center;align-items:center;display:flex;inset:0}.showcase__placeholder{background-color:var(--color-gray-100);position:absolute;overflow:hidden}.showcase__placeholder>span{animation-duration:.7s}.showcase__media{font-size:20px;position:absolute;inset:0;overflow:hidden}.showcase__img,.showcase__video{object-fit:cover;object-position:top center}.showcase__video{width:100%;height:100%}.showcase__desc{background:var(--color-accent);height:40px;font:var(--type-text-regular);color:#fff;text-overflow:hidden;white-space:nowrap;padding:5px 16px;font-weight:600;line-height:1.5;position:absolute;bottom:0;left:0;right:0}.showcase__modal-button{background-color:var(--color-gray-50);white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:230px;height:64px;font:var(--type-text-regular);-webkit-text-decoration:dashed underline var(--color-gray-400);text-decoration:dashed underline var(--color-gray-400);color:inherit;border:none;border-radius:32px;justify-content:center;align-items:center;display:flex;overflow:hidden}.showcase__modal-button:active,.showcase__modal-button:hover{color:var(--color-accent)}.showcase__description{background:var(--color-accent-700);color:#fff;width:100%;height:32px;font:var(--type-text-medium);font-family:var(--font-serif);align-items:center;font-style:italic;display:flex;position:absolute;bottom:22px;left:0;transform:rotate(-.5deg);box-shadow:0 1px 6px -1px #00000026}@media (max-width:640px){.showcase__description{bottom:12px}}.showcase__marquee{box-sizing:border-box;align-items:center;padding:0 32px;display:flex}.showcase__tag{font-family:var(--font-sans);color:#fff;border:1px solid #fff;border-radius:32px;align-items:center;height:18px;margin-right:4px;padding:0 4px;font-size:12px;font-weight:600;display:flex}.showcase__tag:last-child{margin-right:8px}.references{--marker-offset:12px;padding:0;list-style-type:decimal-leading-zero}.references a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--color-gray-300);text-decoration-color:var(--color-gray-300)}.references a:active,.references a:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-decoration-thickness:3px}li.references__item{padding-left:var(--marker-offset);margin-left:calc(-1*var(--marker-offset))}li.references__item+li.references__item{margin-top:32px}li.references__item::marker{font-family:var(--font-mono);color:var(--color-gray-400);font-size:12px}.references__link{color:var(--color-gray-800);font-style:italic;display:block}.references__link:before{content:"«"}.references__link:after,.references__link:before{-webkit-text-decoration-color:var(--color-gray-300);text-decoration-color:var(--color-gray-300)}.references__link:after{content:"»"}.references__details{color:var(--color-gray-700);margin-top:4px;font-weight:400}.page-header__header{font:var(--type-header-medium);letter-spacing:var(--type-ls-header);margin-top:16px;margin-bottom:16px}.page-header__text{font:var(--type-text-medium);color:var(--color-gray-800);margin-bottom:70px}@media (max-width:768px){li.references__item::marker{color:#0000}}.banner-cv__button{cursor:pointer;-webkit-user-select:none;user-select:none;max-width:420px;height:62px;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;box-shadow:0 0 0 2px var(--color-gray-200);z-index:100;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;align-items:center;padding:0 18px;display:flex;position:relative;overflow:hidden}.banner-cv__button:hover{box-shadow:0 0 0 2px var(--color-accent)}.banner-cv__label{font:var(--type-text-small);color:var(--color-gray-700);margin-bottom:2px;margin-right:96px;font-weight:500}.banner-cv__sub-label{font:var(--type-text-x-small);color:var(--color-gray-400);margin-bottom:6px;line-height:1}.banner-cv__page{width:116px;height:163px;box-shadow:1px 1px 16px 0 var(--color-gray-300),0 0 0 .5px var(--color-gray-100);will-change:transform;pointer-events:none;z-index:50;background-position:top;background-size:cover;transition:transform .2s;position:absolute;top:0;right:0;transform:translateY(6px)rotate(3deg)scale(1.1)}.banner-cv__button:hover .banner-cv__label{color:var(--color-accent)}.banner-cv__button:hover .banner-cv__page{color:var(--color-accent);box-shadow:1px 1px 8px 0 var(--color-gray-200),0 0 0 .5px var(--color-gray-200);transform:translateY(11px)}.banner-cv__button:active .banner-cv__page{transform:translateY(5px)}@media (max-width:640px){.banner-cv__button{max-width:none;height:72px}.banner-cv__page{width:162px;height:229px}}.grid-layout{--inner-grid-width:700px;--spacer:1fr;--inner-grid-step:calc(var(--inner-grid-width)/4);--outer-grid-step:var(--inner-grid-step);grid-template-columns:[start]var(--spacer)[outer-grid]var(--outer-grid-step)[inner-grid]repeat(4,var(--inner-grid-step)[inner-grid])var(--outer-grid-step)[outer-grid]var(--spacer)[end];display:grid}.grid-layout--with-padding{padding:0 calc(32px + max(env(safe-area-inset-right),env(safe-area-inset-left)))}@media (max-width:768px){.grid-layout--with-padding{padding:0 calc(20px + max(env(safe-area-inset-right),env(safe-area-inset-left)))}}@media (max-width:1152px){.grid-layout{--spacer:0fr;--outer-grid-step:calc((100% - var(--inner-grid-width))/2)}}@media (max-width:768px){.grid-layout{--spacer:0fr;--outer-grid-step:0fr;--inner-grid-step:calc(100%/4)}}.container--ignore-topbar-margin{margin-top:-64px}@media (max-width:768px){.container--ignore-topbar-margin{margin-top:-48px}}.solid-link{cursor:pointer;white-space:nowrap;z-index:2;text-shadow:1px 1px #fff,-1px 1px #fff,0 1px #fff;color:inherit;font-weight:500;text-decoration:none;display:inline;position:relative}.solid-link:before{content:"";background-color:var(--color-accent);z-index:-2;height:2px;transition:height .1s;display:inline-block;position:absolute;top:1.1em;left:0;right:0}.solid-link:hover:before{height:5px}.selected-projects__grid{flex-flow:row;gap:40px 16px;display:flex}.selected-projects__pic{background-color:var(--color-gray-50);border:2px solid var(--color-gray-200);cursor:pointer;border-radius:6px;height:214px;margin-bottom:16px;transition:border .2s;display:block;position:relative;overflow:hidden}.selected-projects__img{object-fit:cover;object-position:bottom center}.selected-projects__pic:hover{border-color:var(--color-accent)}.selected-projects__title{font:var(--type-text-regular)}.selected-projects__item{flex:50%;max-width:100%}@media (max-width:768px){.selected-projects__pic{height:200px}}@media (max-width:640px){.selected-projects__pic{height:220px}.selected-projects__grid{flex-wrap:wrap}.selected-projects__item{flex-shrink:0;flex-basis:100%}}@supports (aspect-ratio:16/9){.selected-projects__pic{aspect-ratio:16/9;height:auto}}.selected-projects__links{margin-top:16px}.project-link{background-color:var(--color-gray-50);vertical-align:middle;height:38px;box-shadow:inset 0 0 0 1px var(--color-gray-200);color:var(--color-gray-600);border-radius:40px;align-items:center;gap:8px;margin-right:8px;padding:0 16px 1px;font-weight:600;text-decoration:none;transition:box-shadow .2s;display:inline-flex}.project-link>svg{color:var(--color-gray-800);margin-top:1px}.project-link:hover,.project-link:hover>svg{color:var(--color-accent)}.project-link:hover{box-shadow:inset 0 0 0 2px var(--color-accent)}.project-link--primary{--primary-color:var(--color-accent-500);background-color:var(--primary-color);color:#fff;box-shadow:none}.project-link--primary:hover{color:#fff;box-shadow:inset 0 0 0 2px var(--primary-color),inset 0 0 0 4px white}.speaking{padding-top:48px;padding-right:32px}.speaking__header{flex-flow:row;justify-content:center;align-items:center;gap:24px;padding-bottom:12px;display:flex}.speaking__title{font:var(--type-text-medium);margin:0}.speaking__talk{flex-flow:row;align-items:flex-start;gap:32px 54px;margin-bottom:128px;display:flex}.speaking__slides{flex-shrink:0}.speaking__desc{margin-bottom:26px}.speaking__desc p{margin:18px 0}.speaking__desc code{font:var(--type-text-small);font-family:var(--font-mono);background-color:var(--color-gray-100);letter-spacing:-.01em;border-radius:4px;padding:1px 4px;font-weight:500}.speaking__head{font:var(--type-header-regular);flex:auto}.speaking__confs{flex-wrap:wrap;gap:8px;display:flex}.speaking__conf{font:var(--type-text-small);border:1px solid var(--color-gray-300);white-space:nowrap;height:32px;box-shadow:0 1px 0 1px var(--color-gray-100);color:inherit;border-radius:8px;align-items:center;gap:16px;padding-left:12px;font-weight:500;text-decoration:none;display:flex;overflow:hidden}.speaking__conf-year{height:100%;font:var(--type-text-x-small);border-left:1px solid var(--color-gray-300);letter-spacing:0;letter-spacing:-.05em;align-items:center;padding:0 12px;font-style:italic;font-weight:700;display:flex}.speaking__conf[href]:hover{color:var(--color-accent-700)}.speaking__conf[href]:hover,.speaking__conf[href]:hover .speaking__conf-year{border-color:var(--color-accent-700)}.speaking__rest{grid-template-columns:1fr 1fr;gap:96px 80px;margin-bottom:80px;display:grid}.speaking__rest>.speaking__talk{margin-bottom:0}.speaking__title-with-icon{flex-flow:column wrap;gap:28px;display:flex}@media (max-width:768px){.speaking__title-with-icon{flex-flow:row;align-items:center;gap:24px}}.sp-icon{flex:none;width:50px;height:50px;position:relative}.sp-icon__img{position:absolute;top:-2px;left:0}.sp-icon>svg{width:100%;color:var(--color-gray-50);transform:rotate(-3deg)}.speaking__nav-btn{background-color:var(--color-gray-50);vertical-align:middle;height:38px;box-shadow:inset 0 0 0 1px var(--color-gray-200);color:var(--color-gray-600);font:var(--type-text-small);border-radius:40px;align-items:center;gap:8px;padding:0 17px;font-weight:500;text-decoration:none;transition:box-shadow .2s;display:inline-flex}.speaking__nav-btn>svg{color:var(--color-gray-800);margin-top:1px}.speaking__nav-btn:hover,.speaking__nav-btn:hover>svg{color:var(--color-accent)}.speaking__nav-btn:hover{box-shadow:inset 0 0 0 2px var(--color-accent)}.speaking-talk-link{background-color:var(--color-gray-50);color:inherit;white-space:nowrap;border-radius:12px;flex-flow:row;align-items:center;gap:12px;padding:8px 16px;text-decoration:none;transition:background-color .15s;display:flex}.speaking-talk-link:hover{background-color:var(--color-gray-100)}.speaking-talk-link__icon{flex:none;justify-content:center;align-items:center;display:flex}.speaking-talk-link__icon>svg{width:20px;color:var(--color-gray-600)}.speaking-talk-link:hover .speaking-talk-link__icon svg{color:var(--color-gray-900)}.speaking-talk-link__text{font:var(--type-text-small);-webkit-text-decoration:inherit;text-decoration:inherit;color:var(--color-gray-600);text-overflow:ellipsis;flex:auto;padding-top:1px;overflow:hidden}.speaking-talk-link:hover .speaking-talk-link__text{color:var(--color-gray-900)}.speaking-talk-link__details{font:var(--type-text-x-small);color:var(--color-gray-400);text-overflow:ellipsis;margin-left:6px;padding-top:2px;overflow:hidden}.speaking__talk-links{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:12px;display:grid}.speaking__talk-links.speaking__talk-links--single{grid-template-columns:1fr;justify-items:center}@media (max-width:1024px){.speaking__talk-links{width:320px}}@media (max-width:640px){.speaking__talk-links{width:100%}}@media (max-width:1024px){.speaking{padding-top:16px;padding-right:0}.projector{width:320px}}@media (max-width:768px){.speaking__talk{flex-wrap:wrap;margin-bottom:80px}.speaking__rest{grid-template-columns:1fr;gap:72px}.speaking__desc{margin-bottom:20px}}@media (max-width:640px){.speaking__slides{flex-grow:1}.projector{width:100%;min-height:auto}}.segmented__text{font-family:var(--font-segm14);color:inherit;position:relative}.segmented__text:before{z-index:-1;content:attr(data-cells);color:var(--cell-color);position:absolute;inset:0}.segmented__text:after{content:attr(data-text)}.projector{--slides-n:2;background-color:var(--color-gray-50);border-radius:12px;flex-flow:column;justify-content:center;align-items:center;width:380px;min-height:240px;display:flex;overflow:hidden}.projector:has(.projector__progress){justify-content:flex-start}.projector__slides{scroll-snap-type:x mandatory;scroll-snap-stop:always;grid-auto-flow:column;padding:24px 0;display:grid}.projector__slides::-webkit-scrollbar{display:none}.projector__slide-step{scroll-snap-align:start;flex:1 0 100%;width:100%;padding:0 24px}.projector__slide{aspect-ratio:16/9;-webkit-user-select:none;user-select:none;border:3px solid #fff;border-radius:12px;width:100%;transition:scale .1s;position:relative;box-shadow:0 0 16px #0000001a,0 1px 2px #0000001a}.projector__slide:hover{scale:.99}.projector__slide-img{aspect-ratio:16/9;object-fit:cover;border-radius:12px}.projector__progress{--step-w:20px;--step-h:7px;height:calc(var(--step-h) + 1px);width:calc(var(--total)*var(--step-w));background:#fff;border-radius:6px;gap:1px;padding:0 1px;display:flex;position:relative;box-shadow:0 0 0 1px #0000000d,inset 0 2px #00000012}.projector__progress-control{cursor:pointer;border-radius:16px;margin-top:-12px;margin-bottom:14px;padding:10px;transition:background .15s}.projector__progress-control:hover{background:#00000008}.projector__progress-mark{background:var(--color-gray-100);width:1px;height:4px;position:absolute;top:4px}.projector__progress-step{height:var(--step-h);width:var(--step-w);background-color:var(--color-accent-400);box-shadow:inset 0 1px 2px #fff6,0 0 0 .5px var(--color-accent-300);transform:translateX(calc(100%*var(--current)));border-radius:16px;margin-top:1px;transition:transform .1s}@media (max-width:1024px){.projector{width:320px}}@media (max-width:640px){.projector{width:100%;min-height:auto}}.article{--type-article-header:600 normal 54px/56px var(--font-serif);--type-article-title:600 normal 19px/29px var(--font-sans);padding-top:40px;padding-bottom:96px}.article__header{font:var(--type-article-title);padding-bottom:80px;font-weight:400}.article__description{text-wrap:pretty;padding-right:40px}.article__info{color:var(--color-gray-400);margin-top:4px}.article__h1{font:var(--type-article-header);color:var(--color-gray-800);letter-spacing:var(--type-ls-header);max-width:480px;margin-bottom:24px}@media (max-width:768px){.article{--type-article-header:600 44px/46px var(--font-serif)}.article__header{padding-bottom:56px}.article__h1{margin-bottom:22px}.article__info{margin-top:4px}}.article__category{font:var(--type-text-x-small);color:var(--color-accent-400);text-transform:uppercase;letter-spacing:2px;border-radius:6px;margin-bottom:16px;display:inline-block}.article__cover{border-radius:4px;height:380px;margin-bottom:48px;position:relative;overflow:hidden}.article__cover img{object-fit:cover;object-position:top center}@media (max-width:640px){.article__cover{height:200px;margin-bottom:32px}}.article__notion.notion{--notion-max-width:var(--inner-grid-width);--notion-font:var(--font-sans);font:var(--type-text-post);color:var(--color-gray-800);padding:0}.article__notion.notion ::selection{color:var(--color-gray-50);background-color:var(--color-accent)}.article__notion.notion code{font-family:var(--font-mono)}.article__notion.notion .notion-h{letter-spacing:var(--type-ls-header);margin-bottom:16px;padding:0}.article__notion.notion .notion-h1{font:var(--type-header-large)}.article__notion.notion .notion-h2{font:var(--type-header-medium);margin-top:80px}.article__notion.notion .notion-h3,.article__notion.notion .notion-h4{font:var(--type-header-regular)}.article__notion.notion .notion-h1+.notion-h2{margin-top:.8em}.article__notion.notion .notion-inline-code{background-color:var(--color-gray-100);letter-spacing:-.01em;color:#e6476c;border-radius:4px;padding:2px 4px;font-weight:700}.article__notion.notion .notion-inline-code b{font-weight:800}.article__notion.notion .notion-link:has(.notion-inline-code){opacity:1;border-bottom:none;text-decoration:none}.article__notion.notion .notion-link>.notion-inline-code{text-decoration:underline}.article__notion.notion .notion-link>.notion-inline-code:hover{background:var(--color-gray-200)}.article__notion.notion .notion-text{margin:16px 0;padding:0}.article__notion.notion .notion-list-numbered>li::marker{font:var(--type-text-small)}.article__notion.notion .notion-asset-wrapper{margin:16px 0;padding:0}.article__notion.notion .notion-asset-wrapper-image{border-radius:3px;overflow:hidden}.article__notion.notion .notion-asset-wrapper-full:has(iframe){border:1px solid var(--color-gray-200);border-radius:3px;max-width:calc(100vw - 32px);overflow:hidden}.article__notion.notion .notion-asset-wrapper:not(.notion-asset-wrapper-full):has(iframe){border:1px solid var(--color-gray-200);border-radius:4px}.article__notion.notion .notion-asset-caption{font:var(--type-text-small)}.article__notion.notion .notion-callout{border-color:#0000;border-radius:8px;padding:24px 16px}.article__notion.notion .notion-callout .notion-page-icon{margin-top:6px}.article__notion.notion .notion-code{--sh-class:#f8f8f2;--sh-identifier:#50fa7b;--sh-sign:#ff79c6;--sh-string:#f1fa8c;--sh-keyword:#8be9fd;--sh-comment:#6272a4;--sh-jsxliterals:#bd93f9;--sh-property:#50fa7b;--sh-entity:#f8f8f2;font-family:var(--font-mono);background:#211f20;margin:16px 0;padding:40px 32px}.article__notion.notion .exec-code{margin:16px 0}.article__notion.notion .exec-code__content{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;width:100%;display:flex}.article__notion.notion .exec-code--full{align-self:center;width:calc(100dvw - 32px)}.article__notion.notion .exec-code__loading{min-height:240px;font:var(--type-header-regular);color:var(--color-gray-500);align-items:center;display:flex}.sketches__grid{--sketches-gap:8px;--sketches-block-padding:18px;grid-gap:var(--sketches-gap);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));justify-items:center;margin-bottom:40px;display:grid}.sketches__block{max-width:380px;padding:var(--sketches-block-padding);background-color:var(--color-gray-100);font:var(--type-text-small);color:var(--color-gray-800);margin-bottom:var(--sketches-gap);border-radius:18px;font-weight:400}@media (max-width:1024px){.sketches__grid{grid-template-columns:1fr}.sketches__left{order:2}}@media (max-width:640px){.sketches__block{max-width:100%}}.sketches__block:last-child{margin-bottom:0}.sketches__block--intro{font-family:var(--font-serif);font-style:italic}.sketches__block a{color:var(--color-accent-600);font-weight:600;text-decoration:none}.sketches__block a:hover{text-decoration:underline}.sketches__block p{margin:0}.sketches__block p+p{margin-top:12px}.sketches__info{padding-top:16px}.sketches__published{font:var(--type-text-x-small);color:var(--color-gray-700);letter-spacing:.5px;background:#fff;border-radius:12px;align-items:center;padding:4px 12px;font-weight:700;display:inline-flex}.sketches__published>svg{vertical-align:middle;width:9px;margin-right:6px;padding-top:1px;transform:rotate(45deg)}.blog-posts__head{font:var(--type-text-medium);margin:0 0 8px;font-weight:600}.blog-posts__list{border-top:1px solid var(--color-gray-100)}.blog-posts__post{border-bottom:1px solid var(--color-gray-100);color:inherit;flex-flow:row;align-items:flex-start;gap:0 28px;padding:16px 0;text-decoration:none;display:flex}.blog-posts__post:hover>.blog-posts__title{text-decoration:underline}.blog-posts__title{flex:1}.blog-posts__date{min-width:100px;color:var(--color-gray-400)}.blog-posts__icon{filter:drop-shadow(0 1px 4px #0000000d);margin-top:2px;transition:all .2s;rotate:-2deg}.blog-posts__post:hover .blog-posts__icon{filter:drop-shadow(0 3px 6px #0000001a);rotate:2deg;scale:1.1}@media (max-width:768px){.blog-posts__post{padding:10px 0}}._404__page-container{margin-top:-112px;margin-bottom:-32px;overflow:hidden}._404{--canvas-width:1600px;--dot-grid-step:64px;height:calc(100vh - 176px);min-height:600px;padding:256px 0 320px;position:relative}._404__title{text-align:center;text-shadow:0 6px #fff,6px 0 #fff,-6px 0 #fff,0 -6px #fff;margin-bottom:40px;font-size:80px;font-weight:900}@media (max-width:768px){._404__title{font-size:72px}}._404__subtitle{font:var(--type-text-medium);text-align:center;max-width:400px;color:var(--color-gray-600);text-wrap:balance;text-shadow:0 1px #fff,1px 0 #fff,-1px 0 #fff,0 -1px #fff;margin:0 auto;font-weight:500}._404__canvas-flex{justify-content:center;display:flex;position:absolute;inset:0}._404__message{pointer-events:none;-webkit-user-select:none;user-select:none;position:relative}._404__canvas{background:url(/_next/static/media/polka-dot-pattern.1cfd81bd.svg) repeat 0 0/var(--dot-grid-step)var(--dot-grid-step);flex-shrink:0;flex-basis:var(--canvas-width);height:100%;position:relative;-webkit-mask-image:linear-gradient(90deg,#000 75%,#0000),linear-gradient(270deg,#000 75%,#0000),linear-gradient(#000 85%,#0000),linear-gradient(#0000,#000 15%);mask-image:linear-gradient(90deg,#000 75%,#0000),linear-gradient(270deg,#000 75%,#0000),linear-gradient(#000 85%,#0000),linear-gradient(#0000,#000 15%);-webkit-mask-composite:source-in;mask-composite:intersect}.speaking-all{font:var(--type-text-small);color:var(--color-gray-900);padding-bottom:128px}.speaking-all__table{border-collapse:collapse;width:100%}.speaking-all__year{text-align:left;vertical-align:top;color:var(--color-gray-400);font-family:var(--font-mono);padding:14px 0;font-size:14px;font-weight:400}.speaking-all__talk-row:not(:last-of-type){border-bottom:1px solid var(--color-gray-150)}.speaking-all__title-cell{vertical-align:top;padding:14px 12px}.speaking-all__title-with-icon{margin-bottom:5px}.speaking-all__conference{color:var(--color-gray-500);margin-top:4px;font-weight:400}.speaking-all__date-cell{text-align:right;vertical-align:top;font-family:var(--font-mono);color:var(--color-gray-400);white-space:nowrap;padding:14px 0;font-size:14px;font-weight:400}.speaking-all__nav{margin-bottom:20px;display:flex}@media (max-width:768px){.speaking-all__nav{margin-bottom:12px}}.expand-inline{display:inline}.expand-inline span{white-space:pre;display:inline-block}.expand-inline__button{vertical-align:middle;color:var(--color-gray-400);cursor:pointer;font-size:inherit;font:inherit;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 0 1px var(--color-gray-200),inset 0 3px 1px 0 #fffc;background:linear-gradient(to bottom,var(--color-gray-100),var(--color-gray-200));border:none;border-radius:12px;align-items:center;margin-left:2px;padding:1px 10px 0;font-weight:600;line-height:10px;transition:box-shadow .15s;display:inline-flex;position:relative;top:-2px}.expand-inline__button:active{transform:translateY(1px)}.expand-inline__button>svg{width:18px}.expand-inline__button:hover{color:var(--color-gray-600)}.expand-inline__button:active{background:var(--color-gray-150);box-shadow:none;transform:scale(.95)}.expand-inline__button:focus-visible{border:inherit;box-shadow:0 0 0 2px red}.friends{margin-bottom:140px;padding:16px 0}.friends__header{font:var(--type-header-medium);letter-spacing:var(--type-ls-header);text-align:center;margin-bottom:6px}.friends__intro{font:var(--type-text-medium);color:var(--color-gray-500);text-align:center;text-wrap:balance;max-width:600px;margin:0 auto 16px}.friends__container{padding:32px 16px;position:relative}.friends__list{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.friends__item{background-color:var(--color-gray-100);border-radius:8px}.friends__item,.friends__item-inner{-webkit-user-select:none;user-select:none}.friends__item-inner{border:1px solid var(--color-gray-200);cursor:pointer;box-shadow:0 1px 0 1px var(--color-gray-100);text-align:left;background-color:#fff;border-radius:8px;width:100%;padding:0;transition:border-color .2s,background-color .2s;display:block;position:relative;overflow:hidden}.friends__item-content{opacity:1;align-items:center;padding:6px;display:flex}.friends__item--active .friends__item-content{opacity:0}.friends__avatar{border-radius:4px;flex-shrink:0;overflow:hidden}.friends__item-overlay{pointer-events:none;position:absolute;inset:0}.friends__info{margin-left:14px;margin-right:12px}.friends__website{font-family:var(--font-mono);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--color-gray-800);margin-top:4px;font-size:13px;line-height:14px;overflow:hidden}.friends__item-inner:hover{background-color:var(--color-gray-100)}.friends__website--active{color:var(--color-blue-600)}.friends__name{font:var(--type-text-x-small);color:var(--color-gray-400)}.friends__overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#ffffffb3;justify-content:center;align-items:flex-start;padding-top:32px;display:flex;position:absolute;inset:0}.friends__modal{z-index:20;background-color:#fff;border-radius:12px;width:380px;margin:8px;box-shadow:0 4px 20px #0000001a}.friends__modal>div{padding:12px;position:relative}.friends__close-button{appearance:none;background-color:var(--color-gray-100);cursor:pointer;width:28px;height:28px;color:inherit;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background-color .2s;display:flex;position:absolute;top:10px;right:10px}.friends__close-button:hover{background-color:var(--color-gray-200)}.friends__close-icon{width:16px;height:16px}.friends__modal-name{font:var(--type-text-regular);align-items:center;gap:10px;margin-bottom:8px;padding:0 6px;font-weight:500;display:flex}.friends__modal-avatar{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.friends__modal-bio{font:var(--type-text-small);color:var(--color-gray-600);margin-bottom:20px;padding:0 6px}.friends__website-button{background-color:var(--color-gray-100);text-align:center;width:100%;color:var(--color-gray-800);font-family:var(--font-mono);text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:5px;font-size:14px;text-decoration:none;transition:background-color .2s;display:flex}.friends__button-icon{width:14px;height:14px}.friends__website-button:hover{background-color:var(--color-gray-200)}.friends__preview{background-color:var(--color-blue-100);border-radius:12px;padding:24px;box-shadow:0 4px 12px #00000014}.friends__preview-website{color:var(--color-blue-600);white-space:nowrap;text-overflow:ellipsis;margin-bottom:8px;font-size:14px;overflow:hidden}.friends__preview-name{margin-bottom:8px;font-size:18px;font-weight:700}.friends__preview-bio{color:var(--color-gray-800);font:var(--type-text-small);line-height:1.5}@media (max-width:768px){.friends__intro{text-wrap:wrap;margin-bottom:32px}.friends{margin-bottom:48px}.friends__header{font:var(--type-header-medium);margin-bottom:8px}.friends__preview{padding:16px}}@media (max-width:480px){.friends__overlay{align-items:center;position:fixed;inset:0}.friends__item{width:100%}.friends__container{padding:16px 4px}}:root{--type-text-x-small:500 13px/22px var(--font-sans);--type-text-small:400 15px/24px var(--font-sans);--type-text-regular:400 17px/27px var(--font-sans);--type-text-medium:400 18px/28px var(--font-sans);--type-text-post:400 18px/29px var(--font-sans);--type-header-large:500 italic 42px/48px var(--font-serif);--type-header-medium:500 italic 39px/48px var(--font-serif);--type-header-regular:500 italic 28px/34px var(--font-serif);--type-ls-header:-.03em;--color-gray-50:#f8f8fa;--color-gray-100:#f4f4f5;--color-gray-150:#ececee;--color-gray-200:#e4e4e7;--color-gray-300:#d4d4d8;--color-gray-400:#a1a1aa;--color-gray-500:#71717a;--color-gray-600:#52525b;--color-gray-700:#3f3f46;--color-gray-800:#262626;--color-gray-900:#18181b;--color-accent-200:#738efc;--color-accent-300:#5f7efc;--color-accent-400:#4b6efb;--color-accent-500:#2c57fb;--color-accent-600:#234efb;--color-accent-700:#0f3efa;--color-accent:#2c57fb;--color-accent-rgb:44,87,251;--main-container-width:768px}@media (max-width:768px){:root{--type-text-regular:400 17px/28px var(--font-sans);--type-text-post:400 18px/28px var(--font-sans);--type-header-large:500 italic 36px/39px var(--font-serif);--type-header-medium:500 italic 32px/38px var(--font-serif);--type-header-regular:500 italic 26px/32px var(--font-serif)}}h3{margin:0}body{font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font:var(--type-text-regular);color:var(--color-gray-900)}::selection{color:var(--color-gray-50);background-color:var(--color-accent)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-font-weight{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-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}