@font-face{font-family:inter;src:url(../media/inter_latin-s.p.c757f81b.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_db55e776-module__1HFpqG__className{font-family:inter,inter Fallback}.inter_db55e776-module__1HFpqG__variable{--font-sans:"inter","inter Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e50b939c4e3518a9-s.75297513.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/7a03f7a08146f938-s.bf1d8552.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6bb62198a3d8dd21-s.p.63658bd0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_5090d7f4-module__b5ozzq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal;font-weight:700}.space_grotesk_5090d7f4-module__b5ozzq__variable{--font-display:"Space Grotesk","Space Grotesk Fallback"}
@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f037ea83db21dbd3-s.d117dd86.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3dc1de47b9d80a0b-s.3401e624.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fe1d9b66fdac40b2-s.93bf2b57.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a24d9e981578d580-s.p.84c21a52.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.caveat_fe4cea1e-module__oF5KTW__className{font-family:Caveat,Caveat Fallback;font-style:normal;font-weight:600}.caveat_fe4cea1e-module__oF5KTW__variable{--font-hand:"Caveat","Caveat Fallback"}
@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.262b87c4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.380d09ea.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_5231d601-module__qOLeRa__className{font-family:Instrument Serif,Instrument Serif Fallback;font-style:normal;font-weight:400}.instrument_serif_5231d601-module__qOLeRa__variable{--font-serif:"Instrument Serif","Instrument Serif Fallback"}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans),system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}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-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.inset-0{inset:0}.bottom-6{bottom:1.5rem}.right-6{right:1.5rem}.z-\[1000\]{z-index:1000}.z-\[90\]{z-index:90}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-2\.5{margin-right:.625rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.size-10{width:2.5rem;height:2.5rem}.size-11{width:2.75rem;height:2.75rem}.max-h-\[300px\]{max-height:300px}.min-h-screen{min-height:100vh}.w-\[90\%\]{width:90%}.w-max{width:max-content}.max-w-\[500px\]{max-width:500px}.flex-1{flex:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2\.5{gap:.625rem}.gap-3\.5{gap:.875rem}.gap-5{gap:1.25rem}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--bg-sub\)\]{background-color:var(--bg-sub)}.bg-black\/40{background-color:#0006}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.p-0{padding:0}.p-2{padding:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\[5px\]{padding-left:5px;padding-right:5px}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-7{padding-bottom:1.75rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-5{padding-top:1.25rem}.pt-\[15vh\]{padding-top:15vh}.font-sans{font-family:var(--font-sans),system-ui,-apple-system,sans-serif}.text-\[10px\]{font-size:10px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[clamp\(7rem\,28vw\,13rem\)\]{font-size:clamp(7rem,28vw,13rem)}.text-sm{font-size:.875rem;line-height:1.25rem}.font-\[var\(--font-serif\)\]{font-weight:var(--font-serif)}.font-medium{font-weight:500}.leading-\[0\.9\]{line-height:.9}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-2\)\]{color:var(--text-2)}.text-\[var\(--text-3\)\]{color:var(--text-3)}.opacity-60{opacity:.6}.shadow-\[0_20px_25px_-5px_rgba\(0\,0\,0\,0\.1\)\,0_10px_10px_-5px_rgba\(0\,0\,0\,0\.04\)\]{--tw-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 10px 10px -5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_12px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow:0 4px 12px #00000014;--tw-shadow-colored:0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.blur{--tw-blur:blur(8px);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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color_100ms_ease\,color_100ms_ease\]{transition-property:background-color .1s ease,color .1s ease;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[transform_160ms_cubic-bezier\(0\.23\,1\,0\.32\,1\)\,background-color_160ms_ease\,color_160ms_ease\]{transition-property:transform .16s cubic-bezier(.23,1,.32,1),background-color .16s ease,color .16s ease;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--font-sans:var(--font-sans),system-ui,-apple-system,sans-serif;--font-serif:var(--font-serif),Georgia,"Times New Roman",serif;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--bg:#fff;--bg-sub:#f9f9fb;--surface:#fff;--border:#d4d4d8;--border-faint:#e4e4e7;--text:#09090b;--text-2:#1f1f23;--text-3:#3f3f46;--muted-2:#52525b;--live:#ef4444;--accent-live:#b45309;--ok-dim:#ef444429;--content-width:800px;--page-x:32px;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}.dark{--bg:#0a0a0a;--bg-sub:#131313;--surface:#1a1a1a;--border:#383838;--border-faint:#242424;--text:#e8e8e8;--text-2:#dedede;--text-3:#c6c6c6;--muted-2:#9e9e9e;--live:#ef4444;--accent-live:#ffb454;--ok-dim:#ef444433}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--text);outline-offset:2px}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{overflow-x:clip}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:18px;font-weight:400;line-height:1.68;transition:background .25s,color .25s}::selection{background:var(--text);color:var(--bg)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.dark ::-webkit-scrollbar-thumb{background:#ffffff26}a{color:inherit;text-decoration:none}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.content-narrow{max-width:var(--content-width);padding:0 var(--page-x);margin:0 auto}.eyebrow-container{align-items:center;gap:12px;margin:28px 0 16px;display:flex}.eyebrow-container span{font-family:var(--font-sans);letter-spacing:.06em;color:var(--text-3);font-size:14px;font-weight:600;line-height:1.6}.double-rule{background:var(--border);height:1px}.hover-line{transition:color .15s var(--ease-out);display:inline-block;position:relative}.hover-line:after{content:"";transform-origin:0;width:100%;height:1px;transition:transform .18s var(--ease-out);background:currentColor;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.hover-line:hover:after{transform:scaleX(1)}.project-badge{font-family:var(--font-sans);letter-spacing:.08em;color:var(--text-3);border:1px dashed var(--text-3);text-transform:uppercase;border-radius:var(--radius-xs);padding:1px 6px;font-size:12px;font-weight:600}.project-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tag{font-family:var(--font-sans);color:var(--text-3);background:var(--bg-sub);border:1px solid var(--border);border-radius:var(--radius-xs);padding:3px 10px;font-size:13px;font-weight:500}.project-links{font-size:15px;font-family:var(--font-sans);gap:16px;font-weight:500;display:flex}.project-links a{color:var(--text-3);text-decoration:none;transition:color .15s}.project-links a:hover{color:var(--text)}.project-links a.live-link{color:var(--live)}.live-dot{background:var(--live);width:6px;height:6px;box-shadow:0 0 0 3px var(--ok-dim);vertical-align:middle;border-radius:50%;margin-right:4px;display:inline-block}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(8px);animation:fade-in .2s var(--ease-out)forwards;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border:1px solid var(--border);overscroll-behavior:contain;transform-origin:50%;width:100%;max-width:720px;max-height:90vh;animation:modal-slide-up .25s var(--ease-out)forwards;border-radius:8px;position:relative;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-close{background:var(--bg-sub);border:1px solid var(--border);color:var(--text-2);cursor:pointer;width:28px;height:28px;font-family:var(--font-sans);transition:transform .16s var(--ease-out),background-color .16s var(--ease-out),color .16s var(--ease-out);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.modal-close:hover{background:var(--text);color:var(--bg)}.modal-close:active{transform:scale(.94)}.modal-cover{aspect-ratio:21/9;border:1px solid var(--border);background-color:#101013;background-image:radial-gradient(circle,#ffffff29 1px,#0000 1.5px);background-size:14px 14px;border-radius:12px;margin:14px 20px 0;position:relative;overflow:hidden}.modal-cover:after{content:"";background:linear-gradient(#0000 40%,#0000008c);position:absolute;inset:0}.modal-cover-text{z-index:1;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:14px;left:20px}.modal-cover-name{letter-spacing:-.02em;color:#ececee;font-size:21px;font-weight:700}.modal-cover-domain{font-family:var(--font-sans);color:#a1a1aa;font-size:13px}.modal-body{padding:28px}.modal-nav{justify-content:space-between;align-items:center;padding:14px 20px 0;display:flex}.modal-back{font-family:var(--font-sans);color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;transition:color .15s}.modal-back:hover{color:var(--text)}.modal-title{letter-spacing:-.02em;color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 4px;font-size:22px;font-weight:700;display:flex}.modal-live{font-family:var(--font-sans);color:var(--text-3);font-size:14px;transition:color .15s}.modal-live:hover{color:var(--text)}.modal-prose{color:var(--text-2);text-wrap:pretty;margin:0 0 14px;font-size:16px;line-height:1.7}.modal-shots{margin:24px 0 8px}.modal-shot{margin:0}.modal-shot.will-reveal{clip-path:inset(8% 4%);opacity:0;transition:clip-path .7s var(--ease-in-out),opacity .5s var(--ease-out)}.modal-shot.will-reveal.revealed{clip-path:inset(0);opacity:1}.modal-shot:first-of-type{width:88%}.modal-shot:not(:last-of-type){padding-bottom:56px}.modal-shot-frame{border:1px solid var(--border);background:var(--bg-sub);border-radius:10px;overflow:hidden;box-shadow:0 12px 32px #0000001f}.dark .modal-shot-frame{box-shadow:0 12px 32px #00000073}.modal-shot-frame img{width:100%;height:auto;display:block}.modal-shot figcaption{font-family:var(--font-sans);color:var(--text-3);margin-top:8px;font-size:13px}.modal-shot:nth-of-type(2){width:68%;margin-top:-48px;margin-left:auto;position:relative;transform:rotate(1.2deg)}.modal-shot:nth-of-type(3){width:68%;margin-top:-48px;position:relative;transform:rotate(-1.2deg)}@keyframes fade-up{0%{opacity:0;filter:blur(4px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}.animate-fade-up{animation:fade-up .5s var(--ease-out)both}.hero-delay-1{animation-delay:80ms}.hero-delay-2{animation-delay:.16s}.hero-delay-3{animation-delay:.24s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.hero-top{align-items:center;gap:20px;margin-bottom:32px;display:flex;position:relative}.avatar-frame{border:1px dashed var(--border);background:var(--bg);border-radius:20px;flex-shrink:0;padding:6px;position:relative}.avatar-frame:after{content:"";border:1px solid var(--border);pointer-events:none;border-radius:16px;position:absolute;inset:3px}.avatar-img{object-fit:cover;border-radius:12px;width:104px;height:104px;display:block}.hero-name{font-family:var(--font-sans);letter-spacing:-.055em;color:var(--text);-webkit-user-select:none;user-select:none;margin:8px 0 28px -.04em;font-size:clamp(3.25rem,17vw,8rem);line-height:.88}.hero-name-line{white-space:nowrap;display:block}.hero-name-letter{font-weight:360;display:inline-block}@media (prefers-reduced-motion:reduce){.hero-name-letter{font-weight:600}}.hero-role{font-family:var(--font-sans);letter-spacing:.01em;color:var(--text-3);margin-top:6px;font-size:16px;font-weight:600}.avail-note{display:none}.avail-text{font-family:var(--font-hand);white-space:nowrap;font-size:25px;font-weight:600;line-height:1}.avail-arrow{width:92px;height:auto;margin-top:2px;display:block}.avail-fallback{display:block}@media (min-width:1150px){.avail-note{color:var(--text-2);flex-direction:column;align-items:center;display:flex;position:absolute;top:-54px;left:-12px;transform:translate(-100%)rotate(-9deg)}.avail-fallback{display:none}}.theme-toggle-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .15s var(--ease-out);background:0 0;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle-btn svg{flex-shrink:0;width:15px;height:15px;display:block}.theme-toggle-btn:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.theme-toggle-btn:active{transform:scale(.9)}.hero-meta{font-family:var(--font-sans);letter-spacing:.02em;color:var(--text-3);font-variant-numeric:tabular-nums;margin-top:4px;font-size:16px}.hero-status{color:var(--text);font-weight:600}.hero-bio-list{flex-direction:column;gap:10px;display:flex}.hero-rule{border-top:1px dashed var(--border);margin:0 0 20px}.hero-rule--below{margin:28px 0 4px}.hero-bio{color:var(--text-2);text-wrap:pretty;margin:0;font-size:19px;line-height:1.65}.sketch-word{display:inline-block;position:relative}.sketch-line{pointer-events:none;opacity:0;width:100%;height:6px;transition:opacity .2s;position:absolute;bottom:-5px;left:0;right:0;overflow:visible}.sketch-line path{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .35s}.sketch-word:hover .sketch-line,.sketch-word:focus-within .sketch-line,.sketch-word:active .sketch-line{opacity:1}.sketch-word:hover .sketch-line path,.sketch-word:focus-within .sketch-line path,.sketch-word:active .sketch-line path{stroke-dashoffset:0}.music-word{display:inline-block}.eq-bars{vertical-align:baseline;align-items:flex-end;gap:2px;height:12px;margin-left:5px;display:inline-flex}.eq-bars i{background:currentColor;width:2.5px;height:30%;animation:.5s ease-in-out infinite alternate paused eq-bounce}.eq-bars i:nth-child(2){animation-duration:.4s;animation-delay:-.25s}.eq-bars i:nth-child(3){animation-duration:.62s;animation-delay:-.12s}.music-word:hover .eq-bars i,.music-word:active .eq-bars i{animation-play-state:running}@keyframes eq-bounce{0%{height:25%}to{height:100%}}.dots-banner{background-image:radial-gradient(circle,var(--border)1px,transparent 1.4px);background-size:14px 14px;height:130px;margin:16px 0 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.dots-banner:after{content:"";background-image:radial-gradient(circle,var(--text-3)1px,transparent 1.4px);-webkit-mask-image:radial-gradient(110px circle at var(--mx,50%)var(--my,50%),black,transparent 70%);mask-image:radial-gradient(110px circle at var(--mx,50%)var(--my,50%),black,transparent 70%);-webkit-mask-image:radial-gradient(110px circle at var(--mx,50%)var(--my,50%),black,transparent 70%);opacity:0;pointer-events:none;background-size:14px 14px;transition:opacity .3s;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.dots-banner:hover:after{opacity:.85}}@media (prefers-reduced-motion:reduce){.dots-banner:after{display:none}}footer .dots-banner{margin:8px 0 0}.section-title-wrap{margin:32px 0 20px}.section-title{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text);margin:0;font-size:22px;font-weight:700;line-height:1.1}.socials-label{letter-spacing:-.01em;color:var(--text);margin:0 0 12px;font-size:22px;font-weight:700}.social-box{flex-wrap:wrap;gap:10px;display:flex}.social-cell{width:48px;height:48px;font:inherit;color:var(--bg);background:var(--text);cursor:pointer;transition:opacity .15s ease,transform .15s var(--ease-out);border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.social-cell:hover{opacity:.82}.social-cell:active{transform:scale(.93)}.social-cell svg{flex-shrink:0;width:22px;height:22px;display:block}@media (max-width:560px){.social-box{max-width:none}}.pcard-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.pcard{background:var(--bg);border:1px solid var(--border);cursor:pointer;transition:transform .18s var(--ease-out);border-radius:10px;padding:18px;position:relative}@media (hover:hover) and (pointer:fine){.pcard:hover .pcard-arrow{color:var(--text);transform:translate(3px)}.exp-row:hover .exp-chev{color:var(--text)}}@media (pointer:coarse){.pcard-links a{width:32px;height:32px}.pcard-links a svg{width:17px;height:17px}}.pcard:active{transform:scale(.98)}.pcard:focus-visible{outline:2px solid var(--text);outline-offset:2px}.pcard-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.pcard-status{font-family:var(--font-sans);color:var(--text-3);align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.pcard-dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:6px;height:6px}.pcard-status.is-live,.pcard-status.is-building{color:var(--accent-live)}.pcard-status.is-live .pcard-dot,.pcard-status.is-building .pcard-dot{background:var(--accent-live);animation:2s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.45}}.pcard-links{align-items:center;gap:4px;display:flex}.pcard-links a{width:26px;height:26px;color:var(--text-3);transition:color .15s var(--ease-out),transform .15s var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.pcard-links a:hover{color:var(--text)}.pcard-links a:active{transform:scale(.9)}.pcard-links a svg{width:15px;height:15px}.pcard-namerow{justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 8px;display:flex}.pcard-name{font-family:var(--font-sans);color:var(--text);letter-spacing:-.02em;margin:0;font-size:18px;font-weight:600;line-height:1.2}.pcard-arrow{font-family:var(--font-sans);color:var(--text-3);transition:transform .15s var(--ease-out),color .15s var(--ease-out);flex-shrink:0;font-size:15px}.pcard-desc{color:var(--text-2);margin:0 0 16px;font-size:16px;line-height:1.6}.pcard-tags{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.pcard-tags span{font-family:var(--font-sans);color:var(--text-3);border:1px solid var(--border);background:var(--bg);border-radius:4px;align-items:center;padding:2px 8px;font-size:13px;font-weight:500;display:inline-flex}.pcard-tags .pcard-more{font-variant-numeric:tabular-nums;border-style:dashed}.pcard-foot{border-top:1px dashed var(--border);flex-direction:column;gap:2px;padding-top:12px;display:flex}.pcard-label{color:var(--text-3);font-size:13px}.pcard-value{font-family:var(--font-sans);color:var(--text);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.pcard-value small{font-family:var(--font-sans);color:var(--text-3);margin-left:6px;font-size:12.5px;font-weight:400}.pcard-note{color:var(--text-2);font-size:14px;line-height:1.55}@media (max-width:640px){.pcard-grid{grid-template-columns:1fr}.modal-shot:first-of-type{width:100%}.modal-shot:nth-of-type(2),.modal-shot:nth-of-type(3){width:100%;margin-top:0;margin-left:0;transform:none}.modal-shot:not(:last-of-type){padding-bottom:0}.modal-shot{margin-bottom:20px}.modal-shot:last-of-type{margin-bottom:0}}.skills-flow{flex-wrap:wrap;align-items:center;gap:18px 20px;padding:6px 0;display:flex}.skills-flow-icon{transition:transform .18s var(--ease-out);display:inline-flex}@media (hover:hover) and (pointer:fine){.skills-flow-icon:hover{transform:scale(1.18)}}.skills-flow-icon:active{transform:scale(.94)}.skills-flow-icon svg{display:block}.exp-list{flex-direction:column;gap:14px;display:flex}.exp-row{background:var(--bg);border:1px solid var(--border);transition:transform .18s var(--ease-out);border-radius:10px;padding:18px;position:relative}@media (hover:hover) and (pointer:fine){.exp-row:hover .exp-chev{color:var(--text)}}.exp-row:active{transform:scale(.99)}.exp-row-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:14px;padding:0;display:flex}.exp-row-head:focus-visible{outline:2px solid var(--text);outline-offset:4px}.exp-logo{border:1px solid var(--border);background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.exp-b2b{font-family:var(--font-sans);letter-spacing:.04em;color:#18181b;font-size:13px;font-weight:700}.exp-headtext{flex:1;min-width:0}.exp-titlerow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exp-company{letter-spacing:-.02em;color:var(--text);margin:0;font-size:18px;font-weight:600;line-height:1.2}.exp-kind{font-family:var(--font-sans);color:var(--text-2);background:var(--bg);border:1px solid var(--border);white-space:nowrap;border-radius:5px;padding:2px 8px;font-size:13px;font-weight:600}.exp-role{color:var(--text-2);margin:2px 0 0;font-size:15px}.exp-side{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;margin-left:auto;display:flex}.exp-period{font-family:var(--font-sans);color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.exp-location{font-family:var(--font-sans);color:var(--text-3);white-space:nowrap;font-size:13px}.exp-chev{width:18px;height:18px;color:var(--text-3);transition:transform .22s var(--ease-out),color .15s var(--ease-out);flex-shrink:0}.exp-panel{transition:grid-template-rows .28s var(--ease-out);grid-template-rows:0fr;display:grid}.exp-panel.open{grid-template-rows:1fr}.exp-panel-inner{opacity:0;min-height:0;transition:opacity .2s var(--ease-out);overflow:hidden}.exp-panel.open .exp-panel-inner{opacity:1}.exp-body{border-top:1px dashed var(--border);margin-top:14px;padding:16px 0 2px}.exp-bullets{flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.exp-bullets li{color:var(--text-2);padding-left:16px;font-size:16px;line-height:1.6;position:relative}.exp-bullets li:before{content:"•";color:var(--text-3);position:absolute;left:0}.exp-skills{flex-wrap:wrap;gap:8px;display:flex}.exp-chip{color:var(--text-2);background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;padding:4px 12px;font-size:14px;display:inline-flex}.footer-quote{border-left:2px solid var(--border);padding-left:16px;position:relative}.footer-quote p{font-family:var(--font-serif);color:var(--text-2);letter-spacing:0;margin:0;font-size:18px;font-style:italic;font-weight:400;line-height:1.6}.footer-quote span{font-size:13px;font-family:var(--font-sans);color:var(--text-3);margin-top:6px;display:block}.page-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);margin:0;font-size:36px;font-weight:700;line-height:1.05}.page-count{font-family:var(--font-sans);color:var(--text-3);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.page-sub{color:var(--text-3);margin-top:6px;font-size:16px;line-height:1.5}.filter-row{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.filter-btn{font-family:var(--font-sans);border:1px dashed var(--border);color:var(--text-3);cursor:pointer;background:0 0;border-radius:9999px;padding:5px 12px;font-size:14px;font-weight:500;transition:color .2s,border-color .2s;position:relative}.filter-btn:hover{border-color:var(--text-3);color:var(--text)}.filter-btn.active{color:var(--bg);border-color:var(--text);border-style:solid}.filter-pill-bg{border-radius:inherit;background:var(--text);position:absolute;inset:0}.filter-label{z-index:1;position:relative}.projects-hint{font-family:var(--font-sans);color:var(--text-3);margin:0;font-size:13px}@media (max-width:560px){:root{--page-x:20px}body{font-size:17px}.dots-banner{height:110px;margin-top:12px}.hero-bio{font-size:17px}.hero-top{gap:16px;margin-bottom:28px;position:relative}.avatar-img{border-radius:12px;width:88px;height:88px}.page-title{font-size:30px}.eyebrow-container{margin:32px 0 18px}.project-bottom{flex-direction:column;align-items:flex-start;gap:12px}.skills-flow{gap:16px 18px}.exp-row-head{flex-wrap:wrap;padding-right:30px;position:relative}.exp-chev{position:absolute;top:22px;right:0}.exp-side{text-align:left;flex-direction:row;flex-basis:100%;align-items:flex-start;gap:8px;margin-left:58px}.modal-overlay{align-items:stretch;padding:0}.modal-content{border-left:none;border-right:none;border-radius:0;max-width:100%;min-height:100dvh;max-height:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}.f1{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:4px;outline:none;font-weight:700;display:inline-block;position:relative}.f1:focus-visible{outline-offset:2px;outline:2px solid}.f1-text{transition:transform .22s var(--ease-out),opacity .18s ease-out;display:inline-block}.f1-car{opacity:0;width:1.8em;transition:transform .28s var(--ease-out),opacity .2s ease-out;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-54%)scale(.5)}.f1-car svg{width:100%;height:auto;display:block;overflow:visible}.f1:hover .f1-text,.f1:focus-visible .f1-text,.f1.on .f1-text{opacity:0;transform:scale(.6)}.f1:hover .f1-car,.f1:focus-visible .f1-car,.f1.on .f1-car{opacity:1;transform:translate(-50%,-54%)scale(1)}@media (prefers-reduced-motion:reduce){.f1-text,.f1-car{transition-duration:.01ms!important}}.chess{white-space:nowrap;font:inherit;letter-spacing:inherit;line-height:inherit;vertical-align:baseline;cursor:default;-webkit-tap-highlight-color:transparent;outline:none;display:inline-block;position:relative}.chess:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid}.chess-l{will-change:transform,opacity;opacity:1;filter:blur();transform-origin:50% 55%;transition:transform .3s cubic-bezier(.2,.8,.2,1)var(--rd,0s),opacity .16s ease-out var(--rd,0s),filter .16s ease-out var(--rd,0s);display:inline-block;transform:none}.chess-c,.chess-h{--rd:70ms}.chess-e{--rd:.15s}.chess-s1{--rd:.17s}.chess-s2{--rd:.21s}.chess-pawn{opacity:0;clip-path:inset(100% 0 0);will-change:transform,opacity,clip-path;width:1.05em;height:1.05em;margin:-.525em 0 0 -.525em;transition:transform .16s cubic-bezier(.4,0,1,1),opacity .12s ease-in,clip-path .16s ease-in;position:absolute;top:50%;left:50%;transform:scale(.72)translateY(.06em)}.chess-pawn svg{fill:currentColor;width:100%;height:100%;display:block;overflow:visible}.chess:hover .chess-l,.chess:focus-visible .chess-l,.chess.on .chess-l{transition-delay:0s}.chess:hover .chess-s2,.chess:focus-visible .chess-s2,.chess.on .chess-s2{opacity:0;filter:blur(1.5px);transition:transform .1s cubic-bezier(.5,0,.9,.6),opacity .14s ease-out .12s,filter .14s ease-out .12s;transform:translate(-.5em)}.chess:hover .chess-s1,.chess:focus-visible .chess-s1,.chess.on .chess-s1{opacity:0;filter:blur(1.5px);transition:transform .14s ease-out .12s,opacity .14s ease-out .12s,filter .14s ease-out .12s;transform:scale(.7)}.chess:hover .chess-c,.chess:focus-visible .chess-c,.chess.on .chess-c{opacity:0;transition:transform .22s cubic-bezier(.2,.9,.25,1.05) 70ms,opacity .11s ease-in .25s;transform:translate(1.11em,-.36em)rotate(90deg)scale(.82)}.chess:hover .chess-h,.chess:focus-visible .chess-h,.chess.on .chess-h{opacity:0;transition:transform .2s cubic-bezier(.2,.9,.25,1) .1s,opacity .11s ease-in .25s;transform:translate(.5em,.1em)scale(.78,.6)}.chess:hover .chess-e,.chess:focus-visible .chess-e,.chess.on .chess-e{opacity:0;filter:blur(1.5px);transition:transform .14s ease-out .12s,opacity .13s ease-out .12s,filter .13s ease-out .12s;transform:translate(-.1em)scale(.55)}.chess:hover .chess-pawn,.chess:focus-visible .chess-pawn,.chess.on .chess-pawn{opacity:1;clip-path:inset(0);transition:transform .27s cubic-bezier(.34,1.45,.5,1) .19s,opacity .1s ease-out .19s,clip-path .21s cubic-bezier(.2,.8,.2,1) .19s;transform:none}@media (prefers-reduced-motion:reduce){.chess-l,.chess-pawn,.chess:hover .chess-l,.chess:hover .chess-pawn,.chess.on .chess-l,.chess.on .chess-pawn{transition-duration:1ms!important;transition-delay:0s!important}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}
