@font-face{font-family:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0e7b7e0b829e3eb9-s.0s6677u7501n5.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:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(../media/daf789e4474d0d90-s.p.3w_oc3nqvqm6n.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:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9e9f04e3c37952ab-s.p.002ht2t_o636a.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:Anton Fallback;src:local(Arial);ascent-override:129.7%;descent-override:36.29%;line-gap-override:0.0%;size-adjust:90.69%}.vKOQxq_className{font-family:Anton,Anton Fallback;font-style:normal;font-weight:400}.vKOQxq_variable{--font-display:"Anton", "Anton Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.00ewlnc1znsu7.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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0bnyh_2yo1emg.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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.0glcd8n2pdab0.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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.z7vlKq_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.z7vlKq_variable{--font-editorial:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.1da667lu-u79a.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.1dgcou5jor5q_.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.2taws-qdxmzlf.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.28xcb7557rbh2.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.2ontrj8z1-o25.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.33iiebxkijmxa.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.2nzetymcmw3t7.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0_f09-l1omku8.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.0fcfx2a-jndc5.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.abEvsa_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.abEvsa_variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8298327da6d5bcce-s.0vdai6er2bzon.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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.3xwp9-ll1pnw_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2b402d8aebffd579-s.370ev4_4-yiay.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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a88409fdd7dc121c-s.41r31qmhr7_rd.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:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e8f2fbee2754df70-s.1gavkj72q9u43.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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8298327da6d5bcce-s.0vdai6er2bzon.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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.3xwp9-ll1pnw_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2b402d8aebffd579-s.370ev4_4-yiay.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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a88409fdd7dc121c-s.41r31qmhr7_rd.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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e8f2fbee2754df70-s.1gavkj72q9u43.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:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.U-lKgG_className{font-family:Montserrat,Montserrat Fallback;font-style:normal}.U-lKgG_variable{--font-kvasir:"Montserrat", "Montserrat Fallback"}
:root{--paper:#f1ede3;--cream:#e4dfcf;--grid:#cbc7ba;--ink:#111313;--red:#c51d1d;--navy:#0b2c61;--line:#1113134d;--page:1380px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}::selection{background:var(--red);color:var(--paper)}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--navy);outline-offset:5px}.site-shell{isolation:isolate;position:relative;overflow-x:clip}.site-shell:before{z-index:-1;background-blend-mode:screen, multiply;content:"";opacity:.3;pointer-events:none;background-image:linear-gradient(#f1ede36b,#f1ede36b),url(/images/crumpled-paper.webp);background-position:top;background-repeat:no-repeat;background-size:auto,cover;position:fixed;inset:0}.waves-background{z-index:-2;background:var(--paper);pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.hero,.projects,.about-inner,.footer-inner{width:min(calc(100% - 48px), var(--page));margin-inline:auto}.scroll-hero{--progress:0;--greeting-opacity:1;--greeting-y:0px;--greeting-scale:1;--name-opacity:0;--name-y:14px;--name-scale:.96;--video-scale:1.1;--video-y:0%;--frame:0;--hero-exit:0;background:var(--paper);height:360svh}.sticky-video{background:var(--paper);height:100svh;position:sticky;top:0}.scroll-hero-frame{background:var(--paper);height:100lvh;transform:translate3d(0, calc(var(--frame) * -3vh), 0) scale(calc(1 - var(--frame) * .16)) rotate(calc(var(--frame) * -.9deg));transform-origin:50% 58%;box-shadow:0 0 0 calc(var(--frame) * 2px) var(--ink), calc(var(--frame) * 14px) calc(var(--frame) * 16px) 0 var(--ink);will-change:transform;position:absolute;inset:0;overflow:hidden}.scroll-hero-frame:before{content:"";transform:translate3d(0, var(--video-y), 0) scale(var(--video-scale));transform-origin:50% 40%;background:url(/videos/turning-head-poster.webp) 50%/cover no-repeat;position:absolute;inset:0}@media (pointer:coarse) and (orientation:portrait){.scroll-hero-frame:before{background-image:url(/videos/turning-head-poster-portrait.webp)}}.scroll-hero-frame-tag{z-index:2;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-mono), monospace;letter-spacing:.16em;opacity:var(--frame);transform:translate3d(0, calc((1 - var(--frame)) * -8px), 0);pointer-events:none;padding:6px 10px;font-size:.62rem;position:absolute;top:18px;left:20px}.scroll-hero-video,.scroll-hero-content{position:absolute;inset:0}.scroll-hero-video{object-fit:cover;object-position:center center;width:100%;height:100%;transform:translate3d(0, var(--video-y), 0) scale(var(--video-scale));transform-origin:50% 40%;will-change:transform;pointer-events:none;visibility:hidden;display:block}.scroll-hero[data-video-ready=true] .scroll-hero-video[data-active=true]{visibility:visible}.scroll-hero-content{z-index:3;pointer-events:none;place-items:stretch stretch;display:grid}.scroll-hero-content a{pointer-events:auto}.hero{isolation:isolate;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:0;display:flex;position:relative}.hero-intro{width:min(920px,90vw);color:var(--paper);font-family:var(--font-display), sans-serif;letter-spacing:-.03em;text-align:center;text-shadow:0 3px #111313e6,0 14px 38px #11131352;justify-items:center;gap:.12em;margin:0;font-size:clamp(3.2rem,8.5vw,8rem);font-weight:400;line-height:.8;display:grid}.hero-intro span{will-change:transform, opacity, filter;display:block}.hero-greeting{opacity:var(--greeting-opacity);filter:blur(calc((1 - var(--greeting-opacity)) * 7px));transform:translate3d(0, var(--greeting-y), 0) scale(var(--greeting-scale))}.hero-name{opacity:var(--name-opacity);filter:blur(calc((1 - var(--name-opacity)) * 7px));transform:translate3d(0, var(--name-y), 0) scale(var(--name-scale))}.site-shell .scroll-hero .hero{padding:0 0 max(54px, env(safe-area-inset-bottom));justify-content:flex-end}.site-shell .scroll-hero .hero-intro{color:#f3dc68;letter-spacing:-.025em;text-transform:none;text-shadow:0 2px 4px #000,0 0 18px #000a;place-items:center;width:100%;font-family:Helvetica,Helvetica Neue,Arial,sans-serif;font-size:clamp(25px,3vw,44px);font-style:italic;font-weight:500;line-height:1.3;display:grid}.site-shell .scroll-hero .hero-intro span{grid-area:1/1;font-weight:500}.intro-hello{opacity:var(--greeting-opacity,1);filter:blur(calc((1 - var(--greeting-opacity,1)) * 14px));transform:translateY(var(--greeting-y,0px))}.intro-name{opacity:var(--name-opacity,0);filter:blur(calc((1 - var(--name-opacity,0)) * 14px));transform:translateY(var(--name-y,12px))}@keyframes intro-dissolve{0%,55%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(16px);letter-spacing:.13em;transform:translateY(-12px)}}@keyframes intro-arrive{0%{opacity:0;filter:blur(14px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.intro-hello{display:none!important}.intro-name{opacity:1;filter:none;transform:none}}.about-copy span,.copyright{font-family:var(--font-mono), monospace;letter-spacing:.13em;text-transform:uppercase;font-size:clamp(.62rem,.75vw,.75rem);font-weight:600}.tool-marquee{z-index:1;border-block:2px solid var(--ink);background:var(--red);color:#fff;width:100%;max-width:100vw;position:relative;overflow:hidden}.tool-marquee-track,.tool-marquee-set{width:max-content;display:flex}.tool-marquee-track{will-change:transform;animation:14s linear infinite ticker-flow}.tool-marquee-set{align-items:center;gap:clamp(2.5rem,7vw,8rem);min-width:100vw;padding:clamp(.9rem,1.8vw,1.6rem) clamp(1.25rem,3vw,3rem)}.tool-logo{flex:none;place-items:center;width:clamp(2rem,4vw,3.5rem);height:clamp(2rem,4vw,3.5rem);display:grid}.tool-logo img{object-fit:contain;width:100%;height:100%}.tool-logo--claude-code img{animation:1.8s steps(2,end) infinite claude-code-pulse}.tool-logo--higgsfield img{width:96%;height:96%}.tool-logo--huggingface img{width:94%;height:94%}.tool-logo--fal{width:clamp(4rem,6vw,5.25rem)}.tool-logo--openai img{width:112%;height:112%}.tool-logo--kaggle img{width:116%;height:116%}@keyframes ticker-flow{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes claude-code-pulse{50%{transform:translateY(-.12em)rotate(6deg)scale(1.08)}}.projects{z-index:2;padding:clamp(3.5rem,7vw,6rem) 0 0;position:relative}.projects:before{z-index:-1;aspect-ratio:.7;clip-path:polygon(0 7%,92% 0,100% 88%,76% 100%,3% 92%);content:"";opacity:.1;background:url(/images/red-checker.webp) 50%/cover;width:clamp(220px,32vw,480px);position:absolute;top:5%;left:-18vw;transform:rotate(-8deg)}.section-head{grid-template-columns:minmax(140px,.34fr) 1fr minmax(220px,.42fr);align-items:end;gap:clamp(24px,4vw,64px);margin-bottom:clamp(3rem,7vw,6rem);display:grid}.section-head h2,.about h2,footer h2{font-family:var(--font-display), sans-serif;letter-spacing:-.025em;text-transform:uppercase;margin:0;font-weight:400;line-height:.86}.section-head h2{color:var(--red);font-size:clamp(4rem,9vw,8.5rem)}.section-head>p:last-child{max-width:260px;font-family:var(--font-editorial), serif;margin:0;font-size:clamp(1.25rem,2vw,1.8rem);font-style:italic;line-height:1.05}.featured-project{border:2px solid var(--ink);background:var(--cream);grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);display:grid}.project-visual{border-right:2px solid var(--ink);background:var(--navy);min-height:clamp(420px,48vw,640px);position:relative;overflow:hidden}.project-visual img{object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.featured-project:hover .project-visual img{transform:scale(1.025)rotate(-.25deg)}.tape{z-index:2;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#f1ede3bd;width:130px;height:34px;position:absolute;box-shadow:0 1px #1113131a}.tape-top{top:14px;left:50%;transform:translate(-50%)rotate(-3deg)}.project-copy{flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);display:flex}.project-copy h3{font-family:var(--font-display), sans-serif;letter-spacing:-.04em;margin:auto 0 0;font-size:clamp(4.5rem,10vw,9rem);font-weight:400;line-height:.8}.project-line{max-width:360px;font-family:var(--font-editorial), serif;margin:2rem 0 4rem;font-size:clamp(1.5rem,2.5vw,2.4rem);font-style:italic;line-height:1.05}.compact-project{border:2px solid var(--ink);background:var(--red);color:var(--paper);grid-template-columns:1fr minmax(240px,.55fr) auto;align-items:end;gap:clamp(24px,5vw,72px);margin-top:24px;padding:clamp(2rem,5vw,4.5rem);display:grid}.compact-project .project-meta{color:var(--paper)}.compact-project h3{margin-top:2rem;font-size:clamp(4rem,8vw,7rem)}.compact-project>p{font-family:var(--font-editorial), serif;margin:0;font-size:clamp(1.2rem,2vw,1.8rem);font-style:italic;line-height:1.05}.compact-project>a{font-family:var(--font-mono), monospace;letter-spacing:.12em;font-size:.72rem;font-weight:600}.transition-collage{z-index:4;pointer-events:none;height:clamp(460px,48vw,650px);margin-top:clamp(5rem,10vw,9rem);margin-bottom:clamp(-230px,-16vw,-150px);position:relative}.transition-checker{clip-path:polygon(3% 6%,96% 0,100% 92%,12% 100%,0 72%);background:url(/images/red-checker.webp) 50%/cover;width:58%;height:75%;position:absolute;top:5%;left:-6%;transform:rotate(-3deg)}.transition-photo{border:12px solid var(--paper);background:var(--paper);width:min(58vw,760px);height:92%;position:absolute;top:0;left:27%;overflow:hidden;transform:rotate(2.5deg);box-shadow:16px 18px #111313e6}.transition-photo img{object-fit:cover}.bridge-tape{background:#cbc7badb;top:-4px;left:50%;transform:translate(-50%)rotate(-4deg)}.transition-eye{z-index:3;aspect-ratio:1;filter:drop-shadow(9px 10px #111313d9);width:clamp(110px,15vw,190px);position:absolute;bottom:2%;right:1%;transform:rotate(9deg)}.transition-eye img{object-fit:contain}.about{border-block:2px solid var(--ink);background:var(--red);color:var(--paper);position:relative;overflow:hidden}.about:after{aspect-ratio:1;content:"";border:1px solid #f1ede359;border-radius:50%;width:34vw;position:absolute;bottom:-12vw;right:-7vw;box-shadow:0 0 0 3vw #f1ede314,0 0 0 8vw #f1ede30f}.about-inner{z-index:1;padding:clamp(15rem,22vw,22rem) 0 clamp(7rem,13vw,12rem);position:relative}.about h2{white-space:nowrap;grid-template-columns:auto minmax(80px,.3fr) auto;align-items:center;margin-top:clamp(2.5rem,5vw,5rem);font-size:clamp(5rem,14vw,13rem);display:grid}.about h2 span{color:var(--ink);font-family:var(--font-editorial), serif;text-align:center;font-size:.45em;transform:rotate(-6deg)}.about-copy{border-top:1px solid #f1ede380;grid-template-columns:minmax(280px,.55fr) auto;justify-content:space-between;align-items:end;gap:3rem;margin-top:clamp(3rem,6vw,6rem);padding-top:1rem;display:grid}.about-copy p{max-width:620px;font-family:var(--font-editorial), serif;margin:0;font-size:clamp(1.6rem,3vw,3rem);font-style:italic;line-height:1.05}footer{background:var(--ink);color:var(--paper)}footer h2{max-width:1200px;margin-top:clamp(2rem,4vw,4rem);font-size:clamp(5rem,12vw,11rem)}.footer-links{font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid #f1ede352;gap:clamp(18px,4vw,54px);margin-top:clamp(4rem,8vw,8rem);padding-top:1rem;font-size:clamp(.68rem,.9vw,.82rem);display:flex}.footer-links a:hover,.footer-links a:focus-visible{color:var(--red)}.footer-meta{justify-content:flex-start;align-items:center;gap:2rem;margin-top:7rem;display:flex}.copyright{color:#f1ede38f;margin:0}@media (max-width:980px){.section-head{grid-template-columns:1fr 1fr}.section-head h2{grid-area:2/1/auto/-1}.section-head>p:last-child{justify-self:end}.featured-project{grid-template-columns:1fr}.project-visual{border-right:0;border-bottom:2px solid var(--ink);min-height:580px}.project-copy{min-height:440px}.compact-project{grid-template-columns:1fr auto}.compact-project>p{grid-column:1}.compact-project>a{grid-area:1/2/span 2}}@media (max-width:1024px) and (pointer:coarse){.scroll-hero{height:300svh}}@media (max-width:720px){.hero,.projects,.about-inner,.footer-inner{width:min(calc(100% - 28px), var(--page))}.scroll-hero{height:260svh}.scroll-hero-video,.scroll-hero-frame:before{object-position:32% center;background-position:32%}.scroll-hero-frame{transform-origin:50% 52%}.scroll-hero-frame-tag{font-size:.56rem;top:12px;left:12px}.hero{min-height:100svh;padding:0}.hero-intro{max-width:78vw;margin:0;font-size:clamp(3.4rem,15vw,5rem)}.tool-marquee-set{gap:3.25rem}.section-head{grid-template-columns:1fr}.section-head h2{grid-area:auto}.section-head>p:last-child{justify-self:start}.project-visual{min-height:430px}.project-copy{min-height:390px}.project-copy h3{font-size:clamp(5.2rem,25vw,8rem)}.compact-project{grid-template-columns:1fr}.compact-project>p,.compact-project>a{grid-area:auto}.transition-collage{height:430px;margin-top:5rem;margin-bottom:-110px}.transition-checker{width:82%;height:70%;top:12%;left:-18%}.transition-photo{border-width:8px;width:83vw;height:80%;left:10%;box-shadow:10px 12px #111313e6}.transition-eye{bottom:2%;right:-4%}.about-inner{padding-top:11rem}.about h2{grid-template-columns:1fr;font-size:clamp(5.2rem,27vw,8rem);line-height:.76}.about h2 span{font-size:4rem;position:absolute;top:48%;right:2%}.about-copy{grid-template-columns:1fr}.footer-links{flex-direction:column;align-items:flex-start}.footer-meta{flex-direction:column-reverse;align-items:flex-start;margin-top:5rem}}.work-history,.kvasir-section,.project-grid-section,.footer-inner{width:min(calc(100% - 48px), var(--page));margin-inline:auto}#gecmis,#kvasir,#projeler,#iletisim,#cv{scroll-margin-top:7rem}.work-history{padding:clamp(8rem,14vw,13rem) 0 clamp(7rem,12vw,11rem);position:relative}.work-history:before{z-index:-1;aspect-ratio:.7;clip-path:polygon(7% 4%,100% 0,91% 96%,3% 100%);content:"";opacity:.12;background:url(/images/red-checker.webp) 50%/cover;width:clamp(210px,29vw,430px);position:absolute;top:9%;right:-12vw;transform:rotate(7deg)}.work-history-heading{margin-bottom:clamp(4rem,8vw,8rem)}.work-history-heading h2,.project-grid-heading h2{font-family:var(--font-display), sans-serif;letter-spacing:-.035em;text-transform:uppercase;margin:0;font-size:clamp(5rem,12vw,11.5rem);font-weight:400;line-height:.75}.work-history-heading h2{color:var(--red);line-height:.92}.work-timeline{margin-left:clamp(16px,3vw,44px);padding-left:clamp(30px,5vw,74px);position:relative}.work-timeline:before{background:linear-gradient(to bottom, var(--ink) 0%, var(--navy) 28%, var(--red) 50%, var(--navy) 72%, var(--ink) 100%);content:"";background-size:100% 260%;border-radius:99px;width:2px;animation:4.8s ease-in-out infinite alternate timeline-flow;position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 18px #c51d1d38}.work-entry{--card:#e4dfcfe6;--card-ink:var(--ink);border:2px solid var(--ink);background:var(--card);min-height:250px;color:var(--card-ink);cursor:pointer;isolation:isolate;grid-template-columns:clamp(120px,15vw,190px) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,72px);padding:clamp(2rem,4vw,3.5rem);transition:box-shadow .18s,filter .18s;display:grid;position:relative;box-shadow:10px 11px #111313f0}.work-entry-ghost{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.work-entry-ghost>span{aspect-ratio:1;filter:blur(2px)saturate(1.1);opacity:.2;background:50%/cover no-repeat;border-radius:22%;width:min(46%,460px);transition:opacity .26s,transform .42s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;right:-6%;transform:translateY(-50%)rotate(-8deg);-webkit-mask-image:linear-gradient(90deg,#0000,#000 45%);mask-image:linear-gradient(90deg,#0000,#000 45%)}.work-entry:hover .work-entry-ghost>span{opacity:.3;transform:translateY(-50%)rotate(-4deg)scale(1.04)}.work-entry-span{pointer-events:none;justify-items:center;line-height:1;display:grid;position:absolute;top:50%;right:clamp(1.4rem,4.5vw,4rem);transform:translateY(-50%)}.work-entry-span strong{font:400 clamp(4.2rem, 9vw, 8.4rem)/.82 var(--font-display), sans-serif;letter-spacing:-.03em;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.6px currentColor;transition:-webkit-text-fill-color .26s}.work-entry-span small{font:600 .72rem var(--font-mono), monospace;letter-spacing:.32em;text-transform:uppercase;margin-top:.5rem}.work-entry:hover .work-entry-span strong{-webkit-text-fill-color:currentColor}.work-entry+.work-entry{margin-top:clamp(2.2rem,5vw,4.5rem)}.work-entry:nth-child(2){transform:rotate(-.45deg)}.work-entry:nth-child(3){transform:rotate(.35deg)}.work-entry:hover{filter:saturate(1.05)brightness(1.025);box-shadow:14px 15px #111313f0}.work-entry:has(.work-entry-hit:focus-visible){outline:4px solid var(--paper);outline-offset:4px}.timeline-node{border:2px solid var(--ink);background:var(--navy);width:16px;height:16px;box-shadow:0 0 0 5px var(--paper), 0 0 0 6px #1113133d;border-radius:50%;transition:background .18s,box-shadow .18s,transform .18s;position:absolute;top:50%;left:calc(-1*clamp(30px,5vw,74px) - 7px);transform:translateY(-50%)}.work-entry:hover .timeline-node{background:var(--red);box-shadow:0 0 0 5px var(--paper), 0 0 22px #c51d1d80;transform:translateY(-50%)scale(1.18)}.brand-slot{aspect-ratio:1;background:#fff;border:2px solid;place-items:center;display:grid;overflow:hidden}.brand-slot img{object-fit:cover;width:100%;height:100%}.brand-slot img.brand-logo--dream{transform:scale(1.06)}.brand-slot span,.work-entry-copy>span,.history-modal-period{font-family:var(--font-mono), monospace;letter-spacing:.12em;font-size:clamp(.62rem,.75vw,.74rem);font-weight:600}.work-entry-copy h3{font-family:var(--font-display), sans-serif;letter-spacing:-.025em;margin:0;font-size:clamp(2.7rem,5vw,5.2rem);font-weight:400;line-height:.98}.work-entry-copy>span{margin-bottom:clamp(1.2rem,2vw,1.8rem);display:block}.work-entry:nth-child(3) .work-entry-copy h3{font-size:clamp(2.15rem,3.9vw,4.1rem)}.work-entry-copy h4{font-family:var(--font-mono), monospace;letter-spacing:.08em;margin:.8rem 0 0;font-size:clamp(.72rem,1vw,.9rem);font-weight:600}.work-entry-copy p{max-width:540px;font-family:var(--font-editorial), serif;margin:1.2rem 0 0;font-size:clamp(1.08rem,1.7vw,1.45rem);font-style:italic;line-height:1.12}.work-entry-hit{z-index:3;cursor:pointer;background:0 0;border:0;width:100%;padding:0;position:absolute;inset:0}.history-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(18px)saturate(.7);backdrop-filter:blur(18px)saturate(.7);background:#0b2c614d;justify-content:center;align-items:center;padding:1.5rem;animation:.18s ease-out both backdrop-in;display:flex;position:fixed;inset:0;overflow-y:auto}.history-modal{--brand:var(--red);border:3px solid var(--brand);background-color:color-mix(in srgb, var(--brand) 14%, var(--paper));background-blend-mode:multiply;width:min(760px,100%);max-height:calc(100dvh - 3rem);box-shadow:18px 20px 0 var(--ink);background-image:url(/images/crumpled-paper.webp);background-position:50%;background-size:cover;margin:auto;padding:clamp(2rem,6vw,5.5rem);animation:.22s cubic-bezier(.2,.8,.2,1) both modal-in;position:relative;overflow:hidden auto}.history-modal:before{background:var(--brand);content:"";height:12px;position:absolute;top:0;left:0;right:0}.history-modal-close{border:2px solid var(--ink);background:var(--brand);width:44px;height:44px;color:var(--paper);cursor:pointer;place-items:center;padding:0;display:grid;position:absolute;top:1rem;right:1rem}.history-modal-brand{width:92px;margin-bottom:2rem}.history-modal h2{overflow-wrap:anywhere;font-family:var(--font-display), sans-serif;margin:.8rem 0 0;font-size:clamp(3.4rem,8vw,7rem);font-weight:400;line-height:.94}.history-modal h3{color:var(--brand);font-family:var(--font-mono), monospace;letter-spacing:.1em;margin:1rem 0 2.5rem;font-size:.85rem}.history-modal p{max-width:580px;font-family:var(--font-editorial), serif;margin:.8rem 0;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.15}.kvasir-section{width:min(calc(100% - 48px), var(--page));--kvasir-gap:clamp(20px, 2.6vw, 34px);gap:var(--kvasir-gap);border:2px solid var(--ink);background:var(--cream);box-shadow:15px 17px 0 var(--ink);margin-bottom:clamp(8rem,15vw,14rem);padding:clamp(24px,3.2vw,44px) 0 clamp(18px,2.4vw,30px);display:grid;position:relative}.kvasir-head{--lounger-w:clamp(380px, 44vw, 640px);z-index:2;justify-items:start;gap:clamp(12px,1.4vw,18px);margin:0 clamp(20px,3.2vw,44px);display:grid;position:relative}.kvasir-lounger{right:-6px;bottom:calc(-1 * (var(--kvasir-gap) + 6px) - var(--lounger-w) * .1013);width:var(--lounger-w);filter:drop-shadow(0 12px 14px #11131333);pointer-events:none;height:auto;position:absolute}.kvasir-logo{width:clamp(170px,20vw,280px);margin:0;line-height:0}.kvasir-lede{max-width:min(44ch, calc(100% - var(--lounger-w) + 24px));color:#111313c7;font:500 clamp(.98rem, 1.35vw, 1.2rem)/1.45 var(--font-kvasir), "Montserrat", sans-serif;letter-spacing:-.005em;margin:0}.kvasir-wordmark{aspect-ratio:1134/262;background:var(--ink);width:100%;display:block;-webkit-mask:url(/images/kvasir-logo-white.webp) 50%/contain no-repeat;mask:url(/images/kvasir-logo-white.webp) 50%/contain no-repeat}.kvasir-row{--tile-h:clamp(380px, 36vw, 500px);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;gap:clamp(14px,1.4vw,20px);margin:0;padding:6px clamp(20px,3.2vw,44px) 14px;scroll-padding-inline:clamp(20px,3.2vw,44px);list-style:none;display:flex;overflow-x:auto}.kvasir-row::-webkit-scrollbar{display:none}.kvasir-poster{height:var(--tile-h);aspect-ratio:9/16;background:var(--navy);scroll-snap-align:start;border-radius:16px;flex:none;position:relative;overflow:hidden;box-shadow:0 1px 2px #1113131f,0 10px 26px #11131329}.kvasir-poster video{object-fit:cover;object-position:center 25%;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.kvasir-poster:hover video{transform:scale(1.04)}.kvasir-post{width:clamp(250px,22.5vw,316px);height:var(--tile-h);scroll-snap-align:start;flex:none}.kvasir-post>a{background:#fff;border-radius:16px;flex-direction:column;height:100%;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;display:flex;overflow:hidden;box-shadow:0 1px 2px #1113131f,0 10px 26px #11131324}.kvasir-post>a:hover{transform:translateY(-4px);box-shadow:0 2px 4px #11131324,0 18px 38px #11131333}.kx{color:#0f1419;padding:12px 14px 2px;font:400 14.5px/19px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.kx-head{align-items:center;gap:10px;display:flex}.kx-avatar{border-radius:50%;flex:none}.kx-who{flex:1;min-width:0;line-height:18px;display:grid}.kx-who strong{font-weight:700}.kx-who span{color:#536471;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kx-logo{fill:#0f1419;flex:none;width:18px;height:18px}.kx-text{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:8px 0;display:-webkit-box;overflow:hidden}.kx-more{color:#1d9bf0;margin:-4px 0 8px}.kx-media{object-fit:cover;background:#0f1419;border-radius:14px;flex:1 1 0;width:100%;min-height:0;display:block;position:relative;overflow:hidden}.kx-media img{object-fit:cover}.kx-stats{color:#536471;justify-content:space-between;font-size:12.5px;display:flex}.kx-stat{align-items:center;gap:4px;min-height:34px;display:inline-flex}.kx-stat svg{fill:currentColor;width:17px;height:17px}.ki{color:#000;font:400 13.5px/18px -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.ki-head{align-items:center;gap:9px;padding:10px 12px;display:flex}.ki-head strong{font-weight:600}.ki-ring{background:conic-gradient(from 200deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5,#feda75);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;padding:2px;display:grid}.ki-ring img{object-fit:cover;border:2px solid #fff;border-radius:50%;width:30px;height:30px}.ki-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;flex:none;width:22px;height:22px}.ki-icon--more{width:20px;margin-left:auto}.ki-media{background:#111;flex:1 1 0;min-height:0;display:block;position:relative;overflow:hidden}.ki-media img{object-fit:cover}.ki-media .ki-icon--reels{color:#fff;filter:drop-shadow(0 1px 3px #00000073);position:absolute;top:10px;right:10px}.ki-play{background:#00000061;border-radius:50%;place-items:center;width:54px;height:54px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ki-play svg{fill:#fff;width:26px;height:26px}.ki-foot{gap:4px;padding:8px 12px 12px;display:grid}.ki-actions{align-items:center;gap:14px;display:flex}.ki-actions>span{flex:1}.ki-likes{font-weight:600}.ki-caption{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ki-caption strong{font-weight:600}.kvasir-poster-hit{z-index:2;cursor:pointer;background:0 0;border:0;width:100%;padding:0;position:absolute;inset:0}.kvasir-poster:has(.kvasir-poster-hit:focus-visible){outline:4px solid var(--red);outline-offset:3px}.project-grid-section{content-visibility:auto;contain-intrinsic-size:auto 1100px;padding:clamp(5rem,10vw,9rem) 0 clamp(1.5rem,3vw,3rem)}.project-grid-heading{grid-template-columns:1fr auto;align-items:end;gap:2rem;margin-bottom:clamp(3rem,7vw,6rem);display:grid}.project-grid-heading h2{color:var(--navy)}.project-grid{gap:clamp(1rem,2.2vw,1.8rem);display:grid}.project-card{border:2px solid var(--ink);color:#f6f3ea;min-height:clamp(200px,20vw,270px);box-shadow:10px 11px 0 var(--ink);isolation:isolate;border-radius:clamp(16px,2vw,26px);grid-template-columns:clamp(120px,15vw,210px) minmax(0,1fr);align-items:center;gap:clamp(1.4rem,4vw,3.6rem);padding:clamp(1.2rem,2.8vw,2.6rem) clamp(1.4rem,4vw,3.6rem);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;display:grid;position:relative;overflow:hidden}.project-card:hover{box-shadow:14px 15px 0 var(--ink);transform:translate(-3px,-3px)}.project-card-bg{z-index:-1;background:#0b0d10;position:absolute;inset:0}.project-card-bg i{background:var(--art) 22% 50% / 58% auto no-repeat;filter:blur(26px)saturate(1.5);opacity:.9;transform-origin:18%;transition:transform .9s cubic-bezier(.2,.8,.2,1);position:absolute;inset:-30% -10%}.project-card-bg i:nth-child(2){opacity:.45;filter:blur(34px)saturate(1.5);transform:scale(1.5)}.project-card-bg i:nth-child(3){opacity:.25;filter:blur(44px)saturate(1.6);transform:scale(2.3)}.project-card-bg:after{content:"";background:linear-gradient(90deg,#080a0c59,#080a0cb8 45%,#080a0cdb);position:absolute;inset:0}.project-card:hover .project-card-bg i:first-child{transform:scale(1.12)}.project-card:hover .project-card-bg i:nth-child(2){transform:scale(1.7)}.project-card:hover .project-card-bg i:nth-child(3){transform:scale(2.6)}.project-card-art{aspect-ratio:1;background:#0b0d10;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 18px 40px #00000073,0 0 0 1px #ffffff14}.project-card-art img{object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.project-card:hover .project-card-art img{transform:scale(1.05)}.project-card-copy{gap:.7rem;min-width:0;display:grid}.project-card-copy h3{font-family:var(--font-display), sans-serif;letter-spacing:-.025em;margin:0;font-size:clamp(3rem,7.4vw,7.4rem);font-weight:400;line-height:.88}.project-card-copy p{color:#f6f3eac7;max-width:46ch;font-family:var(--font-editorial), serif;margin:0;font-size:clamp(1.05rem,1.5vw,1.3rem);font-style:italic}.portfolio-blog-empty{color:var(--ink);font:italic 400 1.1rem var(--font-editorial), Georgia, serif;opacity:.6;margin:1.5rem 0 0}.blog-section{width:min(calc(100% - 48px), var(--page));margin:0 auto;padding:clamp(5rem,10vw,9rem) 0 clamp(3rem,5vw,5rem)}.blog-heading{justify-content:space-between;align-items:baseline;gap:2rem;margin-bottom:clamp(2.5rem,6vw,5rem);display:flex}.blog-heading h2{color:var(--red);font-family:var(--font-display), sans-serif;letter-spacing:-.035em;margin:0;font-size:clamp(5rem,12vw,11.5rem);font-weight:400;line-height:.75}.blog-heading>span{color:var(--ink);font-family:var(--font-mono), monospace;letter-spacing:.13em;font-size:.66rem;font-weight:600}.blog-feed{gap:1.4rem;display:grid}.blog-post{border:1px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:9px 10px 0 var(--ink);position:relative;overflow:hidden}.blog-post-head{align-items:center;gap:.75rem;padding:1.05rem 1.25rem;display:flex}.blog-author-mark{width:40px;height:40px;color:var(--paper);background:currentColor;border:2px solid;border-radius:50%;place-items:center;display:grid;position:relative;overflow:hidden}.blog-author-mark img{object-fit:cover}.blog-post-head>div:nth-child(2){gap:.15rem;display:grid}.blog-post-head strong{font-family:var(--font-mono), monospace;letter-spacing:.04em;font-size:.76rem}.blog-post-head span{font-family:var(--font-mono), monospace;opacity:.62;letter-spacing:.08em;font-size:.62rem}.blog-post-more{color:currentColor;cursor:pointer;background:0 0;border:0;place-items:center;width:34px;height:34px;margin-left:auto;padding:0;display:grid}.blog-post-more svg{fill:currentColor;width:22px;height:22px}.blog-post-body{grid-template-columns:minmax(0,1fr) minmax(280px,.92fr);min-height:260px;display:grid}.blog-post-copy{flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3rem);display:flex}.blog-post-copy h3{max-width:680px;font-family:var(--font-display), sans-serif;letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(2.4rem,5vw,5.8rem);font-weight:400;line-height:.92}.blog-post-copy p{max-width:480px;font-family:var(--font-editorial), serif;margin:1.35rem 0 0;font-size:clamp(1.05rem,1.5vw,1.35rem);font-style:italic;line-height:1.25}.blog-post-media{background:var(--ink);min-height:260px;position:relative;overflow:hidden}.blog-post-media:before{content:"";opacity:.38;mix-blend-mode:screen;background:url(/images/paper-texture.webp) 50%/cover;position:absolute;inset:-20%}.blog-post-media:after{content:"";border:2px solid;position:absolute;inset:17% 11%;transform:rotate(-7deg)}.blog-post-media span{border:2px solid;display:block;position:absolute}.blog-post-media span:first-child{aspect-ratio:1;width:36%;top:14%;left:16%;transform:rotate(17deg)}.blog-post-media span:nth-child(2){mix-blend-mode:screen;background:url(/images/red-checker.webp) 50%/cover;width:44%;height:34%;bottom:15%;right:12%;transform:rotate(8deg)}.blog-post-media span:last-child{aspect-ratio:1;mix-blend-mode:difference;background:currentColor;border-radius:50%;width:30%;top:42%;left:35%}.blog-post--red{color:var(--paper);background:#c51d1d}.blog-post--red .blog-post-media{background:#7f1717}.blog-post--navy{background:var(--navy);color:var(--paper)}.blog-post--navy .blog-post-media{background:#071c42}.blog-post--paper{background:var(--paper);color:var(--ink)}.blog-post--paper .blog-post-media{background:#bfb8aa}.blog-post--purple{color:var(--paper);background:#302044}.blog-post--purple .blog-post-media{background:#1d122e}.blog-post-actions{align-items:center;gap:1.3rem;padding:.7rem 1.25rem;display:flex}.blog-post-actions button{color:currentColor;font-family:var(--font-mono), monospace;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-size:.7rem;display:inline-flex}.blog-post-actions button:hover,.blog-post-actions button.is-liked{color:var(--red)}.blog-post-actions svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.blog-post-actions button.is-liked svg{fill:currentColor}.blog-more{border:2px solid var(--ink);background:var(--paper);width:52px;height:42px;color:var(--ink);letter-spacing:0;cursor:pointer;justify-content:center;align-items:center;margin:2rem auto 0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:1rem;font-weight:700;transition:color .16s,background .16s,transform .16s;display:flex}.blog-more span{display:block;transform:translate(1px)}.blog-more:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px)}.portfolio-modal-backdrop{z-index:130;-webkit-backdrop-filter:blur(16px)saturate(.72);backdrop-filter:blur(16px)saturate(.72);background:#11131394;place-items:center;padding:1.5rem;animation:.18s ease-out both backdrop-in;display:grid;position:fixed;inset:0}.portfolio-modal{border:2px solid var(--ink);background:var(--paper) url(/images/crumpled-paper.webp) center / cover;width:min(520px,100%);min-height:230px;box-shadow:13px 15px 0 var(--navy);place-items:center;animation:.22s cubic-bezier(.2,.8,.2,1) both modal-in;display:grid}.portfolio-modal p{color:var(--ink);font-family:var(--font-display), Georgia, serif;margin:0;font-size:clamp(2rem,7vw,4rem);font-style:italic}.velaris{isolation:isolate;width:100%;position:relative;overflow:hidden}.velaris-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.velaris-content{z-index:2;width:100%;height:100%;position:relative}footer{--footer-descent:clamp(180px, 18vw, 280px);isolation:isolate;color:var(--paper);background:0 0;border-top:0;padding-top:0;position:relative}footer:before{z-index:0;height:calc(var(--footer-descent) + 1px);background:linear-gradient(to bottom, #11131300 0%, #11131300 14%, #1113130d 32%, #0b2c612e 52%, #11131394 76%, #111313e6 92%, var(--ink) 100%);content:none;pointer-events:none;position:absolute;top:0;left:0;right:0}.footer-velaris{z-index:1;background:var(--ink);min-height:100svh;padding-top:clamp(260px,36vw,520px);position:relative;-webkit-mask-image:linear-gradient(#0000 0,#00000008 5%,#00000035 13%,#0000008c 23%,#000000e6 32%,#000 40%);mask-image:linear-gradient(#0000 0,#00000008 5%,#00000035 13%,#0000008c 23%,#000000e6 32%,#000 40%)}.footer-velaris:after{z-index:1;content:"";pointer-events:none;background:linear-gradient(125deg,#11131373 0%,#1113131f 46%,#0b2c614d 100%);position:absolute;inset:0}.footer-inner{padding:clamp(7rem,12vw,11rem) 0 2.5rem}footer h2{max-width:1200px;font-family:var(--font-display), sans-serif;letter-spacing:-.025em;text-wrap:balance;text-transform:uppercase;margin:0;font-size:clamp(5rem,12vw,11rem);font-weight:400;line-height:.92}.footer-title-row{grid-template-columns:minmax(0,1fr) minmax(300px,.34fr);align-items:end;gap:clamp(2rem,6vw,7rem);display:grid}.footer-action-cards{align-self:end;position:relative}.cv-panel{width:100%;position:relative}.cv-open-button{--cv-ease:cubic-bezier(.22, 1, .36, 1);width:100%;min-height:170px;color:var(--ink);cursor:pointer;isolation:isolate;background:0 0;border:0;padding:0;display:block;position:relative}.cv-sheet,.cv-card{transform-origin:30% 80%;transition:transform .46s var(--cv-ease), box-shadow .46s var(--cv-ease), border-color .3s ease;border-radius:20px;position:absolute;inset:8px 12px}.cv-sheet{z-index:-1;background:linear-gradient(160deg,#f1ede312,#f1ede303);border:1px solid #f1ede31a;transform:translate(8px,4px)rotate(1.8deg)}.cv-card{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");transform:perspective(900px) rotate(-4deg) rotateX(var(--cv-rx,0deg)) rotateY(var(--cv-ry,0deg));overflow:hidden}.cv-card:before,.cv-card:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}.cv-card strong{font-family:var(--font-display), sans-serif;letter-spacing:-.01em;font-weight:400;line-height:.78;position:absolute}.cv-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(130% 120% at 15% 0,#e0302f,#a31418 55%,#5e0a0e);border:0;box-shadow:inset 0 1px #ffffff47,10px 14px 0 -2px #0000008c,0 30px 50px -18px #000c}.cv-card:before{background-image:var(--grain);mix-blend-mode:overlay;opacity:.3;background-size:160px}.cv-card:after{background:linear-gradient(120deg,#ffffff29,#0000 40%)}.cv-card strong{color:var(--paper);text-shadow:0 3px #5e0a0e80;font-size:clamp(5rem,7vw,7.4rem);bottom:clamp(1rem,1.8vw,1.4rem);left:clamp(1.3rem,2.4vw,1.9rem)}.cv-sheet{background:#d6282824;border-color:#d6282840}.cv-open-button:hover .cv-card,.cv-open-button:focus-visible .cv-card{transform:perspective(900px) translateY(-8px) scale(1.025) rotate(-2deg) rotateX(var(--cv-rx,0deg)) rotateY(var(--cv-ry,0deg));border-color:#f1ede352}.cv-open-button:hover .cv-sheet,.cv-open-button:focus-visible .cv-sheet{transform:translate(14px,2px)rotate(4deg)}.cv-open-button[data-tilting=true] .cv-card{transition:transform .12s ease-out, box-shadow .46s var(--cv-ease), border-color .3s ease}.cv-open-button:active .cv-card{transition-duration:.16s;transform:perspective(900px)translateY(-2px)scale(1)rotate(-3.4deg)}.cv-open-button:active .cv-sheet{transition-duration:.16s;transform:translate(9px,3px)rotate(2.6deg)}.cv-open-button:focus-visible{outline:none}.cv-open-button:focus-visible .cv-card{outline:2px solid var(--paper);outline-offset:4px}@media (prefers-reduced-motion:reduce){.cv-sheet,.cv-card{transition:none}}.portfolio-card{border:2px solid var(--paper);background:var(--navy);width:76%;min-height:170px;color:var(--paper);justify-content:flex-start;align-items:flex-end;padding:clamp(1.4rem,2.5vw,2.2rem);transition:box-shadow .16s,transform .16s;display:flex;position:absolute;bottom:0;right:0;transform:rotate(-1.4deg);box-shadow:7px 8px #f1ede3e6}.portfolio-card:hover{transform:translate(4px,4px)rotate(-1.4deg);box-shadow:3px 4px #f1ede3e6}.portfolio-card strong{min-width:0;font-family:var(--font-display), sans-serif;letter-spacing:-.025em;white-space:nowrap;font-size:clamp(1.85rem,2.6vw,3rem);font-weight:400;line-height:.8}.contact-area{margin-top:clamp(4rem,8vw,8rem)}.contact-email{align-items:flex-start;gap:1.5rem;width:fit-content;max-width:100%;display:flex}.contact-email strong{white-space:nowrap;font-family:var(--font-editorial), serif;letter-spacing:-.04em;font-size:clamp(2.3rem,6vw,6.8rem);font-style:italic;font-weight:400;line-height:.95}.contact-email{transition:color .25s}.contact-email>svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:clamp(28px,4vw,60px);height:clamp(28px,4vw,60px);margin-top:.15em;animation:3.8s ease-in-out infinite contact-arrow-drift}.contact-email:hover{color:#fff}.contact-email:hover>svg{animation-duration:1.4s}@keyframes contact-arrow-drift{0%,to{transform:translate(0)}50%{transform:translate(5px,-5px)}}.site-dust{z-index:4;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}:is(.site-shell,.work-page-motion) [data-reveal=waiting]{opacity:.12;translate:0 28px}:is(.site-shell,.work-page-motion) [data-reveal]{transition:opacity .76s cubic-bezier(.22,1,.36,1),translate .9s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s)}:is(.site-shell,.work-page-motion) [data-reveal=visible]{opacity:1;translate:0}.site-shell [data-reveal]{transition-duration:.9s,1.1s}.site-shell [data-reveal=waiting]{translate:0 42px}@media (prefers-reduced-motion:reduce){.site-dust{display:none}:is(.site-shell,.work-page-motion) [data-reveal]{opacity:1;transition:none;translate:none}.contact-email>svg{animation:none}}.social-icon-links{flex-wrap:wrap;gap:clamp(1.1rem,3vw,2.4rem);margin-top:clamp(2.5rem,5vw,4.5rem);display:flex}.social-icon-links a{width:66px;color:var(--paper);font-family:var(--font-mono), monospace;letter-spacing:.05em;justify-items:center;gap:.7rem;font-size:.58rem;transition:color .16s,transform .16s;display:grid;position:relative}.social-icon-links a:after{content:"";position:absolute;inset:0 0 -8px}.social-icon-links a:hover{color:var(--red);transform:translateY(-4px)}.social-icon-links svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:38px;height:38px}.social-icon-links a:first-child svg,.social-icon-links .social-icon--filled,.social-icon-links .social-icon-dot{fill:currentColor;stroke:none}html:has(.cv-modal-backdrop){scroll-behavior:auto}.cv-modal-backdrop{z-index:110;height:100dvh;padding:max(clamp(12px, 3vw, 44px), env(safe-area-inset-top)) max(clamp(12px, 3vw, 44px), env(safe-area-inset-right)) max(clamp(12px, 3vw, 44px), env(safe-area-inset-bottom)) max(clamp(12px, 3vw, 44px), env(safe-area-inset-left));overscroll-behavior:contain;-webkit-backdrop-filter:blur(6px)saturate(.78);cursor:zoom-out;background:#080a0ac7;justify-content:center;align-items:center;animation:.18s ease-out both backdrop-in;display:flex;position:fixed;inset:0;overflow:hidden}.cv-modal{--cv-bar:76px;--cv-page-w:clamp(360px, calc((min(920px, 92dvh) - var(--cv-bar) - 40px) * .7727), 780px);width:min(1180px,100%);height:min(920px,100%);min-height:0;color:var(--paper);cursor:default;outline:none;flex-direction:column;gap:10px;padding:0;animation:.22s cubic-bezier(.2,.8,.2,1) both modal-in;display:flex}.cv-paper{overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-color:#f1ede35c transparent;min-height:0;transform-style:preserve-3d;transform-origin:50%;background:#252727;border:1px solid #f1ede333;border-radius:14px;flex:auto;position:relative;overflow:auto;box-shadow:0 28px 90px #0000008c}.cv-paper[data-flip-phase=out]{will-change:transform, opacity;animation:.18s cubic-bezier(.4,0,.8,.2) both cv-paper-out}.cv-paper[data-flip-phase=in]{will-change:transform, opacity;animation:.24s cubic-bezier(.16,1,.3,1) both cv-paper-in}.cv-document-pages{width:max(100%, calc(var(--cv-page-w) * var(--cv-zoom,1) + 28px));align-content:start;justify-items:center;gap:14px;min-height:100%;padding:14px;display:grid}.cv-document-pages img{width:calc(var(--cv-page-w) * var(--cv-zoom,1));background:#fff;max-width:none;height:auto;transition:width .14s cubic-bezier(.22,1,.36,1);display:block;box-shadow:0 10px 28px #00000038}.cv-toolbar{background:var(--paper);max-width:100%;color:var(--ink);border-radius:28px;flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:2px;margin-inline:auto;padding:6px;display:flex;box-shadow:0 10px 34px #00000073,0 0 0 1px #1113131f}.cv-toolbar button,.cv-toolbar a{min-width:44px;height:44px;color:var(--ink);font-family:var(--font-mono), monospace;letter-spacing:.06em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:22px;place-items:center;margin:0;padding:0 .7rem;font-size:.7rem;font-weight:700;line-height:1;text-decoration:none;transition:background-color .16s,color .16s,transform .12s;display:inline-grid}.cv-toolbar button:hover,.cv-toolbar a:hover{background:#11131317}.cv-toolbar button:active,.cv-toolbar a:active{transform:scale(.94)}.cv-toolbar button:focus-visible,.cv-toolbar a:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.cv-toolbar button:disabled{color:#1113134d;cursor:not-allowed;background:0 0;transform:none}.cv-toolbar-divider{background:#11131333;flex-shrink:0;width:1px;height:24px;margin-inline:4px}.cv-language-toggle,.cv-zoom-controls{align-items:center;gap:2px;display:flex}.cv-language-toggle button{padding:0}.cv-language-toggle button[data-active=true]{background:var(--ink);color:var(--paper)}.cv-language-toggle button:disabled[data-active=true]{color:var(--paper)}.cv-language-toggle button:disabled{cursor:wait}.cv-zoom-controls button{letter-spacing:0;padding:0;font-size:1.15rem;font-weight:500}.cv-zoom-controls button:nth-child(2){letter-spacing:.02em;min-width:52px;font-size:.68rem;font-weight:700}.cv-toolbar .cv-close-button{background:var(--ink);color:var(--paper);padding:0}.cv-toolbar .cv-close-button:hover{background:var(--red)}.cv-toolbar .cv-close-button:focus-visible{outline-offset:2px}@keyframes cv-paper-out{0%{opacity:1;transform:perspective(2400px)rotateY(0)scale(1)}to{opacity:.42;transform:perspective(2400px)rotateY(72deg)scale(.996)}}@keyframes cv-paper-in{0%{opacity:.42;transform:perspective(2400px)rotateY(-72deg)scale(.996)}to{opacity:1;transform:perspective(2400px)rotateY(0)scale(1)}}.cv-empty-state{border:2px dashed var(--ink);text-align:center;place-content:center;justify-items:center;min-height:620px;padding:2rem;display:grid}.cv-empty-state>span{font-family:var(--font-mono), monospace;letter-spacing:.15em;font-size:.7rem}.cv-empty-state strong{color:var(--red);font-family:var(--font-display), sans-serif;margin-top:1rem;font-size:clamp(3.5rem,9vw,7.5rem);font-weight:400;line-height:.8}.cv-empty-state p{font-family:var(--font-editorial), serif;margin:1.5rem 0 0;font-size:1.2rem;font-style:italic}.chat-widget{z-index:80;right:clamp(1rem,3vw,2.5rem);bottom:calc(clamp(1rem, 3vw, 2.5rem) + var(--chat-kb-inset,0px));position:fixed}.chat-widget-trigger{border:2px solid var(--ink);background:var(--red);width:62px;height:62px;color:var(--paper);box-shadow:5px 6px 0 var(--ink);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:transform .16s,box-shadow .16s;display:grid}.chat-widget-trigger:hover{box-shadow:2px 3px 0 var(--ink);transform:translate(3px,3px)}.chat-widget-trigger{position:relative}.chat-widget-trigger:after{content:"";border-radius:50%;position:absolute;inset:-10px 0 0 -10px}.chat-widget-trigger .chat-creature{width:48px;height:40px;overflow:visible}.chat-creature-face{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite creature-bob}.chat-creature-brows{fill:none;stroke:var(--paper);stroke-width:2.15px;stroke-linecap:round;stroke-linejoin:round}.chat-creature-brow-left,.chat-creature-brow-right{transform-box:fill-box;transform-origin:50%;animation:3.4s ease-in-out infinite creature-brow}.chat-creature-brow-right{animation-direction:reverse}.chat-creature-eyes{transform-box:fill-box;transform-origin:50%;animation:3.4s ease-in-out infinite creature-look}.chat-widget-trigger[data-tracking=true] .chat-creature-eyes{animation:none}.chat-creature-blink{transform-box:fill-box;transform-origin:50%;animation:4.2s ease-in-out infinite creature-blink}.chat-creature-pupils{transform:translate(var(--pupil-x,0), var(--pupil-y,0));transition:transform 90ms ease-out}.chat-creature-eye-shell{fill:var(--paper)}.chat-creature-eye-lid{fill:none;stroke:var(--red);stroke-width:1.15px;stroke-linecap:round}.chat-creature-pupil{fill:var(--ink)}.chat-creature-glint{fill:var(--paper)}.chat-widget-panel{width:min(440px,100vw - 2rem);height:min(540px, calc(var(--chat-vv-height,100dvh) - 112px));min-height:370px;color:var(--paper);opacity:0;pointer-events:none;transform-origin:100% 100%;visibility:hidden;background:0 0;border:0;padding:0;transition:opacity .2s,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s linear .26s;position:absolute;bottom:calc(100% + 1rem);right:0;transform:translateY(14px)scale(.965)}.chat-widget-panel[data-open=true]{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)scale(1)}.chat-panel-shell{background:#101212;border:1px solid #f1ede324;border-radius:32px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000052}.chat-version{color:#f1ede380;text-align:center;flex:none;padding:0 20px 9px;font-family:Arial,sans-serif;font-size:9px;line-height:1}.chat-panel-shell[data-theme=light] .chat-version{color:#11131380}.chat-panel-header{color:#f1ede38a;justify-content:flex-end;align-items:center;min-height:50px;padding:10px 13px 6px;display:flex}.chat-panel-header>button{color:#f1ede38c;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;width:34px;height:34px;padding:0;transition:color .18s,background .18s,transform .18s cubic-bezier(.22,1,.36,1);display:grid}.chat-panel-header>button:hover{color:var(--paper);background:#f1ede312;transform:scale(1.04)}.chat-panel-header>button svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.chat-thread{overscroll-behavior:contain;scrollbar-color:#f1ede32e transparent;scrollbar-width:thin;flex-direction:column;flex:auto;gap:18px;min-height:0;padding:18px 20px 24px;display:flex;overflow-y:auto}.chat-message{align-items:flex-start;gap:10px;max-width:88%;animation:.28s cubic-bezier(.22,1,.36,1) both chat-message-in;display:flex}.chat-message p{color:#f1ede3e6;margin:0;font:400 .92rem/1.55 Arial,Helvetica,sans-serif}.chat-message--assistant{max-width:100%;padding-inline:3px}.chat-message--assistant p{max-width:94%}.chat-message--assistant{flex-direction:column}.chat-message[data-error] p{color:#ffaaaad9}.chat-nudge{color:#e6ffb0;letter-spacing:-.01em;background:linear-gradient(160deg,#d8ff862e,#d8ff860f);border:1px solid #d8ff8659;border-radius:999px;align-items:center;gap:8px;margin-top:8px;padding:9px 14px 9px 16px;font:500 .82rem/1 Arial,Helvetica,sans-serif;text-decoration:none;transition:transform .24s cubic-bezier(.2,.8,.2,1),border-color .18s,background .18s;animation:.62s cubic-bezier(.2,.9,.3,1.1) .4s both chat-nudge-in;display:inline-flex;box-shadow:inset 0 1px #ffffff2e}.chat-nudge:hover{background:linear-gradient(160deg,#d8ff8642,#d8ff861a);border-color:#d8ff86b3;transform:translateY(-1px)}@keyframes chat-nudge-in{0%{opacity:0;filter:blur(6px);translate:0 6px}}.chat-panel-shell[data-theme=light] .chat-nudge{color:#2c4a12}.chat-commands{z-index:3;-webkit-backdrop-filter:blur(18px);background:#0e120ff0;border-radius:16px;padding:6px;animation:.22s cubic-bezier(.2,.8,.2,1) both chat-nudge-in;display:grid;position:absolute;bottom:calc(100% - 4px);left:14px;right:14px;box-shadow:0 18px 50px #00000073,inset 0 1px #ffffff1a}.chat-commands button{color:#f1ede3e6;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;min-height:36px;padding:0 12px;font:500 .84rem/1 Arial,Helvetica,sans-serif;display:flex}.chat-commands button span{color:#e6ffb0;min-width:56px;font-family:var(--font-mono), monospace;font-size:.78rem}.chat-commands button small{color:#f1ede38c;font-size:.78rem}.chat-commands button[aria-selected=true]{background:#ffffff14}.chat-panel-shell[data-theme=light] .chat-commands{background:#f5f3ecf5}.chat-panel-shell[data-theme=light] .chat-commands button{color:#111313e0}.chat-panel-shell[data-theme=light] .chat-commands button span{color:#2c4a12}.chat-panel-shell[data-theme=light] .chat-commands button small{color:#11131380}.chat-panel-shell[data-theme=light] .chat-commands button[aria-selected=true]{background:#1113130f}.chat-mentions{gap:2px;display:grid}.chat-mention{color:#f1ede3eb;letter-spacing:-.01em;align-items:center;gap:9px;padding:4px 0;font:500 .92rem/1 Arial,Helvetica,sans-serif;text-decoration:none;animation:.52s cubic-bezier(.2,.9,.3,1.1) both chat-nudge-in;display:inline-flex}.chat-brand{color:#f1ede3d9;background:#ffffff14;border-radius:50%;width:28px;height:28px;padding:6px;transition:background .2s,color .2s,transform .26s cubic-bezier(.2,.8,.2,1);box-shadow:inset 0 1px #ffffff24}.chat-mention[data-brand=instagram]:hover .chat-brand{color:#fff;background:linear-gradient(135deg,#f9ce34,#ee2a7b 55%,#6228d7)}.chat-mention[data-brand=github]:hover .chat-brand{color:#111;background:#f5f5ef}.chat-mention[data-brand=linkedin]:hover .chat-brand{color:#fff;background:#0a66c2}.chat-mention[data-brand=cv]:hover .chat-brand{color:#11150e;background:#d8ff86}.chat-mention:hover .chat-brand{transform:scale(1.06)}.chat-mention-handle{position:relative}.chat-mention-handle:after{content:"";opacity:.35;transform-origin:0;background:currentColor;height:1px;transition:transform .26s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.chat-mention:hover .chat-mention-handle:after{transform:scaleX(1)}.chat-panel-shell[data-theme=light] .chat-mention{color:#111313e6}.chat-panel-shell[data-theme=light] .chat-brand{color:#111313cc;background:#11131312}.site-curtain{--cx:50vw;--cy:50vh;z-index:1000;clip-path:circle(0px at var(--cx) var(--cy));pointer-events:auto;place-items:center;animation:.26s cubic-bezier(.2,.75,.2,1) forwards site-curtain-grow;display:grid;position:fixed;inset:0;overflow:hidden}@keyframes site-curtain-grow{to{clip-path:circle(160vmax at var(--cx) var(--cy))}}.site-curtain-copy{opacity:0;justify-items:center;gap:14px;animation:.2s cubic-bezier(.2,.8,.2,1) 80ms forwards site-curtain-copy;display:grid;position:relative;transform:translateY(10px)}@keyframes site-curtain-copy{to{opacity:1;transform:none}}.site-curtain-copy strong{font:400 clamp(64px, 12vw, 168px)/.84 var(--font-display), Impact, sans-serif;letter-spacing:-.035em;text-transform:uppercase}.site-curtain-copy small{font:600 11px var(--font-mono), monospace;letter-spacing:.2em}.site-curtain--portfolio{color:#111313;background:#f1ede3 url(/images/paper-texture.webp) 50%/cover}.site-curtain--portfolio:after{content:"";background:url(/images/red-checker.webp) 0/auto 100% repeat-x;border-top:2px solid #111313;height:26px;position:absolute;bottom:0;left:0;right:0}.site-curtain--portfolio .site-curtain-copy{color:#f1ede3;background:#c51d1d;border:2px solid #111313;padding:clamp(18px,3vw,34px) clamp(26px,5vw,64px) clamp(16px,2.6vw,28px);rotate:-2deg;box-shadow:12px 14px #0b2c61}.site-curtain--portfolio .site-curtain-copy small{color:#f1ede3;opacity:.82}.site-curtain-tape{background:#f1ede3c7;width:120px;height:32px;position:absolute;top:-17px;left:50%;transform:translate(-50%)rotate(3deg);box-shadow:0 1px #1113131f}.site-curtain--blog{color:#d8ff86;background:radial-gradient(60% 50% at 22% 30%,#7ea45c57,#0000 70%),radial-gradient(50% 60% at 82% 76%,#31543a8c,#0000 72%),radial-gradient(circle,#0d2418,#060a07 70%)}.site-curtain--blog:before{content:"";opacity:.16;-webkit-mask-image:radial-gradient(circle at var(--cx) var(--cy), #000, transparent 70%);mask-image:radial-gradient(circle at var(--cx) var(--cy), #000, transparent 70%);-webkit-mask-image:radial-gradient(circle at var(--cx) var(--cy), #000, transparent 70%);background:radial-gradient(circle,#d8ff868c 0 1px,#0000 1.5px) 0 0/9px 9px;position:absolute;inset:0}.site-curtain--blog .site-curtain-copy strong{text-transform:lowercase;text-shadow:0 0 60px #d8ff8640}.site-curtain-copy--typed{opacity:1;animation:.15s cubic-bezier(.4,0,.2,1) .44s forwards site-curtain-type-out;transform:none}.site-curtain-copy--typed strong{align-items:center;display:flex}.site-curtain-copy--typed span{opacity:0;filter:blur(6px);max-width:0;animation:site-curtain-letter .15s cubic-bezier(.2,.9,.3,1.3) calc(.11s + var(--i) * 70ms) forwards;display:inline-block;transform:translateY(14px)scale(.9)}.site-curtain-caret{background:currentColor;border-radius:2px;width:.06em;height:.72em;margin-left:.08em;animation:.16s step-end infinite site-curtain-caret}@keyframes site-curtain-letter{40%{max-width:1em}to{opacity:1;filter:none;max-width:1em;transform:none}}@keyframes site-curtain-caret{50%{opacity:0}}@keyframes site-curtain-type-out{to{opacity:0;filter:blur(6px);transform:translateY(-12px)scale(1.04)}}@media (hover:none){.site-curtain{clip-path:none;animation:.18s ease-out forwards site-curtain-fade}@keyframes site-curtain-fade{0%{opacity:0}to{opacity:1}}}.chat-message--user{background:#9e661f;border:0;border-radius:27px;align-self:flex-end;max-width:82%;padding:14px 18px}.chat-message--user p{color:var(--paper)}.chat-thinking{color:#f1ede38a;align-items:center;gap:10px;min-height:28px;display:flex}.chat-thinking-orbit{flex:0 0 25px;justify-content:center;align-items:center;gap:2px;width:25px;height:25px;display:flex;position:relative}.chat-thinking-orbit i{background:var(--red);border-radius:50%;width:3px;height:3px;animation:1.05s ease-in-out infinite chat-thinking-dot}.chat-thinking-orbit i:nth-child(2){animation-delay:.12s}.chat-thinking-orbit i:nth-child(3){animation-delay:.24s}.chat-thinking-label{background:linear-gradient(90deg, #f1ede347, var(--paper), #f1ede347);color:#0000;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;font:400 .78rem/1.2 Arial,Helvetica,sans-serif;animation:.24s both chat-thinking-copy-in,1.4s linear infinite chat-thinking-shimmer}.chat-composer{flex:none;width:100%;padding:0 14px 14px;position:relative}.chat-composer-rear{background:color-mix(in srgb, var(--navy) 32%, #242424);opacity:0;visibility:hidden;border:0 solid #f1ede321;border-radius:28px 28px 18px 18px;align-items:flex-start;height:0;padding:0;transition:height .26s cubic-bezier(.22,1,.36,1),padding .26s cubic-bezier(.22,1,.36,1),opacity .22s,visibility 0s linear .26s;display:flex;overflow:hidden}.chat-composer-rear[data-visible=true]{opacity:1;visibility:visible;border-width:1px 1px 0;height:88px;padding:12px 16px 0;transition-delay:0s}.chat-attachment{grid-template-columns:52px minmax(0,1fr) 28px;align-items:center;gap:10px;width:100%;min-width:0;display:grid}.chat-attachment-preview{color:#f1ede3b8;background-color:#11131394;background-position:50%;background-size:cover;border:1px solid #f1ede324;border-radius:14px;place-items:center;width:52px;height:52px;display:grid}.chat-attachment-preview svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.chat-attachment-meta{flex-direction:column;min-width:0;display:flex}.chat-attachment-meta strong{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-family:Arial,Helvetica,sans-serif;font-size:.76rem;font-weight:500;overflow:hidden}.chat-attachment-meta span{color:#f1ede37a;font-family:var(--font-mono), monospace;letter-spacing:.06em;margin-top:4px;font-size:.57rem}.chat-attachment>button{color:#f1ede394;cursor:pointer;background:0 0;border:0;border-radius:50%;width:28px;height:28px;padding:0;font-size:1.15rem;transition:background .18s,color .18s}.chat-attachment>button:hover{color:var(--paper);background:#f1ede314}.chat-composer-surface{z-index:1;min-height:88px;box-shadow:none;background:#101212;border:1px solid #f1ede321;border-radius:29px;flex-direction:column;justify-content:space-between;margin-top:0;padding:10px 12px 8px;transition:min-height .24s cubic-bezier(.22,1,.36,1),border-color .2s;display:flex;position:relative}.chat-composer-rear[data-visible=true]+.chat-composer-surface{margin-top:-18px}.chat-composer-surface:focus-within{border-color:#c51d1da8}.chat-composer textarea{field-sizing:content;resize:none;width:100%;min-height:24px;max-height:112px;color:var(--paper);scrollbar-width:thin;background:0 0;border:0;outline:0;padding:1px 5px 4px;font:400 .96rem/1.45 Arial,Helvetica,sans-serif;transition:min-height .22s cubic-bezier(.22,1,.36,1);overflow-y:auto}.chat-composer textarea::placeholder{color:#f1ede361}.chat-composer-toolbar{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.chat-composer-selectors,.chat-composer-actions{align-items:center;min-width:0;display:flex}.chat-composer-selectors{gap:3px}.chat-composer-actions{flex:none;gap:4px}.chat-composer-actions>input{display:none}.chat-theme-toggle{color:#f1ede3a3;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;width:36px;height:36px;padding:0;transition:color .18s,background .18s,transform .18s;display:grid}.chat-theme-toggle:hover{color:var(--paper);background:#f1ede30f;transform:rotate(-8deg)}.chat-theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.chat-selector{min-width:0;position:relative}.chat-selector>button,.chat-attach-button{color:#f1ede3a3;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;height:36px;padding:0 8px;font-family:Arial,Helvetica,sans-serif;font-size:.72rem;transition:color .18s,background .18s;display:flex}.chat-selector>button:hover,.chat-attach-button:hover{color:var(--paper);background:#f1ede30f}.chat-selector>button img{filter:brightness(0)invert();opacity:.75;width:16px;height:16px}.chat-selector>button svg,.chat-attach-button svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.chat-selector-menu{z-index:4;opacity:0;pointer-events:none;transform-origin:100% 100%;visibility:hidden;background:#1b1d1d;border:1px solid #f1ede31f;border-radius:14px;width:max-content;min-width:138px;padding:6px;transition:opacity .18s,transform .22s cubic-bezier(.22,1,.36,1),visibility 0s linear .22s;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(6px)scale(.97);box-shadow:0 14px 36px #00000047}.chat-selector-menu[data-open=true]{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)scale(1)}.chat-selector-menu button{color:#f1ede39e;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;padding:9px 10px;font-size:.72rem}.chat-selector-menu button:hover,.chat-selector-menu button[data-selected=true]{color:var(--paper);background:#f1ede312}.chat-attach-button{justify-content:center;width:38px;padding:0}.chat-send-button{background:var(--paper);width:42px;height:42px;color:var(--ink);border:0;border-radius:50%;place-items:center;padding:0;transition:filter .18s,opacity .18s,transform .18s cubic-bezier(.22,1,.36,1);display:grid}.chat-send-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.chat-send-button:disabled{cursor:not-allowed;opacity:.42}.chat-send-button:not(:disabled){cursor:pointer}.chat-send-button:not(:disabled):hover{filter:brightness(1.08);transform:scale(1.045)}.chat-send-button:not(:disabled):active{transform:scale(.96)}.chat-selector>button:focus-visible,.chat-selector-menu button:focus-visible,.chat-attachment>button:focus-visible,.chat-attach-button:focus-visible,.chat-send-button:focus-visible,.chat-panel-header>button:focus-visible,.chat-theme-toggle:focus-visible{outline:2px solid var(--red);outline-offset:2px}.chat-panel-shell[data-theme=light]{color:#111313;background:#f1ede3;border-color:#11131324}.chat-panel-shell[data-theme=light] .chat-panel-header{color:#1113138a}.chat-panel-shell[data-theme=light] .chat-panel-header>button{color:#11131394}.chat-panel-shell[data-theme=light] .chat-panel-header>button:hover{color:#111313;background:#1113130f}.chat-panel-shell[data-theme=light] .chat-thread{scrollbar-color:#11131333 transparent}.chat-panel-shell[data-theme=light] .chat-message p{color:#111313db}.chat-panel-shell[data-theme=light] .chat-message--user{background:#d9c9a5}.chat-panel-shell[data-theme=light] .chat-message--user p{color:#111313}.chat-panel-shell[data-theme=light] .chat-thinking{color:#1113138a}.chat-panel-shell[data-theme=light] .chat-thinking-label{background-image:linear-gradient(90deg,#11131340,#111313,#11131340)}.chat-panel-shell[data-theme=light] .chat-composer-surface{background:#f1ede3;border-color:#1113132e}.chat-panel-shell[data-theme=light] .chat-composer textarea{color:#111313}.chat-panel-shell[data-theme=light] .chat-composer textarea::placeholder{color:#1113136b}.chat-panel-shell[data-theme=light] .chat-theme-toggle,.chat-panel-shell[data-theme=light] .chat-attach-button{color:#111313a3}.chat-panel-shell[data-theme=light] .chat-theme-toggle:hover,.chat-panel-shell[data-theme=light] .chat-attach-button:hover{color:#111313;background:#1113130f}.chat-panel-shell[data-theme=light] .chat-send-button{color:#f1ede3;background:#111313}.chat-widget[data-expanded=true] .chat-widget-panel{inset:0;top:var(--chat-vv-top,0px);width:100vw;height:var(--chat-vv-height,100dvh);min-height:0;transition:opacity .22s ease-in 60ms,transform .32s cubic-bezier(.4,0,.8,.6),visibility 0s linear .32s;position:fixed;transform:translateY(100%)}.chat-widget[data-expanded=true] .chat-widget-panel[data-open=true]{transition:opacity .18s ease-out,transform .36s cubic-bezier(.2,.9,.25,1),top .28s cubic-bezier(.2,.8,.2,1),height .28s cubic-bezier(.2,.8,.2,1),visibility;transform:none}:is(html:has(.chat-widget[data-open=true][data-expanded=true]),body:has(.chat-widget[data-open=true][data-expanded=true])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#101212;background-image:none}:is(html:has(.chat-widget[data-variant=blog][data-open=true][data-expanded=true]),body:has(.chat-widget[data-variant=blog][data-open=true][data-expanded=true])){background-color:#0b100e;background-image:none}body:has(.chat-widget[data-open=true][data-expanded=true]) :is(.site-shell,.blog-shell)>:not(.chat-widget){visibility:hidden}body:has(.chat-widget[data-open=true][data-expanded=true]) .site-shell:before{visibility:hidden}.chat-widget[data-expanded=true][data-open=true]:before{content:"";z-index:-1;background:#101212;height:100dvh;position:fixed;inset:0}.chat-widget[data-variant=blog][data-expanded=true][data-open=true]:before{background:#0b100e}@media (pointer:coarse){.chat-widget .chat-composer textarea{font-size:16px}}.chat-widget[data-expanded=true] .chat-panel-shell{height:100%}.chat-widget[data-expanded=true] .chat-composer textarea{font-size:16px}.chat-widget[data-expanded=true] .chat-panel-shell{border:0;border-radius:0}.chat-widget[data-expanded=true] .chat-panel-header{border-bottom:1px solid #f1ede314;min-height:56px;padding:10px 20px}.chat-widget[data-expanded=true] .chat-thread{width:min(100%,820px);margin-inline:auto;padding:clamp(2rem,7vh,5.5rem) 24px 32px}.chat-widget[data-expanded=true] .chat-composer{width:min(100%,820px);margin-inline:auto;padding:0 24px 24px}.footer-meta{font-family:var(--font-mono), monospace;letter-spacing:.09em;text-align:center;justify-content:center;margin-top:4rem;font-size:.7rem;display:flex}.footer-meta a:hover{color:var(--red)}@keyframes backdrop-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)rotate(-.6deg)scale(.98)}}@keyframes timeline-flow{0%{background-position:0 0}to{background-position:0 100%}}@keyframes creature-bob{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-1.8px)rotate(1deg)}}@keyframes creature-brow{0%,28%,to{transform:translateY(0)rotate(0)}40%,58%{transform:translateY(-.8px)rotate(-2deg)}72%,84%{transform:translateY(.35px)rotate(1deg)}}@keyframes creature-look{0%,24%,to{transform:translate(0)}34%,49%{transform:translate(-1.8px)}61%,78%{transform:translate(1.8px)}}@keyframes creature-blink{0%,42%,46%,84%,88%,to{transform:scaleY(1)}44%,86%{transform:scaleY(.08)}}@keyframes chat-message-in{0%{opacity:0;transform:translateY(8px)}}@keyframes chat-thinking-dot{0%,60%,to{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes chat-thinking-copy-in{0%{opacity:0;transform:translateY(3px)}}@keyframes chat-thinking-shimmer{0%{background-position:180% 0}to{background-position:-40% 0}}@media (max-width:980px){.work-entry{grid-template-columns:130px minmax(0,1fr)}}@media (max-width:720px){.work-history,.kvasir-section,.project-grid-section,.footer-inner{width:min(calc(100% - 28px), var(--page))}.work-history{padding-top:8rem}.work-history-heading h2{font-size:clamp(4.35rem,22vw,6.4rem);line-height:.9}.work-timeline{margin-left:8px;padding-left:24px}.timeline-node{left:-34px}.work-entry{min-height:0;box-shadow:6px 7px 0 var(--ink);grid-template-columns:82px minmax(0,1fr);gap:1.2rem;padding:1.25rem}.work-entry-copy h3{font-size:clamp(2.1rem,10vw,3.2rem)}.work-entry-copy p{grid-column:1/-1}.work-entry-span{top:1rem;right:1rem;transform:none}.work-entry-span strong{-webkit-text-stroke-width:1.2px;font-size:2.4rem}.work-entry-span small{margin-top:.2rem;font-size:.6rem}.history-modal{box-shadow:8px 10px 0 var(--ink)}.kvasir-section{box-shadow:6px 7px 0 var(--ink);margin-bottom:6rem}.kvasir-row{--tile-h:380px}.kvasir-lounger{display:none}.kvasir-lede{max-width:44ch}.kvasir-post{width:min(280px,74vw)}.project-grid-heading{grid-template-columns:1fr}.project-grid-heading h2{font-size:clamp(4.5rem,22vw,7rem)}.project-card{box-shadow:6px 7px 0 var(--ink);grid-template-columns:28vw minmax(0,1fr);gap:1rem;min-height:0;padding:1rem}.project-card-art{border-radius:12px}.project-card-copy{gap:.35rem}.project-card-copy h3{font-size:clamp(2.2rem,10vw,3.2rem)}.project-card-copy p{font-size:.98rem}.blog-section{width:min(calc(100% - 28px), var(--page));padding-block:5rem 4rem}.blog-heading{flex-direction:column;align-items:flex-start;gap:1rem}.blog-heading h2{font-size:clamp(4.5rem,22vw,7rem)}.blog-post-body{grid-template-columns:1fr}.blog-post-copy{min-height:250px}.blog-post-media{min-height:min(72vw,360px)}.blog-post-actions{gap:1rem}footer{--footer-descent:clamp(230px, 58vw, 320px)}footer h2{font-size:clamp(4.5rem,22vw,7rem)}.footer-title-row{grid-template-columns:1fr}.footer-action-cards{width:min(360px,100% - 10px)}.contact-email{gap:.75rem}.contact-email strong{font-size:clamp(1.25rem,7.2vw,3.6rem)}.social-icon-links{gap:1.4rem}.cv-modal{--cv-bar:68px;--cv-page-w:min(calc(100vw - 56px), calc((100dvh - var(--cv-bar) - 64px) * .7727))}.cv-toolbar-divider{display:none}.cv-toolbar{gap:0}.cv-zoom-controls button:nth-child(2){letter-spacing:0;min-width:44px}.footer-meta{flex-direction:row;justify-content:center;align-items:center;margin-top:4rem}.chat-widget{right:14px;bottom:calc(14px + var(--chat-kb-inset,0px))}.chat-widget-trigger{width:54px;height:54px}.chat-widget-trigger .chat-creature{width:42px;height:35px}.chat-widget-panel{width:min(420px,100vw - 28px);height:min(500px, calc(var(--chat-vv-height,100dvh) - 94px));min-height:min(350px, calc(var(--chat-vv-height,100dvh) - 94px))}.chat-panel-header{min-height:48px}.chat-thread{padding:14px 15px 20px}.chat-message{max-width:94%}.chat-composer-surface{border-radius:25px;min-height:84px;padding:9px 10px 7px}.chat-composer textarea{min-height:23px;padding:1px 5px 3px;font-size:.94rem}.chat-composer-toolbar{gap:5px}.chat-composer-selectors{overflow:hidden}.chat-selector>button{gap:5px;max-width:108px;padding-inline:5px}.chat-selector>button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-attach-button{width:34px}.chat-send-button{width:40px;height:40px}.chat-widget[data-expanded=true] .chat-panel-header{min-height:52px;padding:8px 12px}.chat-widget[data-expanded=true] .chat-thread{width:100%;padding:24px 16px}.chat-widget[data-expanded=true] .chat-composer{width:100%;padding:0 12px max(12px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.waves-background{filter:saturate(.85)}.scroll-hero{--greeting-opacity:1;--name-opacity:1;--greeting-y:0em;--name-y:0em;height:100svh}.scroll-hero--reduced-motion .hero-intro span{filter:none;transform:none}.scroll-hero-frame,.scroll-hero-frame:before,.scroll-hero-video{transform:none}}.blog-invite{z-index:90;left:max(18px, env(safe-area-inset-left));bottom:max(24px, calc(env(safe-area-inset-bottom) + 24px));border:2px solid var(--ink);background:var(--paper);max-width:min(360px,100vw - 36px);color:var(--ink);box-shadow:6px 7px 0 var(--ink);border-radius:18px;align-items:center;gap:12px;padding:10px 10px 10px 12px;animation:.62s cubic-bezier(.2,.9,.3,1.1) both blog-invite-in;display:flex;position:fixed}.blog-invite[data-leaving=true]{animation:.4s cubic-bezier(.4,0,.2,1) forwards blog-invite-out}@keyframes blog-invite-in{0%{opacity:0;translate:0 18px;scale:.96}}@keyframes blog-invite-out{to{opacity:0;translate:0 10px}}.blog-invite-mark{background:#0c170e;border-radius:13px;flex:none;width:48px;height:48px;display:block;overflow:hidden;box-shadow:0 0 0 1px #7dc85a59,0 4px 14px #285a2859}.blog-invite-mark img{object-fit:cover;width:100%;height:100%;display:block}.blog-invite-copy{gap:2px;min-width:0;display:grid}.blog-invite-copy strong{letter-spacing:-.01em;font:600 .9rem/1.25 Arial,Helvetica,sans-serif}.blog-invite-go{border:2px solid var(--ink);background:var(--ink);color:var(--paper);font:600 .72rem var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;flex:none;padding:9px 13px;text-decoration:none;transition:transform .16s,background .16s}.blog-invite-go:hover{background:var(--red);border-color:var(--red);transform:translateY(-1px)}.blog-invite-close{width:28px;height:28px;color:var(--ink);cursor:pointer;opacity:.55;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:opacity .16s,background .16s;display:grid}.blog-invite-close:hover{opacity:1;background:#11131314}.blog-invite-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:14px;height:14px}@media (max-width:700px){.blog-invite{left:12px;right:88px;bottom:max(16px, calc(env(safe-area-inset-bottom) + 16px));gap:8px;max-width:none;padding:8px 8px 8px 10px}.blog-invite-mark{border-radius:11px;width:40px;height:40px}.blog-invite-copy strong{font-size:.78rem;line-height:1.2}.blog-invite-go{padding:7px 11px;font-size:.66rem}.blog-invite-close{width:24px;height:24px}.blog-invite-close svg{width:12px;height:12px}}@media (prefers-reduced-motion:reduce){.blog-invite{animation:none}}.site-shell a,.site-shell button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.site-shell .blog-post:active,.site-shell .project-card:active,.site-shell .blog-invite-go:active,.site-shell .footer-action-card:active{scale:.985}.site-shell button:active:not(:disabled){scale:.97}.site-shell{animation:.18s ease-out both site-arrive}@keyframes site-arrive{0%{opacity:.82}to{opacity:1}}@media (prefers-reduced-motion:reduce){.site-shell{animation:none}}@media (max-height:520px) and (orientation:landscape){.cv-modal-backdrop{padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left))}.cv-modal{--cv-page-w:min(calc(100vw - 150px), 720px);flex-direction:row;gap:8px;width:100%;height:100%}.cv-toolbar{border-radius:28px;flex-flow:column;justify-content:flex-start;width:56px;max-height:100%;margin:0;padding:6px 5px;overflow-y:auto}.cv-language-toggle,.cv-zoom-controls{flex-direction:column}.cv-toolbar-divider{width:24px;height:1px;margin:3px 0}.cv-toolbar button,.cv-toolbar a{width:44px;padding:0}.cv-zoom-controls button:nth-child(2){letter-spacing:0;width:44px;min-width:44px;font-size:.6rem}}html:has(.site-shell){background-color:#030a14;background-image:linear-gradient(#030a14 calc(100% - 800px),#f1ede3 calc(100% - 800px));background-repeat:repeat-y;background-size:100% calc(100% + 1600px)}
.site-shell .waves-background{opacity:.42}.site-shell .work-history-heading h2,.site-shell .project-grid-heading h2,.site-shell .blog-heading h2{color:#172c32;text-shadow:0 2px 22px #f1ede3a6}.site-shell .project-grid-section{content-visibility:auto;padding:clamp(4.5rem,9vw,8.1rem) 0 clamp(1.35rem,2.7vw,2.7rem)}.site-shell .project-grid-heading{margin-bottom:clamp(2.7rem,6.3vw,5.4rem)}.site-shell .project-grid-heading h2{font-size:clamp(4.5rem,10.8vw,10.35rem);line-height:.75}.site-shell .blog-heading h2 a{align-items:center;gap:.18em;text-decoration:none;display:flex}.portfolio-blog-feed{gap:clamp(1rem,2.2vw,1.8rem);display:grid;position:relative}.site-shell .portfolio-blog-post{border:2px solid var(--ink);color:#eef4e4;box-shadow:10px 11px 0 var(--ink);isolation:isolate;background:#050b07;border-radius:clamp(16px,2vw,26px);grid-template-columns:clamp(150px,19vw,260px) minmax(0,1fr);align-items:center;gap:clamp(1.2rem,3.4vw,3rem);padding:clamp(1.1rem,2.4vw,2rem) clamp(1.2rem,3.4vw,3rem);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;display:grid;position:relative;overflow:hidden}.site-shell .portfolio-blog-post:hover{box-shadow:14px 15px 0 var(--ink);transform:translate(-3px,-3px)}.feed-lights{z-index:-1;left:0;right:0;top:calc(var(--field-top,0px) * -1);height:var(--field-h,100%);pointer-events:none;position:absolute}.feed-lights:after{content:"";background:linear-gradient(90deg,#050b0700,#050b0747 60%,#050b076b);position:absolute;inset:0}.feed-lights i{aspect-ratio:1;filter:blur(42px);opacity:.95;mix-blend-mode:screen;will-change:transform;border-radius:50%;width:46%;position:absolute}.feed-lights i:first-child{background:radial-gradient(circle,#b6ff4d,#0000 64%);animation:14s ease-in-out infinite alternate feed-light-a;top:62%;left:4%}.feed-lights i:nth-child(2){background:radial-gradient(circle,#10c98a,#0000 64%);animation:17s ease-in-out infinite alternate feed-light-b;top:30%;left:38%}.feed-lights i:nth-child(3){background:radial-gradient(circle,#19b7c2,#0000 64%);animation:19s ease-in-out infinite alternate feed-light-c;top:70%;left:64%}.feed-lights i:nth-child(4){background:radial-gradient(circle,#8fa62a,#0000 64%);animation:16s ease-in-out infinite alternate feed-light-d;top:-8%;left:16%}.feed-lights i:nth-child(5){opacity:.6;background:radial-gradient(circle,#efffb0,#0000 62%);width:34%;animation:12s ease-in-out infinite alternate feed-light-e;top:4%;left:70%}@keyframes feed-light-a{to{transform:translate(22%,-118%)}}@keyframes feed-light-b{to{transform:translate(-40%,82%)}}@keyframes feed-light-c{to{transform:translate(-30%,-120%)}}@keyframes feed-light-d{to{transform:translate(60%,96%)}}@keyframes feed-light-e{to{transform:translate(-90%,140%)}}.portfolio-blog-cover{aspect-ratio:16/10;background:var(--art) center / cover;border-radius:14px;display:block;position:relative;box-shadow:0 16px 34px #00000073,0 0 0 1px #d8ff8624}.portfolio-blog-copy{gap:.55rem;min-width:0;display:grid}.portfolio-blog-post h3{font:400 clamp(2.1rem,4.2vw,4rem)/.92 var(--font-display),sans-serif;letter-spacing:-.025em;text-transform:uppercase;text-wrap:balance;margin:0}.portfolio-blog-post p{color:#eef4e4cc;max-width:56ch;font:italic 400 clamp(1rem,1.25vw,1.15rem)/1.45 var(--font-editorial),serif;margin:0}.site-shell .portfolio-blog-post:focus-visible{outline-offset:3px;outline:3px solid #d8ff86}@media (prefers-reduced-motion:reduce){.feed-lights i{animation:none}}.site-shell .footer-inner{padding:clamp(6.3rem,10.8vw,9.9rem) 0 2.25rem}.site-shell .footer-title-row{align-items:end;gap:clamp(1.8rem,5.4vw,6.3rem)}.site-shell footer h2{text-wrap:balance;font-size:clamp(4.5rem,10.8vw,9.9rem);line-height:.92}.site-shell .footer-action-cards{min-height:0}.site-shell .cv-open-button,.site-shell .portfolio-card{min-height:153px}.site-shell .contact-area{margin-top:clamp(3.6rem,7.2vw,7.2rem)}.site-shell .contact-email strong{font-size:clamp(2.07rem,5.4vw,6.12rem)}.site-shell .social-icon-links{margin-top:clamp(2.25rem,4.5vw,4.05rem)}.site-shell .footer-meta{margin-top:3.6rem}@property --orb-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.chat-widget{--chat-glow-a:#ffb08a;--chat-glow-b:#b9a6ff;--chat-glow-c:#8fe3c9;--chat-glow-d:#8fc8ff}.chat-widget[data-variant=blog]{--chat-glow-a:#d8ff86;--chat-glow-b:#5fd3a8;--chat-glow-c:#7ab8ff;--chat-glow-d:#b9ff7a;--red:#647894}.chat-widget[data-open=true] .chat-widget-trigger{opacity:0;visibility:hidden;pointer-events:none;transform:scale(.8)}.chat-widget .chat-widget-panel{transform-origin:calc(100% - 31px) 100%;transition:opacity .14s ease-in,transform .16s cubic-bezier(.4,0,1,1),visibility 0s linear .16s;transform:translateY(8px)scale(.92)}.chat-widget .chat-widget-panel[data-open=true]{transition:opacity .16s ease-out,transform .3s cubic-bezier(.2,1.05,.3,1),visibility;transform:none}.chat-widget .chat-widget-trigger{transition:transform .16s cubic-bezier(.2,.9,.3,1.2),opacity .14s,box-shadow .16s,visibility 0s linear .14s}.chat-widget:not([data-open=true]) .chat-widget-trigger{transition-delay:60ms,60ms,0s,0s}.chat-widget .chat-widget-panel{height:min(590px,calc(var(--chat-vv-height,100dvh) - 48px));width:min(420px,100vw - 32px);min-height:0;bottom:0}.chat-widget .chat-panel-shell{isolation:isolate;background:#121517;border:1px solid #ffffff1a;border-radius:24px;position:relative;overflow:clip;box-shadow:0 24px 100px #0005,inset 0 1px #ffffff0d}.chat-aurora{z-index:-1;pointer-events:none;transform:translate(calc(var(--pointer-x,0) * 34px),calc(var(--pointer-y,0) * 34px));transition:transform .9s cubic-bezier(.22,1,.36,1);position:absolute;inset:-10%;overflow:hidden;-webkit-mask-image:linear-gradient(#000 20%,#0000 92%);mask-image:linear-gradient(#000 20%,#0000 92%)}.chat-aurora i{aspect-ratio:1;opacity:.68;mix-blend-mode:screen;border-radius:50%;width:78%;animation:14s ease-in-out infinite alternate chat-light-flow;position:absolute}.chat-aurora i:first-child{background:radial-gradient(circle,var(--chat-glow-a) 0%,transparent 62%);top:-22%;left:-18%}.chat-aurora i:nth-child(2){background:radial-gradient(circle,var(--chat-glow-b) 0%,transparent 62%);animation-duration:17s;animation-delay:-7s;top:-8%;right:-22%}.chat-aurora i:nth-child(3){background:radial-gradient(circle,var(--chat-glow-c) 0%,transparent 62%);opacity:.46;width:60%;animation-duration:19s;animation-direction:alternate-reverse;animation-delay:-3s;top:26%;left:-10%}.chat-aurora i:nth-child(4){background:radial-gradient(circle,var(--chat-glow-d) 0%,transparent 62%);opacity:.42;width:56%;animation-duration:22s;animation-delay:-11s;top:18%;right:-8%}.chat-panel-shell[data-thinking=true] .chat-aurora i{opacity:.9;animation-duration:5s}@keyframes chat-light-flow{33%{transform:translate(6%,10%)scale(1.12)}66%{transform:translate(-4%,16%)scale(.94)}to{transform:translate(10%,4%)rotate(20deg)scale(1.18)}}.chat-widget .chat-panel-header{flex-shrink:0;justify-content:flex-end;gap:4px;padding:18px 20px;position:relative}.chat-widget .chat-widget-trigger,.chat-widget[data-variant=blog] .chat-widget-trigger{width:68px;height:68px;box-shadow:none;background:0 0;border:0}.chat-widget .chat-widget-trigger:hover{box-shadow:none;transform:translateY(-3px)}.chat-widget .chat-widget-trigger .chat-pof{width:64px;height:64px}.chat-widget .chat-pof{filter:drop-shadow(0 4px 3px #24223826);overflow:visible}.chat-pof-eye{fill:#292730}.chat-widget .chat-creature-face{transform-box:fill-box;transform-origin:50% 75%;animation:4s ease-in-out infinite pof-float}.chat-widget .chat-creature-eyes{transform-box:fill-box;transform-origin:50%;animation:none}.chat-widget .chat-creature-blink{animation:5.2s ease-in-out infinite pof-blink}.chat-light-mark .chat-creature-pupils,.chat-widget-trigger:not([data-tracking=true]) .chat-creature-pupils{transform:translate(var(--gaze-x,0px),var(--gaze-y,0px));transition:transform .45s cubic-bezier(.22,1,.36,1)}.chat-widget .chat-identity{transform:translate(calc(-50% + var(--orb-dx,0px)),calc(-50% + var(--orb-dy,0px)));align-items:center;transition:transform .45s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:50%;left:50%}.chat-widget .chat-light-mark{width:54px;height:54px;box-shadow:none;filter:none;background:0 0;border-radius:0;animation:none;display:block;position:relative}.chat-widget .chat-light-mark:before{content:none}.chat-widget .chat-light-mark .chat-pof{width:54px;height:54px;position:static;transform:none}.chat-widget[data-mood=waiting]{--gaze-x:0px;--gaze-y:1px}.chat-widget[data-mood=waiting] .chat-creature-face{animation:3s ease-in-out infinite pof-listen}.chat-widget[data-mood=thinking]{--gaze-x:1px;--gaze-y:-2px}.chat-widget[data-mood=thinking] .chat-creature-face{animation:2.8s ease-in-out infinite pof-think}.chat-widget[data-mood=thinking] .chat-creature-eyes{animation:2.8s ease-in-out infinite pof-ponder}.chat-widget[data-mood=thinking] .chat-creature-blink{animation:3.7s ease-in-out infinite pof-blink}.chat-widget[data-mood=answering]{--gaze-x:0px;--gaze-y:1.4px}.chat-widget[data-mood=answering] .chat-creature-face{animation:1.8s ease-in-out infinite pof-nod}.chat-widget[data-mood=concerned] .chat-creature-face{animation:none;transform:rotate(-5deg)}@keyframes pof-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-3px)rotate(2deg)}}@keyframes pof-listen{50%{transform:translateY(-1px)scale(1.025,.98)}}@keyframes pof-think{0%,to{transform:translateY(0)rotate(-5deg)scale(1.025,.975)}35%{transform:translateY(-4px)rotate(6deg)scale(.97,1.035)}65%{transform:translateY(-2px)rotate(2deg)scale(1.02,.985)}}@keyframes pof-ponder{0%,to{transform:translate(0)}40%,60%{transform:translate(-2px)rotate(-5deg)}}@keyframes pof-nod{50%{transform:translateY(1.5px)rotate(2deg)scale(1.025,.975)}}@keyframes pof-blink{0%,42%,46%,to{transform:scaleY(1)}44%{transform:scaleY(.08)}}@media (prefers-reduced-motion:reduce){.chat-widget[data-mood] .chat-pof .chat-creature-face,.chat-widget[data-mood] .chat-pof .chat-creature-eyes,.chat-widget[data-mood] .chat-pof .chat-creature-blink,.chat-widget[data-mood] .chat-pof .chat-creature-pupils{transition:none;animation:none;transform:none}}.chat-widget .chat-message p{letter-spacing:-.015em;font:400 15px/1.7 Helvetica,Arial,sans-serif}.chat-widget .chat-message--user{background:#08090a;border:1px solid #ffffff14;border-radius:16px 16px 4px;padding:8px 14px;box-shadow:0 4px 14px #0006}.chat-widget .chat-message--user p{line-height:1.5}.chat-widget .chat-message--user[data-flight=true]{animation:.3s cubic-bezier(.16,1,.3,1) .17s both chat-user-arrive}@keyframes chat-user-arrive{0%{opacity:0;transform:translateY(8px)scale(.94)}}.chat-flight-layer{z-index:8;border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.chat-flight-particle{background:var(--chat-glow-c);width:4px;height:4px;box-shadow:0 0 8px 2px color-mix(in srgb,var(--chat-glow-c) 65%,transparent);border-radius:50%;margin:-2px;position:absolute}.chat-flight-particle:nth-child(3n){background:var(--chat-glow-a);box-shadow:0 0 8px 2px color-mix(in srgb,var(--chat-glow-a) 65%,transparent)}.chat-flight-particle--lead{width:7px;height:7px;box-shadow:0 0 12px 3px color-mix(in srgb,var(--chat-glow-b) 70%,transparent);background:#fff;margin:-3.5px}.chat-message-a11y{clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);-webkit-user-select:none;user-select:none;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.chat-reply-word{white-space:pre-wrap;animation:.3s cubic-bezier(.2,.8,.2,1) both chat-word-resolve;display:inline-block}@keyframes chat-word-resolve{0%{opacity:0;filter:blur(4px);transform:translateY(4px)}}.chat-caret{vertical-align:-.12em;background:currentColor;width:2px;height:.95em;margin-left:2px;animation:.9s steps(2,start) infinite chat-caret-blink;display:inline-block}@keyframes chat-caret-blink{to{opacity:0}}.chat-widget .chat-composer-surface{background:#ffffff06;border:1px solid #ffffff1f;border-radius:25px;flex-direction:row;align-items:flex-end;gap:8px;min-height:0;padding:7px 7px 7px 18px;transition:border-color .25s,box-shadow .25s}.chat-widget .chat-composer textarea{min-height:22px;max-height:140px;padding:6px 0;line-height:22px}.chat-widget .chat-composer-toolbar{flex:none}.chat-widget .chat-composer-toolbar>div:first-child{display:none}.chat-widget .chat-composer-surface:focus-within{box-shadow:none;border-color:#ffffff3a}.chat-widget .chat-thread{padding:20px 24px 28px}.chat-widget .chat-send-button{color:#ecece7;opacity:1;filter:none;width:34px;height:34px;box-shadow:none;background:#ffffff0a;border:1px solid #ffffff24;transition:background .2s,border-color .2s,color .2s,transform .18s cubic-bezier(.2,.9,.3,1.2)}.chat-widget .chat-send-button svg{stroke-width:2px;width:16px;height:16px}.chat-widget .chat-send-button:disabled{opacity:.55}.chat-widget .chat-send-button:not(:disabled){color:#0f1a12;background:#9fd3a4;border-color:#0000}.chat-widget .chat-send-button:not(:disabled):hover{filter:none;background:#b3e0b6;transform:scale(1.05)}.chat-widget .chat-send-button:not(:disabled):active{transform:scale(.94)}.chat-widget[data-expanded=true] .chat-widget-panel{width:100vw;height:var(--chat-vv-height,100dvh)}@media (max-width:700px){.chat-widget .chat-expand-button{display:none}.site-shell .portfolio-blog-post{box-shadow:6px 7px 0 var(--ink);grid-template-columns:1fr;gap:14px;padding:16px 16px 20px}.site-shell .footer-title-row{grid-template-columns:1fr}.site-shell .footer-action-cards{width:min(324px,100% - 10px);min-height:0}.site-shell .footer-title-row h2{font-size:clamp(4.05rem,19.8vw,6.3rem)}.chat-widget .chat-widget-panel{height:min(580px,calc(var(--chat-vv-height,100dvh) - 28px));width:calc(100vw - 28px)}}@media (prefers-reduced-motion:reduce){.chat-aurora,.chat-aurora i,.chat-light-mark,.chat-light-mark:before,.chat-identity,.chat-creature-face,.chat-creature-eyes,.chat-creature-blink,.chat-reply-word{filter:none;transition:none;animation:none;transform:none}}@media (pointer:coarse){.chat-aurora i{animation:none}.chat-aurora{transition:none}}.legal-page{max-width:720px;color:var(--ink);margin:0 auto;padding:24px 24px 6rem}.legal-back{border:2px solid var(--ink);width:40px;height:40px;color:var(--ink);border-radius:50%;place-items:center;margin-bottom:40px;transition:background .16s,color .16s;display:inline-grid}.legal-back svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.legal-back:hover{background:var(--ink);color:var(--paper)}.legal-page .legal-document{font:400 1.05rem/1.75 var(--font-editorial), Georgia, "Times New Roman", serif}.legal-page .legal-document header{border-bottom:1px solid var(--ink);margin-bottom:2.2rem;padding-bottom:1.3rem}.legal-page .legal-document h1{font:500 clamp(1.7rem, 3.4vw, 2.4rem)/1.18 var(--font-editorial), Georgia, serif;letter-spacing:-.012em;text-wrap:balance;margin:0 0 .6rem}.legal-page .legal-meta{font:italic 400 .92rem/1.5 var(--font-editorial), Georgia, serif;opacity:.72;gap:.15rem;margin:0;display:grid}.legal-page .legal-document section{margin-bottom:1.6rem}.legal-page .legal-document h2{font:600 1.08rem/1.4 var(--font-editorial), Georgia, serif;letter-spacing:-.005em;margin:0 0 .35rem}.legal-page .legal-document p{text-wrap:pretty;margin:0 0 .65rem}.legal-page .legal-document ol{margin:0 0 .65rem;padding-left:1.5rem}.legal-page .legal-document li{margin-bottom:.25rem;padding-left:.25rem}.legal-page .legal-document a{color:var(--red);text-underline-offset:4px;text-decoration:underline}.chat-widget .chat-panel-shell[data-blocked=true]{--chat-glow-a:#ff5a4f;--chat-glow-b:#b3261e;--chat-glow-c:#ff8a80;--chat-glow-d:#7a0f0a;border-color:#ff5a4f33}.chat-widget .chat-panel-shell[data-blocked=true] .chat-light-mark{background:radial-gradient(circle at 32% 26%,#fff 0,#fff 9%,#fff0 38%),radial-gradient(circle at 50% 105%,#0003,transparent 50%),conic-gradient(from var(--orb-angle),#ff8a80,#ffd6d0,#b3261e,#ff5a4f,#ff8a80)!important}.chat-widget .chat-panel-shell[data-blocked=true] .chat-aurora i{opacity:.8}.chat-widget .chat-panel-shell[data-blocked=true] .chat-composer-surface{opacity:.55}
