@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--ink:#12120f;--paper:#f3f0e8;--paper-2:#e7e2d7;--lime:#c8ff3d;--blue:#5457ff;--muted:#77776f;--line:#12120f29;--dark-line:#ffffff24;--max:1380px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}img{max-width:100%;display:block}.skip-link{background:var(--lime);z-index:1000;padding:1rem 1.3rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.site-header{height:86px;max-width:var(--max);z-index:20;color:#fff;border-bottom:1px solid #ffffff29;align-items:center;gap:42px;margin:auto;padding:0 34px;display:flex;position:absolute;inset:0 0 auto}.brand{align-items:center;gap:12px;margin-right:auto;display:flex}.brand>span{background:var(--lime);width:43px;height:43px;color:var(--ink);border-radius:50%;place-items:center;font:800 14px Manrope;display:grid}.brand small{text-transform:uppercase;letter-spacing:.14em;font:600 11px Manrope}.site-header nav{gap:28px;font-size:13px;display:flex}.site-header nav a{opacity:.75;transition:all .25s}.site-header nav a:hover{opacity:1}.header-cta{border:1px solid #ffffff40;border-radius:99px;padding:11px 16px;font-size:13px}.header-cta span{color:var(--lime);margin-left:8px}.menu-toggle{background:0 0;border:0;display:none}.hero{background:var(--ink);color:#fff;min-height:850px;padding:170px max(34px,calc((100vw - var(--max))/2 + 34px)) 70px;grid-template-columns:1.16fr .84fr;align-items:center;gap:6vw;display:grid;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle,var(--blue),transparent 65%);opacity:.18;filter:blur(50px);width:600px;height:600px;position:absolute;top:80px;right:-120px}.hero-orbit{pointer-events:none;border:1px solid #ffffff17;border-radius:50%;position:absolute}.orbit-one{width:570px;height:570px;animation:24s linear infinite spin;top:13%;right:3%}.orbit-two{border-style:dashed;width:380px;height:380px;animation:18s linear infinite reverse spin;top:25%;right:10%}@keyframes spin{to{transform:rotate(360deg)}}.hero-copy{z-index:2;position:relative}.eyebrow,.kicker,.section-heading>p,.contact-intro>p{letter-spacing:.18em;text-transform:uppercase;font:600 11px Manrope}.eyebrow{color:#d5d3cd;align-items:center;gap:10px;display:flex}.eyebrow span{background:var(--lime);width:8px;height:8px;box-shadow:0 0 14px var(--lime);border-radius:50%}h1,h2{letter-spacing:-.055em;margin:0;font-family:Manrope;line-height:.93}h1{font-size:clamp(58px,6.2vw,99px);font-weight:600}h1 em,h2 em{color:var(--lime);font-family:Georgia,serif;font-weight:400}.hero-intro{color:#aaa9a4;max-width:600px;margin:34px 0;font-size:17px;line-height:1.7}.hero-actions{align-items:center;gap:24px;display:flex}.button{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;border:0;justify-content:center;align-items:center;gap:28px;font:600 12px Manrope;display:inline-flex}.button.primary{background:var(--lime);color:var(--ink);border-radius:3px;padding:17px 20px}.button.primary:hover{background:#d7ff73}.button.text-button{color:#fff;border-bottom:1px solid #fff6;padding:10px 0}.hero-visual{z-index:2;justify-self:center;width:min(470px,100%);position:relative}.portrait-frame{background:linear-gradient(145deg,#262624,#171716);border:1px solid #ffffff21;border-radius:200px 200px 16px 16px;justify-content:center;align-items:flex-end;width:390px;height:490px;margin:auto;display:flex;overflow:hidden}.portrait-frame img{image-rendering:auto;transform-origin:bottom;filter:contrast(1.05);width:84%;transform:scale(1.06)}.floating-note{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#232320e6;border:1px solid #ffffff26;align-items:center;gap:12px;padding:14px 17px;display:flex;position:absolute;box-shadow:0 18px 40px #0003}.floating-note strong{color:var(--lime);font:700 28px Manrope}.floating-note span{text-transform:uppercase;letter-spacing:.12em;color:#aaa;font-size:10px}.note-one{top:110px;left:-15px}.note-two{display:block;bottom:95px;right:-28px}.note-two strong{font-size:17px;display:block}.availability{background:var(--paper);color:var(--ink);white-space:nowrap;border-radius:99px;padding:12px 18px;font-size:11px;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.availability i{background:#35a63b;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.hero-footer{bottom:28px;left:max(34px,calc((100vw - var(--max))/2 + 34px));right:max(34px,calc((100vw - var(--max))/2 + 34px));color:#777;letter-spacing:.17em;text-transform:uppercase;justify-content:space-between;font-size:9px;display:flex;position:absolute}.marquee{background:var(--lime);white-space:nowrap;padding:16px 0;overflow:hidden}.marquee div{letter-spacing:.12em;word-spacing:2.5em;font:800 13px Manrope;animation:28s linear infinite marquee}.marquee i{font-style:normal}@keyframes marquee{to{transform:translate(-30%)}}.section{padding:125px max(34px,calc((100vw - var(--max))/2 + 34px))}.section-label{border-top:1px solid var(--line);letter-spacing:.17em;text-transform:uppercase;gap:20px;padding-top:15px;font:600 10px Manrope;display:flex}.section-label span{color:var(--blue)}.section-label.light{border-color:var(--dark-line);color:#b6b5af}.section-heading{margin-top:64px}.section-heading>p{color:var(--blue);margin:0 0 16px}.section-heading h2,.about h2,.teaching h2,.contact h2{font-size:clamp(45px,6.3vw,89px);font-weight:500}.section-heading:not(.light) h2 em,.about h2 em,.teaching h2 em{color:var(--blue)}.about-grid{grid-template-columns:1.05fr .65fr;gap:10vw;margin:70px 0;display:grid}.about-copy{align-self:end}.about-copy>p{color:#5f5f59;font-size:17px;line-height:1.75}.about-copy>p:first-child{color:var(--ink);font-size:22px}.inline-link{border-bottom:1px solid var(--ink);gap:55px;padding:10px 0;font-size:13px;display:inline-flex}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:95px;display:grid}.stats>div{border-right:1px solid var(--line);align-items:flex-end;gap:15px;padding:35px 20px;display:flex}.stats strong{letter-spacing:-.06em;font:600 clamp(42px,5vw,70px) Manrope}.stats span{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;margin-bottom:9px;font-size:10px;line-height:1.4}.experience,.services,.portfolio,.contact{background:var(--ink);color:#fff}.section-heading.light>p,.section-heading.light h2 em,.contact h2 em{color:var(--lime)}.timeline{border-top:1px solid var(--dark-line);margin-top:80px}.timeline-row{border-bottom:1px solid var(--dark-line);grid-template-columns:70px 200px 1fr;gap:35px;padding:36px 0;transition:background .25s;display:grid}.timeline-row:hover{background:#ffffff06}.timeline-index{color:var(--lime);font:500 10px Manrope}.timeline-period{color:#7f7f79;font-size:12px}.timeline-row h3{margin:0 0 4px;font:500 clamp(18px,2.2vw,28px) Manrope}.timeline-row h4{color:var(--lime);margin:0 0 13px;font:italic 400 13px Georgia}.timeline-row p{color:#8d8d88;max-width:650px;margin:0;font-size:13px;line-height:1.7}.skill-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:75px;display:grid}.skill-grid article{border-right:1px solid var(--line);padding:28px 28px 38px}.skill-grid article:last-child{border:0}.skill-top{justify-content:space-between;align-items:center;margin-bottom:34px;display:flex}.skill-top span{color:var(--blue);font-size:10px}.skill-top h3{margin:0;font:600 21px Manrope}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips span,.tech span{border:1px solid var(--line);color:#60605a;border-radius:99px;padding:7px 10px;font-size:10px}.services-layout{grid-template-columns:.78fr 1.22fr;gap:9vw;margin-top:60px;display:grid}.sticky{align-self:start;margin:0;position:sticky;top:50px}.heading-copy{color:#888883;max-width:360px;margin:28px 0;font-size:14px;line-height:1.7}.service-list{border-top:1px solid var(--dark-line)}.service-list article{border-bottom:1px solid var(--dark-line);grid-template-columns:45px 1fr 30px;gap:25px;padding:35px 0;display:grid}.service-list article>span{color:var(--lime);font-size:10px}.service-list h3{text-transform:capitalize;margin:0 0 12px;font:500 25px Manrope}.service-list p{color:#878782;max-width:510px;margin:0;font-size:13px;line-height:1.65}.service-list b{color:var(--lime);font-weight:400}.row-heading{justify-content:space-between;align-items:end;gap:30px;display:flex}.featured-grid{grid-template-columns:repeat(2,1fr);gap:70px 25px;margin-top:75px;display:grid}.project-card.wide{grid-column:span 2}.project-card>a{display:block}.project-image{background:#d8d3c8;height:360px;position:relative;overflow:hidden}.project-card.wide .project-image{height:590px}.project-image img,.mini-image img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s}.project-image span{background:var(--lime);opacity:0;border-radius:99px;padding:13px 16px;font-size:10px;transition:all .3s;position:absolute;bottom:20px;right:20px;transform:translateY(8px)}.project-card:hover .project-image img{filter:saturate(1.1);transform:scale(1.025)}.project-card:hover .project-image span{opacity:1;transform:none}.project-meta{grid-template-columns:.6fr 1fr;gap:20px;padding-top:18px;display:grid}.project-meta small,.mini-card small{text-transform:uppercase;letter-spacing:.16em;color:var(--blue);font-size:9px}.project-meta h3,.mini-card h3{margin:4px 0;font:600 25px Manrope}.project-meta p{color:#6b6b65;margin:0;font-size:12px;line-height:1.6}.tech{flex-wrap:wrap;grid-column:2;gap:6px;display:flex}.portfolio .tech span{border-color:var(--dark-line);color:#8b8b86}.project-count{color:#777;font-size:11px}.filters{flex-wrap:wrap;gap:8px;margin:55px 0 35px;display:flex}.filters button{border:1px solid var(--dark-line);cursor:pointer;background:0 0;border-radius:99px;padding:10px 15px;font-size:10px}.filters button.active,.filters button:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}.portfolio-grid{grid-template-columns:repeat(3,1fr);gap:45px 18px;display:grid}.mini-image{background:#242421;height:240px;margin-bottom:16px;position:relative;overflow:hidden}.mini-image span{background:var(--lime);width:33px;height:33px;color:var(--ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:14px;right:14px}.mini-card:hover img{transform:scale(1.04)}.mini-card h3{font-size:20px}.mini-card p{color:#888;min-height:54px;font-size:11px;line-height:1.6}.mini-card .tech{margin-top:12px}.teaching-grid{grid-template-columns:1fr .72fr;gap:10vw;margin-top:70px;display:grid}.teaching-grid>div:last-child>p{color:#5f5f59;font-size:18px;line-height:1.75}.teaching-list{border-top:1px solid var(--line);margin-top:35px}.teaching-list span{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.1em;padding:14px 0;font-size:12px;display:block}.contact{grid-template-columns:1fr .72fr;gap:9vw;padding-top:140px;display:grid}.contact-intro>p{color:var(--lime)}.contact-links{grid-template-columns:1fr 1fr;gap:12px 35px;max-width:520px;margin-top:55px;display:grid}.contact-links a{border-bottom:1px solid var(--dark-line);padding:12px 0;font-size:11px}.contact form{border-top:1px solid var(--dark-line);padding-top:20px}.contact label{text-transform:uppercase;letter-spacing:.13em;color:#8f8f89;margin-bottom:22px;font-size:10px;display:block}.contact input,.contact textarea,.contact select{border:0;border-bottom:1px solid var(--dark-line);color:#fff;background:0 0;border-radius:0;outline:0;width:100%;padding:12px 0;display:block}.contact input:focus,.contact textarea:focus,.contact select:focus{border-color:var(--lime)}.contact option{color:#111}.contact textarea{resize:vertical}.contact .button{width:100%;margin-top:8px}.form-note{color:#777;text-align:center;font-size:9px}footer{color:#fff;padding:35px max(34px,calc((100vw - var(--max))/2 + 34px));background:#090909;border-top:1px solid #222;align-items:center;gap:30px;display:flex}footer p{color:#777;margin:auto;font-size:10px}footer>div{gap:22px;font-size:10px;display:flex}.content-studio{background:var(--paper);min-height:100vh;padding:60px max(25px,50vw - 500px)}.studio-head{justify-content:space-between;align-items:center;margin-bottom:50px;display:flex}.content-studio h1{font-size:55px}.content-studio textarea{border:1px solid var(--line);background:#fff;width:100%;min-height:520px;padding:20px;font:12px/1.6 monospace}.studio-actions{gap:12px;margin-top:16px;display:flex}.studio-note{background:#fff8cd;margin-bottom:20px;padding:15px 18px;font-size:12px;line-height:1.6}.page-wipe{background:var(--lime);z-index:999;pointer-events:none;transform-origin:top;animation:.95s cubic-bezier(.76,0,.24,1) 80ms forwards page-wipe;position:fixed;inset:0}.scroll-progress{background:var(--lime);z-index:1001;transform-origin:0;will-change:transform;width:100%;height:3px;position:fixed;top:0;left:0;transform:scaleX(0)}@keyframes page-wipe{to{transform:scaleY(0)}}.site-header{transition:background-color .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s,border-color .35s}.site-header.scrolled{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#12120fd1;border-color:#ffffff14;max-width:none;position:fixed}.brand>img{object-fit:contain;border-radius:50%;width:43px;height:43px}.site-header nav a,.header-cta,.button,.filters button{transition:transform .25s,background-color .25s,color .25s,border-color .25s,opacity .25s}.site-header nav a:hover,.header-cta:hover{transform:translateY(-2px)}.button:hover{transform:translateY(-3px)}.hero-orbit{translate:var(--mx,0) var(--my,0);transition:translate .75s cubic-bezier(.2,.75,.25,1)}.hero-visual{transform:translate(calc(var(--mx,0) * -.35),calc(var(--my,0) * -.35));transition:transform .85s cubic-bezier(.2,.75,.25,1)}.eyebrow span{animation:2.2s ease-in-out infinite status-pulse}.floating-note{animation:5.2s ease-in-out infinite float-note}.note-two{animation-delay:-2.5s}@keyframes status-pulse{50%{box-shadow:0 0 25px var(--lime);transform:scale(1.25)}}@keyframes float-note{50%{translate:0 -8px}}.hero:after{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:72px 72px;animation:18s linear infinite grid-drift;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(circle at 70% 42%,#000 0,#0000 65%);mask-image:radial-gradient(circle at 70% 42%,#000 0,#0000 65%)}.hero-copy,.hero-visual,.hero-footer{z-index:2}@keyframes grid-drift{to{transform:translate(72px,72px)}}.cursor-glow{z-index:8;pointer-events:none;mix-blend-mode:screen;will-change:transform;background:radial-gradient(circle,#c8ff3d17,#0000 67%);border-radius:50%;width:380px;height:380px;position:fixed;top:-190px;left:-190px}.project-card>a,.mini-card>a,.skill-grid article{isolation:isolate;will-change:transform;position:relative}.project-card>a:before,.mini-card>a:before,.skill-grid article:before{content:"";z-index:3;pointer-events:none;opacity:0;background:radial-gradient(240px circle at var(--spot-x,50%) var(--spot-y,50%),#c8ff3d26,transparent 70%);transition:opacity .35s;position:absolute;inset:0}.project-card>a:hover:before,.mini-card>a:hover:before,.skill-grid article:hover:before{opacity:1}.skill-grid article{overflow:hidden}.chips span{transition:transform .25s,border-color .25s,background-color .25s}.skill-grid article:hover .chips span{border-color:color-mix(in srgb,var(--blue) 45%,transparent);background:#5457ff0a}.skill-grid article:hover .chips span:nth-child(2n){transform:translateY(-2px)}.section-heading h2,.about-grid h2,.teaching-grid h2,.contact h2{background-size:240% 100%}.timeline-row h3,.service-list h3,.project-meta h3,.mini-card h3{transition:letter-spacing .3s,color .3s}.timeline-row:hover h3,.service-list article:hover h3,.project-card:hover h3,.mini-card:hover h3{letter-spacing:-.025em}.timeline-row:after,.service-list article:after{content:"";background:var(--lime);transform-origin:0;width:100%;height:1px;transition:transform .5s cubic-bezier(.2,.75,.25,1);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.timeline-row,.service-list article{position:relative}.timeline-row:hover:after,.service-list article:hover:after{transform:scaleX(1)}.project-card,.mini-card{transition:transform .45s cubic-bezier(.2,.75,.25,1)}.project-card:hover,.mini-card:hover{transform:translateY(-7px)}.project-image:after,.mini-image:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#ffffff52 50%,#0000 65%);transition:transform .85s cubic-bezier(.2,.75,.25,1);position:absolute;inset:0;transform:translate(-120%)}.project-card:hover .project-image:after,.mini-card:hover .mini-image:after{transform:translate(120%)}.service-list article{transition:padding-left .3s,background-color .3s}.service-list article:hover{background:#ffffff06;padding-left:14px}.service-list article b{transition:transform .3s}.service-list article:hover b{transform:translate(4px,-4px)}.contact-links a,.inline-link{transition:color .25s,padding-left .25s}.contact-links a:hover,.inline-link:hover{color:var(--lime);padding-left:5px}[data-reveal]{opacity:0;filter:blur(5px);transition:opacity .8s,transform .9s cubic-bezier(.2,.75,.25,1),filter .8s;transform:translateY(34px)}[data-reveal][data-visible=true]{opacity:1;filter:none;transform:none}.timeline-row[data-reveal],.service-list article[data-reveal],.skill-grid article[data-reveal]{transition-delay:calc(var(--stagger,0) * 70ms)}@media (width<=900px){.cursor-glow{display:none}.site-header{padding:0 22px}.site-header nav{background:#232320;flex-direction:column;padding:25px;display:none;position:absolute;top:75px;left:20px;right:20px}.site-header nav.open{display:flex}.menu-toggle{color:#fff;display:block}.header-cta{display:none}.hero{grid-template-columns:1fr;padding-top:150px}.hero-visual{width:400px;max-width:100%;margin:20px auto 70px}.hero-footer{display:none}.about-grid,.services-layout,.teaching-grid,.contact{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.skill-grid{grid-template-columns:1fr}.skill-grid article{border-right:0;border-bottom:1px solid var(--line)}.sticky{position:static}.portfolio-grid{grid-template-columns:1fr 1fr}.contact{gap:70px}.project-card.wide .project-image{height:460px}}@media (width<=620px){.section{padding:88px 20px}.hero{min-height:900px;padding:135px 20px 70px}.hero-copy{min-width:0}.hero h1{font-size:50px}.hero-intro{overflow-wrap:anywhere;max-width:100%;font-size:15px}.hero-actions{flex-direction:column;align-items:flex-start}.portrait-frame{width:280px;height:360px}.floating-note{padding:10px 12px}.note-one{left:0}.note-two{right:0}.marquee div{font-size:11px}.about-grid{margin:50px 0}.stats{grid-template-columns:1fr}.stats>div{border-right:0;border-bottom:1px solid var(--line)}.timeline-row{grid-template-columns:35px 1fr;gap:15px}.timeline-period,.timeline-row>div:last-child{grid-column:2}.featured-grid,.portfolio-grid{grid-template-columns:1fr}.project-card.wide{grid-column:auto}.project-card.wide .project-image,.project-image{height:300px}.project-meta{grid-template-columns:1fr}.project-meta p,.tech{grid-column:1}.row-heading{flex-direction:column;align-items:flex-start}.contact-links{grid-template-columns:1fr}.site-header{height:72px}.brand small{display:none}footer{flex-direction:column;align-items:flex-start}footer p{margin:0}footer>div{flex-wrap:wrap}.content-studio h1{font-size:38px}.studio-head{flex-direction:column;align-items:flex-start;gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.page-wipe,.cursor-glow{display:none}.hero-visual,.hero-orbit{transform:translate(0,0)!important}[data-reveal]{opacity:1;filter:none;transform:none}}.portrait-frame img{object-fit:cover;object-position:50% 28%;transform-origin:50%;filter:contrast(1.04)saturate(.96);width:100%;height:100%;transform:scale(1.02)}.header-cta{isolation:isolate;position:relative;overflow:hidden}.header-cta:before{content:"";background:var(--lime);z-index:-1;transition:transform .38s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0;transform:translate(-105%)}.header-cta span{transition:transform .35s,color .25s;display:inline-block}.header-cta:hover{color:var(--ink);border-color:var(--lime);box-shadow:0 10px 30px #c8ff3d2e}.header-cta:hover:before{transform:none}.header-cta:hover span{color:var(--ink);transform:translate(3px,-3px)rotate(8deg)}.tech-badge{border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));color:#4d4d49;background:color-mix(in srgb,var(--paper) 85%,#fff);border-radius:8px;align-items:center;gap:8px;padding:6px 10px 6px 7px;font-size:10px;transition:transform .25s,border-color .25s,box-shadow .25s;display:inline-flex}.tech-badge i{background:linear-gradient(135deg,var(--blue),#2ebff3);color:#fff;border-radius:6px;place-items:center;min-width:24px;height:24px;padding:0 4px;font:700 9px Manrope;display:grid;box-shadow:0 5px 14px #5457ff33}.tech-badge:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 8px 22px #5457ff1f}.tech-badge.compact{background:0 0;border-radius:7px;padding:4px 8px 4px 5px;font-size:9px}.tech-badge.compact i{border-radius:5px;min-width:20px;height:20px;font-size:8px}.portfolio .tech-badge{color:#d7dbe3;background:#2a5b9a17;border-color:#54a7ff4d}.skill-grid article:hover .tech-badge{border-color:color-mix(in srgb,var(--blue) 55%,transparent);background:#5457ff0d}.skill-grid article:hover .tech-badge:nth-child(2n){transform:translateY(-2px)}.project-placeholder{text-align:center;color:#fff;background:radial-gradient(circle at 40% 30%,#5457ff47,#0000 38%),linear-gradient(145deg,#23231f,#11110f);place-content:center;gap:10px;width:100%;height:100%;display:grid}.project-placeholder>span{letter-spacing:-.06em;color:var(--lime);font:700 44px Manrope}.project-placeholder small{text-transform:uppercase;letter-spacing:.13em;color:#97978f;font-size:9px}.about{isolation:isolate;background:radial-gradient(circle at 86% 24%,#5457ff1a,#0000 30%),linear-gradient(135deg,#fff6,#0000 55%);position:relative;overflow:hidden}.about>:not(.about-code-bg){z-index:2;position:relative}.about-code-bg{z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.1;gap:25px;display:grid;position:absolute;inset:35px 0 auto 38%;transform:rotate(-5deg)}.about-code-bg code{white-space:nowrap;color:var(--blue);border-left:2px solid var(--blue);background:linear-gradient(90deg,#5457ff24,#0000);padding:13px 18px;font:500 clamp(14px,1.5vw,24px)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.about:after{content:"</>";letter-spacing:-.14em;color:#12120f06;z-index:0;pointer-events:none;font:800 clamp(180px,30vw,470px)/1 Manrope;position:absolute;bottom:-8vw;right:-2vw}.stats{isolation:isolate;perspective:900px;background:linear-gradient(110deg,color-mix(in srgb,var(--paper) 94%,var(--lime)),var(--paper));position:relative;overflow:hidden}.stats:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 42%,color-mix(in srgb,var(--lime) 14%,transparent) 50%,transparent 58%);animation:8s ease-in-out infinite stats-sweep;position:absolute;inset:-100% -20%}.stats>div{transition:background .35s,transform .35s,border-color .35s;position:relative;overflow:hidden}.stats>div:after{content:"";background:var(--lime);transform-origin:0;height:3px;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.stats>div:hover{background:color-mix(in srgb,var(--lime) 12%,transparent);border-color:color-mix(in srgb,var(--lime) 60%,var(--line));transform:translateY(-5px)}.stats>div:hover:after{transform:scaleX(1)}.stats strong{transition:color .3s,transform .35s}.stats>div:hover strong{color:color-mix(in srgb,var(--lime) 78%,#2d350c);transform:scale(1.04)}@keyframes stats-sweep{0%,25%{transform:translate(-28%)}70%,to{transform:translate(28%)}}@media (prefers-reduced-motion:reduce){.stats:before{animation:none}.stats>div{transform:none!important}}.skills{background:var(--ink);color:#f7f7f3}.skills .section-label{border-color:color-mix(in srgb,var(--lime) 32%,transparent);color:#aaa9a4}.skills .section-label span,.skills .section-heading>p,.skills .section-heading h2 em{color:var(--lime)}.skill-cards{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:70px;display:grid}.skill-card{border:1px solid color-mix(in srgb,var(--lime) 38%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 13%,#171714),#0d0d0b);border-radius:12px;min-height:238px;padding:24px 22px 20px;transition:transform .4s cubic-bezier(.2,.75,.25,1),border-color .35s,box-shadow .35s;position:relative;overflow:hidden;box-shadow:0 16px 45px #0003}.skill-card:before{content:"";pointer-events:none;opacity:0;background:radial-gradient(280px circle at var(--spot-x,50%) var(--spot-y,50%),color-mix(in srgb,var(--lime) 24%,transparent),transparent 65%);transition:opacity .35s;position:absolute;inset:0}.skill-card:hover{border-color:var(--lime);box-shadow:0 22px 55px color-mix(in srgb,var(--lime) 18%,transparent);transform:translateY(-8px)}.skill-card:hover:before{opacity:1}.skill-icon{background:linear-gradient(135deg,var(--blue),var(--lime));color:#fff;width:44px;height:44px;box-shadow:0 9px 24px color-mix(in srgb,var(--lime) 24%,transparent);border-radius:9px;place-items:center;margin-bottom:18px;font:800 12px Manrope;transition:transform .35s;display:grid}.skill-card:hover .skill-icon{transform:rotate(-6deg)scale(1.08)}.skill-card h3{letter-spacing:-.025em;margin:0 0 10px;font:600 20px Manrope;position:relative}.skill-card p{color:#aaa9a4;margin:0;font-size:13px;line-height:1.65;position:relative}.skill-meter{background:#ffffff24;border-radius:99px;height:7px;position:absolute;bottom:20px;left:22px;right:22px;overflow:hidden}.skill-meter span{border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--lime));transform-origin:0;height:100%;transition:transform 1s cubic-bezier(.2,.75,.25,1) calc(var(--stagger,0) * 60ms);display:block;transform:scaleX(0)}.skill-card[data-visible=true] .skill-meter span{transform:scaleX(1)}.services .section-heading h2{font-size:clamp(40px,4.6vw,66px);line-height:.98}.featured{display:none!important}.project-card{border:1px solid color-mix(in srgb,var(--blue) 32%,var(--line));background:#ffffff57;border-radius:14px;padding:12px;box-shadow:0 18px 55px #12120f0f}.project-card>a{flex-direction:column;height:100%;display:flex}.project-card .project-image,.mini-card .mini-image{border-radius:9px}.project-card .project-meta{padding:22px 10px 10px}.project-visit{letter-spacing:.12em;text-transform:uppercase;border:1px solid;border-radius:99px;justify-content:space-between;align-items:center;gap:18px;width:max-content;margin-top:18px;padding:10px 13px;font:700 9px Manrope;transition:background .25s,color .25s,transform .25s;display:inline-flex}.project-visit b{font-size:14px;transition:transform .3s}.project-card:hover .project-visit{background:var(--ink);color:#fff;transform:translateY(-2px)}.project-card .project-visit{border-color:var(--blue);color:var(--blue);grid-column:2;justify-self:start;margin-top:0}.project-card:hover .project-visit b,.mini-card:hover .project-visit b{transform:translate(3px,-3px)}.mini-card{border:1px solid color-mix(in srgb,var(--lime) 34%,transparent);background:linear-gradient(145deg,#ffffff09,color-mix(in srgb,var(--blue) 7%,transparent));border-radius:14px;min-width:0;padding:12px;box-shadow:0 17px 45px #0000001f}.mini-card>a{flex-direction:column;height:100%;padding-bottom:5px;display:flex}.mini-card small,.mini-card h3,.mini-card p,.mini-card .tech,.mini-card .project-visit{margin-left:7px;margin-right:7px}.mini-card .tech{grid-column:auto;margin-bottom:20px}.mini-card .project-visit{color:#fff;border-color:var(--lime);align-self:flex-start;margin-top:auto;padding:10px 14px}.mini-card:hover{border-color:var(--lime);box-shadow:0 24px 60px color-mix(in srgb,var(--lime) 17%,transparent)}.mini-card:hover .project-visit{background:var(--lime);border-color:var(--lime);color:var(--ink)}.teaching{isolation:isolate;background:radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--lime) 24%,transparent),transparent 31%), radial-gradient(circle at 8% 82%,color-mix(in srgb,var(--blue) 14%,transparent),transparent 28%), linear-gradient(135deg,color-mix(in srgb,var(--blue) 7%,var(--paper)),var(--paper));position:relative;overflow:hidden}.teaching>*{z-index:2;position:relative}.teaching:before{content:"";z-index:0;pointer-events:none;opacity:.46;background-image:linear-gradient(color-mix(in srgb,var(--blue) 20%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--lime) 18%,transparent) 1px,transparent 1px);background-size:70px 70px;animation:18s linear infinite training-grid-drift;position:absolute;inset:-30%;transform:rotate(-8deg)}.teaching:after{content:"</>";z-index:1;pointer-events:none;letter-spacing:-.14em;color:color-mix(in srgb,var(--blue) 9%,transparent);filter:drop-shadow(0 20px 45px color-mix(in srgb,var(--lime) 18%,transparent));font:800 clamp(150px,24vw,360px)/1 Manrope;animation:7s ease-in-out infinite training-code-float;position:absolute;top:8%;right:-2vw}@keyframes training-grid-drift{to{translate:70px 70px}}@keyframes training-code-float{50%{transform:translate(-18px,22px)rotate(2deg)}}.training-head{grid-template-columns:70px 1fr;align-items:start;gap:25px;margin-top:65px;display:grid}.training-icon{background:linear-gradient(135deg,var(--lime),var(--blue));width:58px;height:58px;color:var(--ink);box-shadow:0 14px 35px color-mix(in srgb,var(--blue) 28%,transparent);border-radius:50%;place-items:center;font-size:22px;animation:3.6s ease-in-out infinite training-icon-pulse;display:grid}.training-head .kicker{color:var(--blue);margin:0 0 15px}.training-head h2{font-size:clamp(44px,6vw,82px);font-weight:500}.training-head h2 em{color:var(--blue)}.training-list{border-top:1px solid var(--line);margin-top:70px}.training-list article{border-bottom:1px solid var(--line);grid-template-columns:60px minmax(0,1fr) minmax(180px,.45fr);align-items:center;gap:28px;padding:27px 18px;transition:background .35s,padding-left .35s,transform .35s,box-shadow .35s;display:grid;position:relative}.training-list article:before{content:"";background:linear-gradient(var(--lime),var(--blue));width:4px;transition:transform .35s;position:absolute;inset:0 auto 0 0;transform:scaleY(0)}.training-list article:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--lime) 14%,transparent),color-mix(in srgb,var(--blue) 8%,transparent));box-shadow:0 18px 45px color-mix(in srgb,var(--blue) 12%,transparent);padding-left:30px;transform:translate(7px)}.training-list article:hover:before{transform:scaleY(1)}.training-list article:hover h3{color:color-mix(in srgb,var(--blue) 72%,var(--ink))}.training-number{color:var(--blue);font:600 10px Manrope}.training-list h3{letter-spacing:-.025em;margin:0 0 6px;font:600 clamp(18px,2vw,25px) Manrope}.training-list p{color:#5f5f59;margin:0;font:italic 16px Georgia}.training-list time{color:#565f7d;font-size:12px;line-height:1.55}@keyframes training-icon-pulse{50%{box-shadow:0 20px 46px color-mix(in srgb,var(--lime) 34%,transparent);transform:translateY(-6px)rotate(7deg)}}.form-honeypot{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;position:absolute!important;left:-10000px!important}.hero-footer{justify-content:flex-end}@media (width<=900px){html{scroll-behavior:auto}.site-header nav.open{max-height:calc(100vh - 95px);overflow-y:auto;box-shadow:0 20px 45px #0000004d}.skill-cards{grid-template-columns:repeat(2,1fr)}.about-code-bg{opacity:.07;left:20%}.training-list article{grid-template-columns:45px 1fr}.training-list time{grid-column:2}}@media (width<=620px){.about-code-bg{display:none}.skill-cards{grid-template-columns:1fr;margin-top:45px}.skill-card{min-height:225px}.project-card{padding:9px}.project-card .project-visit{grid-column:1;margin-top:4px}.training-head{grid-template-columns:1fr;gap:18px}.training-list{margin-top:45px}.training-list article{grid-template-columns:35px 1fr;gap:14px;padding:22px 4px}.training-list article:hover{padding-left:10px}.training-list time{grid-column:2}}
