@font-face{font-family:bricolage;src:url(../media/bricolage_grotesque_sub-s.p.19ihc9wfc0cy1.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:bricolage Fallback;src:local(Arial);ascent-override:92.86%;descent-override:26.96%;line-gap-override:0.0%;size-adjust:100.15%}.bricolage_dce009b7-module__wxIc-W__className{font-family:bricolage,bricolage Fallback,system-ui,sans-serif}.bricolage_dce009b7-module__wxIc-W__variable{--font-bricolage:"bricolage", "bricolage Fallback", system-ui, sans-serif}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/316bb157f985759c-s.3jzqmxpevyhx0.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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3e19a33f554fa0a0-s.2235mpa3g0s8a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/122b9f2e4f8e51a4-s.23gcsyr-xc01s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0fb88268c76d4312-s.26a7rlfo_sv5y.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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4a404718ad388446-s.0h7e00f9km-36.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/64c5f24155ea0bd5-s.08hbbknvbgrcb.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_7ee32085-module__EghNIW__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal;font-weight:400}.geist_mono_7ee32085-module__EghNIW__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:var(--font-bricolage), system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--spacing:.25rem;--text-xs:clamp(.8125rem, .785rem + .112vw, .875rem);--text-base:clamp(1.0625rem, 1rem + .3vw, 1.125rem);--text-lg:clamp(1.1875rem, 1.105rem + .337vw, 1.375rem);--text-xl:clamp(1.375rem, 1.211rem + .674vw, 1.75rem);--text-2xl:clamp(1.75rem, 1.531rem + .899vw, 2.25rem);--text-4xl:clamp(2.75rem, 2.202rem + 2.247vw, 4rem);--leading-tight:1.1;--leading-snug:1.25;--leading-relaxed:1.7;--radius-sm:6px;--radius-md:10px;--ease-out:cubic-bezier(.22, 1, .36, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#13281c;--color-card:#1b3426;--color-text:#f2eee3;--color-text-dim:#bcc0b2;--color-border:#425c4d;--color-accent:#7fcc94;--color-crimson:#7a1f1f;--bone-04:#f3eadf0a;--bone-07:#f3eadf12;--bone-12:#f3eadf1f;--bone-62:#f3eadf9e;--bone-85:#f3eadfd9;--text-2xs:.75rem;--space-1:4px;--space-3:12px;--space-5:20px;--space-8:32px;--space-12:48px;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--dur-slower:.48s;--font-display:var(--font-bricolage), system-ui, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-bg:lab(14.045% -11.3086 4.98714);--color-card:lab(19.3318% -12.9139 5.69565);--color-text:lab(94.2754% .00977516 5.7534);--color-text-dim:lab(77.0109% -3.3758 6.62493);--color-border:lab(36.7362% -12.8034 5.65357);--color-accent:lab(75.9143% -33.623 19.9205)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-text);line-height:var(--leading-snug);font-weight:500}h1{font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:-.02em}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{font-size:var(--text-base);line-height:var(--leading-relaxed)}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.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,)}}:root{--bg-deep:#13281c;--bg-base:#13281c;--bg-card:#1b3426;--crimson-mid:#7fcc94;--vermillion:#7fcc94;--ember:#7fcc94;--bone:#f2eee3;--bone-dim:#bcc0b2;--bone-faint:#9fa898;--bone-line:#425c4d;--bone-hairline:#2b4435;--display-dark:var(--font-bricolage), system-ui, sans-serif;--body-dark:var(--font-bricolage), system-ui, sans-serif;--content-max:1440px;--content-pad:64px;--field:#13281c;--field-2:#1b3426;--bone-2:#bcc0b2;--line:#7fcc94;--dim:#425c4d;--pad:clamp(16px, 4vw, 64px);--rail:clamp(36px, 5vw, 80px);--nav-h:88px;--sp:clamp(120px, 16vh, 200px)}@supports (color:lab(0% 0 0)){:root{--bg-deep:lab(14.045% -11.3086 4.98714);--bg-base:lab(14.045% -11.3086 4.98714);--bg-card:lab(19.3318% -12.9139 5.69565);--crimson-mid:lab(75.9143% -33.623 19.9205);--vermillion:lab(75.9143% -33.623 19.9205);--ember:lab(75.9143% -33.623 19.9205);--bone:lab(94.2754% .00977516 5.7534);--bone-dim:lab(77.0109% -3.3758 6.62493);--bone-faint:lab(67.8145% -5.43639 7.32331);--bone-line:lab(36.7362% -12.8034 5.65357);--bone-hairline:lab(26.294% -12.8573 5.67405);--field:lab(14.045% -11.3086 4.98714);--field-2:lab(19.3318% -12.9139 5.69565);--bone-2:lab(77.0109% -3.3758 6.62493);--line:lab(75.9143% -33.623 19.9205);--dim:lab(36.7362% -12.8034 5.65357)}}@media (max-width:767px){:root{--nav-h:72px}}@media (max-width:1199px){:root{--content-pad:40px}}@media (max-width:767px){:root{--content-pad:24px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:100%}body{background-color:var(--field);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.grid-shots{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (max-width:1000px){.grid-shots{grid-template-columns:repeat(2,minmax(0,1fr))}}.shot-tile{aspect-ratio:4/3;border:1px solid var(--bone-07);background:var(--color-card);cursor:pointer;font:inherit;color:inherit;transition:transform var(--dur-slow) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out);padding:0;display:block;position:relative;overflow:hidden}.shot-tile:hover{border-color:#7fcc9459;transform:translateY(-2px)}@supports (color:color-mix(in lab, red, red)){.shot-tile:hover{border-color:color-mix(in srgb, var(--color-accent) 35%, transparent)}}.shot-tile:hover{box-shadow:0 20px 40px -20px #7fcc9459}@supports (color:color-mix(in lab, red, red)){.shot-tile:hover{box-shadow:0 20px 40px -20px color-mix(in srgb, var(--color-accent) 35%, transparent)}}.shot-tile:focus-visible{outline:2px solid var(--vermillion,var(--color-accent));outline-offset:2px}.craft-viewall{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:4px;margin-top:1.25rem;text-decoration:none;display:inline-flex}.craft-viewall:hover{color:var(--vermillion,var(--color-accent))}.lightbox{z-index:200;background:#13281ceb;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.lightbox{background:color-mix(in srgb, var(--color-bg) 92%, transparent)}}.lightbox{-webkit-backdrop-filter:blur(8px);animation:lightboxIn var(--dur-base) var(--ease-out);justify-content:center;align-items:center;padding:24px;display:flex}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}.lightbox-stage{max-width:92vw;max-height:86vh;animation:lightboxStageIn var(--dur-slower) var(--ease-out);justify-content:center;align-items:center;display:flex;position:relative}@keyframes lightboxStageIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.lightbox-close,.lightbox-nav{background:var(--bone-04);border:1px solid var(--bone-12);color:var(--color-text);cursor:pointer;width:44px;height:44px;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:fixed}.lightbox-close:hover,.lightbox-nav:hover{background:#7fcc9426}@supports (color:color-mix(in lab, red, red)){.lightbox-close:hover,.lightbox-nav:hover{background:color-mix(in srgb, var(--color-accent) 15%, transparent)}}.lightbox-close:hover,.lightbox-nav:hover{border-color:#7fcc9480}@supports (color:color-mix(in lab, red, red)){.lightbox-close:hover,.lightbox-nav:hover{border-color:color-mix(in srgb, var(--color-accent) 50%, transparent)}}.lightbox-close:hover,.lightbox-nav:hover{color:var(--color-text)}.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:2px solid var(--vermillion,var(--color-accent));outline-offset:2px}.lightbox-close{top:24px;right:24px}.lightbox-prev{top:50%;left:24px;transform:translateY(-50%)}.lightbox-next{top:50%;right:24px;transform:translateY(-50%)}.lightbox-prev:hover{transform:translateY(-50%)translate(-2px)}.lightbox-next:hover{transform:translateY(-50%)translate(2px)}.lightbox-meta{background:#13281c99;border-radius:999px;align-items:center;gap:18px;padding:10px 18px;display:inline-flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.lightbox-meta{background:color-mix(in srgb, var(--color-bg) 60%, transparent)}}.lightbox-meta{border:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bone-62)}.lightbox-meta a{color:var(--bone-85);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}.lightbox-meta a:hover{color:var(--vermillion,var(--color-accent))}@media (max-width:767px){.lightbox{padding:16px}.lightbox-close{width:40px;height:40px;top:14px;right:14px}.lightbox-prev{width:38px;height:38px;left:10px}.lightbox-next{width:38px;height:38px;right:10px}.lightbox-meta{font-size:var(--text-xs);gap:12px;padding:8px 14px;bottom:14px}}@media (prefers-reduced-motion:reduce){.lightbox,.lightbox-stage{animation:none}.shot-tile:hover{transform:none}}@media (max-width:767px){.grid-shots{grid-template-columns:1fr}}.page-dark{background:var(--bg-deep);color:var(--bone);font-family:var(--body-dark);font-weight:400;font-size:var(--text-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;line-height:1.5;overflow-x:hidden}.page-dark a{color:inherit;text-decoration:none}.page-dark button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.page-dark img{max-width:100%;display:block}.page-dark .nav{z-index:20;justify-content:space-between;align-items:center;padding:28px 64px;display:flex;position:relative}.page-dark .hero{isolation:isolate;position:relative}.page-dark .services{border-top:1px solid var(--bone-line);z-index:10;background:var(--bg-deep);padding:56px 64px 72px;position:relative}.page-dark .trust{border-top:1px solid var(--bone-hairline);background:var(--bg-deep);align-items:center;gap:56px;padding:30px 64px 38px;display:flex}.page-dark .work{background:var(--bg-deep);padding:120px 64px 100px;position:relative}.page-dark .work:before{content:"";background:radial-gradient(50% 60% at 50% 0,#7a1f1f38,#0000 70%);width:1200px;height:700px;position:absolute;top:0;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.page-dark .work:before{background:radial-gradient(ellipse 50% 60% at 50% 0%, color-mix(in srgb, var(--color-crimson) 22%, transparent), transparent 70%)}}.page-dark .work:before{pointer-events:none;z-index:0}.page-dark .about{background:var(--bg-deep);border-top:1px solid var(--bone-hairline);padding:100px 64px;position:relative}.page-dark .craft{background:var(--bg-deep);border-top:1px solid var(--bone-hairline);padding:96px 64px}.page-dark .resume{background:var(--bg-deep);padding:32px 64px 96px}body{background-color:var(--bg-deep)!important;color:var(--bone)!important;font-family:var(--body-dark)!important}.site-nav{color:var(--bone);background:0 0;position:static}.site-nav-inner{justify-content:space-between;align-items:baseline;gap:var(--space-8);padding:24px var(--pad);display:flex}.site-nav-logo{font:400 12px/1.5 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--bone-2);text-decoration:none;display:block}.site-nav-name{color:var(--bone);display:block}.site-nav-role{display:block}.site-nav-links{align-items:baseline;gap:28px;display:flex}.site-nav-link,.site-nav-resume{font-family:var(--font-sans);color:var(--bone-2);transition:color var(--dur-fast) var(--ease-out);font-size:15px;font-weight:400;text-decoration:none}.site-nav-link:hover,.site-nav-link.is-active,.site-nav-resume:hover{color:var(--bone)}.site-nav-hamburger{cursor:pointer;color:var(--bone);background:0 0;border:none;padding:4px;display:none}.site-nav-mobile{padding:8px var(--pad) 22px;background-color:var(--field);color:var(--bone);flex-direction:column;gap:18px;display:none}.site-nav-mobile-link{font-family:var(--font-sans);color:var(--bone);font-size:17px;text-decoration:none}.site-nav-mobile-link.is-active{color:var(--line)}.site-nav .site-nav-link:after{background:var(--line);transition:transform .3s var(--ease-out);bottom:-2px}.site-nav .site-nav-link.is-active:after{transform:scaleX(0)}.site-nav .site-nav-link:hover:after,.site-nav .site-nav-link:focus-visible:after{transform:scaleX(1)}.site-nav a:active,.site-nav button:active{transform:translateY(1px)}.site-nav a:focus-visible,.site-nav button:focus-visible{outline:2px solid var(--line);outline-offset:4px}@media (max-width:767px){.site-nav-links{display:none}.site-nav-hamburger{justify-content:center;align-items:center;display:inline-flex}.site-nav-mobile{display:flex}}.site-footer{border-top:1px solid var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px 32px;margin-top:40px;padding:32px 0 48px;display:flex}.site-footer-copy,.site-footer-link{font:400 12px/1.5 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--bone-2);text-decoration:none}.site-footer-links{flex-wrap:wrap;align-items:baseline;gap:8px 24px;display:flex}.site-footer-link{align-items:center;gap:4px;display:inline-flex}.site-footer-link:hover{color:var(--line)}.site-footer-link:focus-visible{outline:2px solid var(--line);outline-offset:4px}.inner-page{min-height:100vh}.inner-main{width:100%;max-width:1440px;margin:0 auto;padding:140px 64px 0}@media (max-width:1199px){.inner-main{padding:120px 40px 0}}@media (max-width:767px){.inner-main{padding:96px 24px 0}}.inner-main{padding-top:48px}.inner-page p,.inner-page span,.inner-page li,.inner-page td,.inner-page div{color:inherit}.page-dark .hero{--mx:50%;--my:50%}.page-dark .craft{position:relative;overflow:hidden}.page-dark .craft>:not(.craft-3d-wrap){z-index:1;position:relative}.page-dark .site-nav-floating{z-index:50;pointer-events:none;position:fixed;top:0;left:0;right:0}.page-dark .site-nav-floating .site-nav-inner{pointer-events:auto;background:0 0;padding-top:22px;padding-bottom:22px}.page-dark .site-nav-floating .site-nav-link{color:var(--bone);opacity:.86}.page-dark .site-nav-floating .site-nav-link:hover,.page-dark .site-nav-floating .site-nav-link.is-active{color:var(--ember);opacity:1}@media (max-width:900px){.page-dark .site-nav-floating .site-nav-inner{padding:18px 24px}}.page-dark .services,.page-dark .work,.page-dark .craft,.page-dark .about,.page-dark .resume{padding-left:0;padding-right:0}.page-dark .site-nav-floating .site-nav-inner{max-width:var(--content-max);padding-left:var(--content-pad);padding-right:var(--content-pad);margin:0 auto}.inner-main{max-width:none;padding-left:var(--pad);padding-right:var(--pad)}.page-dark .site-nav-floating{background:0 0}.page-dark .site-nav-floating .site-nav-inner{background:0 0;padding-top:22px;padding-bottom:22px}.page-dark .services,.page-dark .work,.page-dark .craft,.page-dark .resume,.page-dark .about,.page-dark .trust{padding-left:0;padding-right:0}@media (max-width:767px){.page-dark .services{padding-top:40px;padding-bottom:48px}.page-dark .work{padding-top:72px;padding-bottom:64px}.page-dark .craft{padding-top:56px;padding-bottom:64px}.page-dark .about{padding-top:48px;padding-bottom:48px}.page-dark .resume{padding-top:24px;padding-bottom:64px}.page-dark .trust{flex-direction:column;align-items:flex-start;gap:16px;padding-top:24px;padding-bottom:28px}}.content-hero{background:var(--field-2);border-radius:2px;margin-top:32px;position:relative;overflow:hidden}.content-hero-scrim{background:linear-gradient(0deg, var(--field) 0%, var(--field) 35%, transparent 75%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.content-hero-scrim{background:linear-gradient(0deg, var(--field) 0%, color-mix(in srgb, var(--field) 92%, transparent) 35%, transparent 75%)}}.content-hero-inner{flex-direction:column;justify-content:flex-end;min-height:clamp(360px,46vw,600px);padding:clamp(20px,3vw,40px);display:flex;position:relative}.content-hero-top{display:none}.content-hero-text h1{font:700 clamp(30px, 4vw, 64px)/1.05 var(--font-display);letter-spacing:-.03em;color:var(--bone);text-wrap:balance;max-width:24ch;margin:0}.content-hero-text p.content-hero-desc{color:var(--bone);max-width:60ch;margin:16px 0 0;font-size:clamp(16px,1.3vw,19px);line-height:1.4}:where(a,button,[role=button],[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}:where(a,button,[role=button],[tabindex]:not([tabindex="-1"])):active{opacity:.85;transform:scale(.98)}.site-nav-link{padding-block:4px;display:inline-block;position:relative}.site-nav-link:after{content:"";background:var(--color-accent);transform-origin:0;height:1px;transition:transform var(--dur-base) var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav-link:hover:after,.site-nav-link.is-active:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.site-nav-link:after{transition:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.skip{z-index:200;padding:8px 12px;position:absolute;left:-999px}.skip:focus{background:var(--line);color:var(--field);padding:8px 12px;top:16px;left:16px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.home-c{padding:0 var(--pad);background:var(--field);color:var(--bone);font-family:var(--font-display);font-optical-sizing:auto;position:relative}.home-c a,.cs-c a,.pg-c a{color:inherit;text-decoration:none}.home-c a:focus-visible,.home-c button:focus-visible{outline:2px solid var(--line);outline-offset:4px}.home-c em{color:var(--line);font-style:normal}.home-c .mono{font:400 12px/1.5 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--bone-2)}.home-c h1,.home-c h2,.home-c h3{font-weight:700}.home-c .spine,.cs-c .spine,.pg-c .spine{left:calc(var(--pad) + 7px);background:var(--dim);width:2px;height:100%;position:absolute;top:0}.home-c .spine i,.cs-c .spine i,.pg-c .spine i{background:var(--line);transform-origin:top;position:absolute;inset:0}.home-c .s,.cs-c .s,.pg-c .s{padding-left:var(--rail);position:relative}.home-c .node,.cs-c .node,.pg-c .node{background:var(--field);border:2px solid var(--line);z-index:1;border-radius:50%;width:16px;height:16px;position:absolute;left:0}.home-c .node.end,.cs-c .node.end,.pg-c .node.end{background:var(--line)}.home-c .lbl,.cs-c .lbl,.pg-c .lbl{font:400 12px/1.5 var(--font-mono);letter-spacing:0;text-transform:uppercase;color:var(--bone-2);border-top:1px solid var(--dim);justify-content:space-between;padding-top:16px;display:flex}.home-c .lbl a,.cs-c .lbl a,.pg-c .lbl a{color:var(--line)}.home-c{--sp:clamp(120px, 16vh, 200px)}.home-c .s:not(.hero){padding-top:var(--sp)}.home-c{--hd:clamp(40px, 5.6vw, 96px)}.home-c .lbl.hd{font:700 var(--hd)/.95 var(--font-display);letter-spacing:-.04em;text-transform:none;color:var(--bone);flex-wrap:wrap;align-items:baseline;gap:12px 24px;margin-bottom:32px;padding-top:28px}.home-c .lbl.hd a,.home-c .lbl.hd3 a{font:400 13px/1.5 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.home-c .lbl.hd3{font:700 clamp(28px, 3.2vw, 48px)/1 var(--font-display);letter-spacing:-.03em;text-transform:none;color:var(--bone);flex-wrap:wrap;align-items:baseline;gap:12px 24px;margin-bottom:8px;padding-top:24px}.home-c .work .node,.home-c .craft .node,.home-c .services .node,.home-c .tools .node{top:calc(var(--sp) + 28px + .45 * var(--hd) - 8px)}.home-c .all-link{color:var(--line);margin-top:32px;display:inline-block}.home-c .all-link:hover{color:var(--bone)}.home-c .hero{box-sizing:content-box;min-height:calc(100svh - var(--nav-h));flex-direction:column;justify-content:center;padding-top:0;padding-bottom:clamp(40px,8vh,96px);display:flex}.home-c .hello-row{margin-bottom:24px;position:relative}.home-c .hello-row .node{left:calc(-1 * var(--rail));top:2px}.home-c .hello{font:400 13px/20px var(--font-mono);text-transform:uppercase;letter-spacing:.03em;color:var(--line)}.home-c .tagline{font:500 clamp(18px, 1.6vw, 24px)/1.4 var(--font-display);color:var(--bone-2);margin-top:28px}.home-c .hero-links{font:400 13px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.03em;flex-wrap:wrap;gap:24px;margin-top:32px;display:flex}.home-c .hero-links a,.home-c .contact a{transition:background-size .3s var(--ease-out), color .2s;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:2px;display:inline-block}.home-c .hero-links a:hover,.home-c .hero-links a:focus-visible,.home-c .contact a:hover,.home-c .contact a:focus-visible{background-size:100% 1px}.home-c .hero-links a:active,.home-c .contact a:active,.home-c a:active{transform:translateY(1px)}.home-c .hero-links a{color:var(--bone-2)}.home-c .hero-links a:hover{color:var(--line)}.home-c .hero>:not(.hero-field){z-index:1;position:relative}.home-c .hero-field{z-index:0;pointer-events:none;position:absolute;top:0;left:0}.home-c .state{font:400 min(150px, calc((100vw - 2 * var(--pad) - var(--rail)) * .103))/.98 var(--font-display);white-space:nowrap;font-variation-settings:"wght" 400;letter-spacing:-.04em;color:var(--bone)}.home-c .line1{display:block}.home-c .flip{vertical-align:bottom;perspective:700px;margin-bottom:-.14em;padding-bottom:.14em;display:block;position:relative;overflow:hidden}.home-c .flip .w{transform-origin:50% 50% -.4em;display:inline-block}.home-c .ch{transition:font-variation-settings .15s}.home-c .state{min-height:1.96em}.home-c .work{padding-bottom:var(--sp)}.home-c .item,.pg-c .item{border-bottom:1px solid var(--dim);grid-template-columns:1fr auto;gap:10px 32px;padding:32px 0;display:grid;position:relative}.home-c .item .a,.pg-c .item .a{color:var(--bone-2);grid-column:1;max-width:60ch;font-size:clamp(16px,1.3vw,19px);line-height:1.4}.home-c .item .go,.pg-c .item .go{color:var(--line);grid-area:1/2;align-self:start;font-size:28px;transition:transform .3s cubic-bezier(.16,1,.3,1)}.home-c .item:hover .go,.pg-c .item:hover .go{transform:translate(6px)}.home-c .item .tick,.pg-c .item .tick{left:calc(-1 * var(--rail) + 4px);background:var(--line);border-radius:50%;width:8px;height:8px;position:absolute;top:calc(28px + clamp(24px,2.6vw,40px)/1.81818)}.home-c .item .t,.pg-c .item .t{font:600 clamp(24px, 2.6vw, 40px)/1.1 var(--font-display);letter-spacing:-.02em;text-wrap:balance}.home-c .item:hover .t,.pg-c .item:hover .t{color:var(--line)}.home-c .item{transition:background-color .3s var(--ease-out)}.home-c .item:hover{background:var(--line)}@supports (color:color-mix(in lab, red, red)){.home-c .item:hover{background:color-mix(in oklch, var(--line) 6%, transparent)}}.home-c .item .tick{transition:transform .3s cubic-bezier(.16,1,.3,1)}.home-c .item:hover .tick{transform:scale(1.6)}.home-c .item:active{transform:translateY(1px)}.home-c .shipped{margin-top:clamp(80px,10vh,128px)}.home-c .repo{border-bottom:1px solid var(--dim);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:baseline;gap:8px 48px;padding:28px 0;display:grid}.home-c .repo-name{font:600 clamp(24px, 2.6vw, 40px)/1.1 var(--font-display);letter-spacing:-.02em}.home-c .repo-desc{color:var(--bone-2);max-width:60ch;font-size:clamp(16px,1.3vw,19px);line-height:1.4}.home-c .repo-tags{grid-column:1}.home-c .repo-detail{grid-column:2;gap:8px;margin-top:8px;display:grid}.home-c .repo-detail div{grid-template-columns:90px 1fr;align-items:baseline;gap:16px;display:grid}.home-c .repo-detail dd{color:var(--bone-2);margin:0;font-size:16px;line-height:1.4}.home-c .repo-link{font:400 13px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.03em;color:var(--line);grid-column:2}.home-c .repo-link:hover{color:var(--bone)}.home-c .skills-hl{font:600 clamp(20px, 2vw, 30px)/1.2 var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin-top:40px}.home-c .skills-grid{grid-template-columns:1fr 1fr;gap:28px 48px;margin-top:24px;padding:0;list-style:none;display:grid}.home-c .skills-grid li{border-top:1px solid var(--dim);gap:6px;padding-top:12px;display:grid}.home-c .skills-grid p{color:var(--bone-2);font-size:15px;line-height:1.4}.home-c .skills-grid b{color:var(--bone);font-weight:600}.home-c .craft{padding-bottom:var(--sp)}.home-c .craft-viewall{display:none}.home-c .grid-shots{grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(200px,22vw,320px);gap:16px}.home-c .shot-tile{aspect-ratio:auto;background:var(--field-2);border:0;border-radius:2px;transition:transform .4s cubic-bezier(.16,1,.3,1)}.home-c .shot-tile:hover{box-shadow:none;border:0;transform:translateY(-4px)}.home-c .shot-tile:active{transform:translateY(1px)}.home-c .shot-tile img{object-fit:cover;object-position:top left;transition:transform .6s cubic-bezier(.16,1,.3,1)}.home-c .shot-tile:hover img{transform:scale(1.03)}.home-c .grid-shots>:first-child{grid-column:span 7}.home-c .grid-shots>:nth-child(2){grid-column:span 5}.home-c .grid-shots>:nth-child(3){grid-column:span 4}.home-c .grid-shots>:nth-child(4){grid-column:span 5}.home-c .grid-shots>:nth-child(5),.home-c .grid-shots>:nth-child(6){grid-column:span 3}.home-c .grid-shots>:nth-child(7){grid-column:span 4}.home-c .grid-shots>:nth-child(8){grid-column:span 5}.home-c .story{padding-bottom:var(--sp)}.home-c .story .node{top:calc(var(--sp) + .45 * clamp(56px, 8vw, 140px) - 8px)}.home-c .story-h{font:700 clamp(56px, 8vw, 140px)/.92 var(--font-display);letter-spacing:-.045em}.home-c .intro{max-width:34ch;color:var(--bone-2);margin-top:24px;font-size:clamp(18px,1.6vw,24px);line-height:1.35}.home-c .about-p{max-width:62ch;color:var(--bone-2);margin-top:20px;font-size:clamp(16px,1.3vw,19px);line-height:1.5}.home-c .stack{margin-top:clamp(64px,8vw,120px);padding:0;list-style:none;display:grid}.home-c .layer{border:1px solid var(--dim);border-bottom:0;grid-template-columns:220px 1fr 1fr;align-items:baseline;gap:24px;padding:22px 24px;display:grid}.home-c .layer h3{font:700 clamp(22px, 2.2vw, 34px)/1.05 var(--font-display);letter-spacing:-.02em}.home-c .layer .gave{color:var(--line);font-size:clamp(16px,1.3vw,19px);line-height:1.35}.home-c .layer.base{background:var(--field-2);border:1px solid var(--line);padding-block:30px}.home-c .pluses{margin-top:64px}.home-c .plus{border-bottom:1px solid var(--dim);grid-template-columns:220px 1fr;align-items:baseline;gap:24px;padding:24px 24px 24px 25px;display:grid}.home-c .plus dt{color:var(--line)}.home-c .plus dd{font:600 clamp(22px, 2.2vw, 34px)/1.15 var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0}.home-c .story-link{color:var(--line);margin-top:32px;display:inline-block}.home-c .story-link:hover{color:var(--bone)}.home-c .services,.home-c .tools{padding-bottom:var(--sp)}.home-c .tool-group{border-bottom:1px solid var(--dim);grid-template-columns:120px 1fr;align-items:baseline;gap:24px;padding:28px 0;display:grid}.home-c .tool-group .mono{color:var(--line)}.home-c .tool-group ul{flex-wrap:wrap;gap:12px 36px;list-style:none;display:flex}.home-c .tool-group li{font:600 clamp(22px, 2.2vw, 34px)/1.1 var(--font-display);letter-spacing:-.02em;color:var(--bone);transition:color .25s}.home-c .tool-group li:hover{color:var(--line)}.home-c .svc,.pg-c .svc{border-bottom:1px solid var(--dim);grid-template-columns:120px 1fr 1fr;align-items:baseline;gap:24px;padding:28px 0;display:grid}.home-c .svc-num,.pg-c .svc-num{color:var(--line)}.home-c .svc-title,.pg-c .svc-title{font:600 clamp(22px, 2.2vw, 34px)/1.1 var(--font-display);letter-spacing:-.02em}.home-c .svc-body,.pg-c .svc-body{color:var(--bone-2);font-size:clamp(16px,1.3vw,19px);line-height:1.4}.home-c .close{padding-bottom:clamp(96px,16vh,180px)}.home-c .close .node{top:calc(var(--sp) + .5 * 1.05 * clamp(34px, 5.2vw, 92px) - 8px)}.home-c .promise{font:700 clamp(34px, 5.2vw, 92px)/1.05 var(--font-display);letter-spacing:-.035em;text-wrap:balance}.home-c .contact{font:400 13px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.03em;flex-wrap:wrap;gap:24px;margin-top:48px;display:flex}.home-c .contact a{color:var(--bone-2)}.home-c .contact a:hover{color:var(--line)}.home-foot{padding:0 var(--pad) 48px calc(var(--pad) + var(--rail));background:var(--field);color:var(--bone-2)}@media (max-width:1023px){.home-c .layer{grid-template-columns:180px 1fr}.home-c .layer .gave{grid-column:2}}@media (max-width:767px){:root{--rail:32px}.home-c .item,.pg-c .item{gap:10px 16px}.home-c .item .go,.pg-c .item .go{font-size:22px}.home-c .repo{grid-template-columns:1fr;gap:8px}.home-c .repo-tags,.home-c .repo-detail,.home-c .repo-link{grid-column:1}.home-c .repo-detail div{grid-template-columns:1fr;gap:2px}.home-c .skills-grid{grid-template-columns:1fr}.home-c .grid-shots{grid-template-columns:1fr 1fr;grid-auto-rows:120px;gap:8px}.home-c .grid-shots>*{grid-column:span 1}.home-c .grid-shots>:first-child,.home-c .grid-shots>:nth-child(8){grid-area:span 2/span 2}.home-c .stack{margin-top:40px}.home-c .layer{grid-template-columns:1fr;gap:6px;padding:18px}.home-c .layer .gave{grid-column:auto}.home-c .plus{grid-template-columns:1fr;gap:6px;padding:18px 0}.home-c .svc,.pg-c .svc{grid-template-columns:1fr;gap:6px}.home-c .tool-group{grid-template-columns:1fr;gap:12px}}@media (prefers-reduced-motion:reduce){.home-c .item .go,.pg-c .item .go,.home-c .shot-tile img,.home-c .shot-tile,.home-c .item .tick,.home-c .item{transition:none}.home-c .item:hover .go,.pg-c .item:hover .go,.home-c .shot-tile:hover img,.home-c .shot-tile:hover,.home-c .item:hover .tick{transform:none}}.cs-c{font-family:var(--font-display);font-optical-sizing:auto;color:var(--bone);position:relative}.cs-c .spine{left:7px}.cs-c a:focus-visible,.cs-c [role=button]:focus-visible,.pg-c a:focus-visible{outline:2px solid var(--line);outline-offset:4px}.cs-c .mono,.pg-c .mono{font:400 12px/1.5 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--bone-2)}.cs-head{padding-bottom:clamp(40px,6vw,72px)}.cs-head .node{top:3px}.cs-back-c{display:inline-block}.cs-back-c:hover{color:var(--line)}.cs-q{font:700 clamp(34px, 4.4vw, 72px)/1.05 var(--font-display);letter-spacing:-.03em;text-wrap:balance;color:var(--bone);max-width:22ch;margin-top:32px}.cs-c .ans{color:var(--bone-2);max-width:44ch;margin-top:24px;font-size:clamp(18px,1.6vw,24px);line-height:1.35}.cs-meta{flex-wrap:wrap;gap:20px 48px;margin-top:40px;display:flex}.cs-meta dt{font-size:11px}.cs-meta dd{font:400 15px/1.4 var(--font-display);color:var(--bone);margin:4px 0 0}.cs-cover{background:var(--field-2);border-radius:2px;margin:0 0 clamp(56px,8vw,112px);padding:clamp(16px,4vw,64px) clamp(16px,4vw,64px) 0}.cs-cover-box{aspect-ratio:16/10;border-radius:2px 2px 0 0;width:100%;max-height:72vh;position:relative;overflow:hidden}.cs-cover-box img{object-fit:cover;object-position:top}.cs-body{padding-bottom:96px}.cs-body .node{top:14px}.cs-c .reading,.pg-c .reading{min-width:0}.cs-c .reading>:not(span),.pg-c .reading>:not(span){max-width:72ch}.cs-c .reading p,.pg-c .reading p{color:var(--bone-2);margin-top:20px;font-size:17px;line-height:1.65}.cs-c .reading li,.pg-c .reading li{color:var(--bone-2);font-size:17px;line-height:1.65}.cs-c .reading strong,.pg-c .reading strong{color:var(--bone);font-weight:600}.cs-c .reading ul,.pg-c .reading ul{border-top:1px solid var(--dim);margin-top:28px;padding:0;list-style:none}.cs-c .reading ul li,.pg-c .reading ul li{border-bottom:1px solid var(--dim);padding:12px 0 12px 24px;position:relative}.cs-c .reading ul li:before,.pg-c .reading ul li:before{content:"+";color:var(--line);font-family:var(--font-mono);position:absolute;left:0}.cs-c .reading ol,.pg-c .reading ol{margin-top:24px;padding-left:24px}.cs-c .reading .cs-h2,.pg-c .reading .cs-h2{font:700 clamp(30px, 3.4vw, 52px)/1.05 var(--font-display);letter-spacing:-.03em;color:var(--bone);text-wrap:balance;margin-top:96px;position:relative}.cs-c .reading .cs-h2:first-child,.pg-c .reading .cs-h2:first-child{margin-top:0}.cs-c .reading .cs-h2:before,.pg-c .reading .cs-h2:before{content:"";left:calc(-1 * var(--rail) + 3px);background:var(--line);border-radius:50%;width:10px;height:10px;position:absolute;top:calc(.525em - 5px)}.cs-c .reading blockquote,.pg-c .reading blockquote{border-left:2px solid var(--line);font:600 clamp(20px, 1.8vw, 26px)/1.3 var(--font-display);letter-spacing:-.01em;color:var(--bone);margin:40px 0;padding:4px 0 4px 24px}.cs-c .reading blockquote p,.pg-c .reading blockquote p{font:inherit;color:inherit;max-width:none;margin-top:0}.cs-c .reading hr,.pg-c .reading hr{border:0;border-top:1px solid var(--dim);margin:64px 0}.cs-c .reading table,.pg-c .reading table{border-collapse:collapse;width:100%;margin-top:32px;font-size:15px;display:block;overflow-x:auto}.cs-c .reading th,.pg-c .reading th{text-align:left;font:400 12px/1.5 var(--font-mono);text-transform:uppercase;color:var(--bone-2);border-bottom:1px solid var(--dim);padding:10px 16px 10px 0}.cs-c .reading td,.pg-c .reading td{vertical-align:top;color:var(--bone-2);border-bottom:1px solid var(--dim);padding:12px 16px 12px 0;line-height:1.5}.cs-out{padding-bottom:96px}.cs-out .node{top:14px}.cs-impact{border-top:1px solid var(--dim);max-width:72ch;margin-top:24px;padding:0;list-style:none}.cs-impact li{border-bottom:1px solid var(--dim);color:var(--bone-2);padding:14px 0 14px 24px;font-size:17px;line-height:1.5;position:relative}.cs-impact li:before{content:"+";color:var(--line);font-family:var(--font-mono);position:absolute;left:0}.cs-results-lbl{margin-top:72px}.cs-results{margin-top:8px}.cs-result{border-bottom:1px solid var(--dim);grid-template-columns:1fr;align-items:baseline;gap:6px;padding:24px 0;display:grid}.cs-val{font:700 clamp(32px, 3.6vw, 56px)/1.05 var(--font-display);letter-spacing:-.03em;color:var(--line)}.cs-desc{font-size:13px}.cs-next{padding-bottom:clamp(96px,16vh,180px)}.cs-next .node{top:14px}.cs-next-link{padding:32px 56px 0 0;display:block;position:relative}.cs-next-q{font:600 clamp(26px, 3vw, 46px)/1.1 var(--font-display);letter-spacing:-.02em;text-wrap:balance;max-width:26ch;display:block}.cs-next-a{color:var(--bone-2);max-width:60ch;margin-top:12px;font-size:clamp(16px,1.3vw,19px);line-height:1.4;display:block}.cs-next-go{color:var(--line);font-size:28px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:32px;right:0}.cs-next-link:hover .cs-next-q{color:var(--line)}.cs-next-link:hover .cs-next-go{transform:translate(6px)}@media (min-width:768px){.cs-result{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px}}@media (max-width:767px){.cs-c .reading table{font-size:14px}.cs-next-link{padding-right:40px}.cs-next-go{font-size:22px}}@media (prefers-reduced-motion:reduce){.cs-next-go{transition:none}.cs-next-link:hover .cs-next-go{transform:none}}.inner-main:has(.pg-c){padding-top:0}.pg-c{--pg-top:clamp(64px, 6vw, 80px);font-family:var(--font-display);font-optical-sizing:auto;color:var(--bone);position:relative}.pg-c .spine{left:7px}.pg-c em{color:var(--line);font-style:normal}.pg-c .s{padding-bottom:clamp(96px,16vh,160px)}.pg-c .s .node{top:14px}.pg-c .pg-head{padding-top:var(--pg-top);padding-bottom:clamp(40px,5vw,72px)}.pg-c .pg-head .node{top:calc(var(--pg-top) + 14px)}.pg-c .pg-end{padding-bottom:24px}.pg-c .pg-end .node{top:0}.pg-c .pg-end a:hover,.pg-c .pg-back:hover{color:var(--line)}.pg-back{margin-top:24px;display:inline-block}.pg-h1{font:700 clamp(48px, 7vw, 120px)/.95 var(--font-display);letter-spacing:-.045em;text-wrap:balance;color:var(--bone);margin-top:24px}.pg-h1.sm{letter-spacing:-.03em;max-width:22ch;font-size:clamp(34px,4.4vw,72px);line-height:1.05}.pg-sub{margin-top:24px;display:block}.pg-intro{max-width:52ch;color:var(--bone-2);margin-top:24px;font-size:clamp(18px,1.6vw,24px);line-height:1.35}.pg-tags{margin-top:16px}.pg-c .tick{left:calc(-1 * var(--rail) + 4px);background:var(--line);border-radius:50%;width:8px;height:8px;position:absolute}.pg-row{border-bottom:1px solid var(--dim);grid-template-columns:200px minmax(0,1fr);gap:8px 48px;padding:32px 0;display:grid;position:relative}.pg-row.solo{grid-template-columns:minmax(0,1fr)}.pg-row .tick{top:calc(28px + clamp(24px,2.4vw,36px)/1.81818)}.pg-when{align-content:start;gap:4px;display:grid}.pg-co{font:600 clamp(24px, 2.4vw, 36px)/1.1 var(--font-display);letter-spacing:-.02em;text-wrap:balance}.pg-one{color:var(--bone-2);max-width:60ch;margin-top:8px;font-size:clamp(16px,1.3vw,19px);line-height:1.4}.pg-c .pg-role{color:var(--line);margin-top:12px}.pg-main .reading{margin-top:20px}.pg-main .reading ul{margin-top:0}.pg-main .reading ul li:last-child{border-bottom:0}.pg-skill-txt{color:var(--bone-2);max-width:64ch;font-size:17px;line-height:1.5}.pg-fact{font:600 clamp(22px, 2.2vw, 32px)/1.15 var(--font-display);letter-spacing:-.02em}.pg-fact-sub{margin-top:6px}.pg-list{padding-bottom:clamp(24px,3vw,40px)}.pg-art{border-bottom:1px solid var(--dim);grid-template-columns:160px minmax(0,1fr) auto;gap:12px 40px;padding:32px 0;display:grid;position:relative}.pg-art .tick{top:calc(28px + clamp(22px,2.2vw,32px)/1.73913)}.pg-art-t{font:600 clamp(22px, 2.2vw, 32px)/1.15 var(--font-display);letter-spacing:-.02em;text-wrap:balance}.pg-art:hover .pg-art-t{color:var(--line)}.pg-art-x{color:var(--bone-2);max-width:60ch;margin-top:10px;font-size:clamp(16px,1.3vw,19px);line-height:1.4}.pg-art .pg-tags{margin-top:12px}.pg-thumb{aspect-ratio:3/2;background:var(--field-2);border-radius:2px;align-self:start;width:160px;position:relative;overflow:hidden}.pg-thumb img{object-fit:cover}.pg-prose{margin-top:8px}.pg-prose p{max-width:64ch;color:var(--bone-2);margin-top:20px;font-size:17px;line-height:1.65}.pg-close{max-width:28ch;font:700 clamp(26px, 3vw, 46px)/1.1 var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin-top:56px}.pg-link{margin-top:24px;display:inline-block}.pg-c a.pg-link{color:var(--line)}.pg-c a.pg-link:hover{color:var(--bone)}.pg-resume{border-bottom:1px solid var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px 32px;padding:28px 0;display:flex}.pg-resume p{font:600 clamp(20px, 2vw, 30px)/1.2 var(--font-display);letter-spacing:-.015em;max-width:36ch}.pg-resume a{margin-top:0}.pg-links{font:400 13px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.03em;flex-wrap:wrap;gap:16px 32px;margin-top:24px;display:flex}.pg-links a{color:var(--bone-2)}.pg-links a:hover{color:var(--line)}.pg-c .reading>:not(span){max-width:68ch}.pg-c .reading figure{margin:40px 0}.pg-c .reading figure img{border-radius:2px;width:100%;height:auto;display:block}.pg-src{border-top:1px solid var(--dim);margin-top:64px;padding-top:24px}.pg-src a{color:var(--line);align-items:center;gap:4px;display:inline-flex}.pg-src a:hover{color:var(--bone)}@media (max-width:767px){.pg-c{--pg-top:48px}.pg-row{grid-template-columns:minmax(0,1fr);gap:10px}.pg-row .tick{top:36px}.pg-art{grid-template-columns:minmax(0,1fr);gap:10px}.pg-art .tick{top:36px}.pg-resume{align-items:flex-start}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes rise-t{0%{transform:translateY(24px)}}@keyframes pl-letter{0%{transform:translateY(110%)}to{transform:none}}@keyframes pl-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pl-out{0%{visibility:visible;transform:none}to{visibility:hidden;transform:translateY(-100%)}}.preloader{z-index:1000;background:var(--field);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:20px;animation:.5s cubic-bezier(.76,0,.24,1) .78s forwards pl-out;display:none;position:fixed;inset:0}html.pl-first .preloader{display:flex}html.pl-seen .preloader{display:none}.pl-name{font:700 clamp(22px, 5.5vw, 40px)/1.1 var(--font-display);letter-spacing:-.02em;color:var(--bone);padding-bottom:.12em;display:flex;overflow:hidden}.pl-name span{white-space:pre;animation:pl-letter .5s cubic-bezier(.16, 1, .3, 1) calc(50ms + var(--i) * 28ms) backwards;display:inline-block}.pl-bar{background:var(--line);transform-origin:0;width:min(240px,50vw);height:1px;animation:.6s cubic-bezier(.65,0,.35,1) .15s backwards pl-bar;display:block}.home-c{--hi:.1s}html.pl-first .home-c{--hi:1.1s}.home-c .hello-row .hello{animation:rise .8s cubic-bezier(.16, 1, .3, 1) var(--hi) backwards}.home-c .state{animation:rise-t .8s cubic-bezier(.16, 1, .3, 1) calc(var(--hi) + 80ms) backwards}.home-c .tagline{animation:rise .8s cubic-bezier(.16, 1, .3, 1) calc(var(--hi) + .16s) backwards}.home-c .hero-links{animation:rise .8s cubic-bezier(.16, 1, .3, 1) calc(var(--hi) + .24s) backwards}html.pt-nav .home-c .hello-row .hello,html.pt-nav .home-c .state,html.pt-nav .home-c .tagline,html.pt-nav .home-c .hero-links{animation:none}.pt-curtain{z-index:900;background:var(--field);border-top:2px solid var(--line);visibility:hidden;pointer-events:none;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.preloader{display:none!important}.home-c .hello-row .hello,.home-c .state,.home-c .tagline,.home-c .hero-links{animation:none!important}.home-c .hero-links a,.home-c .contact a,.site-nav .site-nav-link:after{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-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}
