:root{--bg:#ffffff;--font:"Roboto Mono",ui-monospace,monospace;--ink:#161616;--ink-soft:rgba(22,22,22,0.6);--line:rgba(22,22,22,0.1);--surface:#fafafa;--card:#f5f5f3;--card-hover:#eeeeeb}*,:after,:before{box-sizing:border-box}body{margin:0;background-color:var(--bg);font-family:var(--font)}button,input,select,textarea{font-family:inherit}.navbar{position:fixed;top:0;width:100%;background-color:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;padding:1rem 0;border-bottom:1px solid var(--line)}.nav-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 2rem}.logo-img{height:40px;width:auto;display:block}.nav-menu{position:absolute;left:50%;transform:translateX(-50%);display:flex;list-style:none;margin:0;padding:.4rem;background-color:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:50px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.nav-item{margin:0}.nav-link{display:block;color:var(--ink-soft);text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:.3px;padding:.75rem 1.7rem;border-radius:50px;transition:color .25s ease,background-color .25s ease}.nav-link:hover{color:var(--ink);background-color:rgba(22,22,22,.05)}.nav-link.active{color:#ffffff;background-color:var(--ink)}.nav-buttons{display:flex;gap:1rem;align-items:center}.hamburger{display:none;flex-direction:column;gap:4px;padding:8px;background:none;border:0;cursor:pointer;z-index:1001}.bar{width:25px;height:3px;background-color:var(--ink);border-radius:2px;transition:all .3s ease}.hamburger.is-active .bar:nth-child(2){opacity:0}.hamburger.is-active .bar:first-child{transform:translateY(7px) rotate(45deg)}.hamburger.is-active .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{position:fixed;top:72px;left:0;width:100%;height:calc(100vh - 72px);height:calc(100dvh - 72px);background-color:rgba(255,255,255,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;overflow-y:auto}.mobile-menu.active{opacity:1;visibility:visible}.mobile-menu-content{padding:2rem 1.5rem;max-width:500px;margin:0 auto}.mobile-nav-items{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.mobile-nav-item{display:block;background-color:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.5rem;text-decoration:none;transition:background-color .25s ease,border-color .25s ease}.mobile-nav-item:hover{background-color:var(--card-hover);border-color:rgba(22,22,22,.18)}.mobile-nav-title{display:block;color:var(--ink);font-size:1rem;font-weight:600;margin-bottom:.3rem}.mobile-nav-desc{display:block;color:rgba(22,22,22,.55);font-size:.85rem}.mobile-menu-buttons{display:flex;flex-direction:column;gap:1rem;margin-top:2.5rem}@media (max-width:900px){.nav-buttons,.nav-menu{display:none}.hamburger{display:flex}.nav-container{padding:0 1.25rem}}@media (prefers-reduced-motion:reduce){.bar,.mobile-menu,.nav-link{transition:none}}.experience-section{min-height:100vh;display:flex;align-items:center;padding:4rem 0}.experience-container{max-width:1200px;margin:0 auto;padding:0 2rem;width:100%}.experience-header{margin-bottom:4rem}.experience-accent-line{width:4px;height:80px;background-color:#f15a24;margin-bottom:2rem}.experience-title{font-size:4rem;font-weight:700;color:var(--ink);line-height:1.1}.title-dot{color:#f15a24}.timeline{position:relative;padding-left:2rem}.timeline-item{display:flex;gap:3rem;margin-bottom:4rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-left{position:relative;display:flex;flex-direction:column;align-items:center;min-width:100px}.timeline-dot{width:20px;height:20px;background-color:#f15a24;border-radius:50%;border:4px solid #ffffff;box-shadow:0 0 0 2px #f15a24;position:relative;z-index:2}.timeline-line{width:2px;flex-grow:1;background:linear-gradient(180deg,#f15a24,rgba(241,90,36,.2));margin-top:1rem;min-height:200px}.timeline-item:last-child .timeline-line{display:none}.year-badge{font-size:2rem;font-weight:700;color:#ffffff;margin-top:1rem;text-align:center}.timeline-right{flex:1 1;padding-top:.5rem}.job-card{background:var(--card);border:1px solid rgba(241,90,36,.3);border-radius:12px;padding:2rem;transition:all .3s ease}.job-card:hover{background:var(--card-hover);border-color:rgba(241,90,36,.6);transform:translateY(-5px);box-shadow:0 10px 30px rgba(241,90,36,.2)}.job-role{font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:1rem}.job-description{font-size:.95rem;color:#444444;line-height:1.6;margin-bottom:1.5rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.tech-tag{font-size:.8rem;color:#f15a24;background:rgba(241,90,36,.1);border:1px solid rgba(241,90,36,.3);padding:.4rem 1rem;border-radius:20px;transition:all .3s ease}.tech-tag:hover{background:rgba(241,90,36,.2);border-color:#f15a24;transform:translateY(-2px)}.achievements{border-top:1px solid rgba(241,90,36,.2);padding-top:1.5rem}.achievement-title{font-size:1rem;font-weight:600;color:#f15a24;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.achievement-icon{color:#f15a24;font-size:1.2rem}.achievement-list{list-style:none;padding-left:0}.achievement-list li{font-size:.9rem;color:#555555;line-height:1.6;padding-left:1.5rem;margin-bottom:.75rem;position:relative}.achievement-list li:before{content:"→";color:#f15a24;position:absolute;left:0;font-weight:700}.achievement-list li:last-child{margin-bottom:0}.site-footer{height:26vh;margin:.1rem}.site-footer p{text-align:center}@media (max-width:1024px){.nav-menu{gap:0}.nav-link{padding:.8rem 1.2rem;font-size:.85rem}.nav-buttons{gap:.5rem}}@media (max-width:768px){.hamburger{display:flex}.nav-buttons,.nav-menu{display:none}.experience-title{font-size:3rem}.timeline-item{gap:2rem}.timeline-left{min-width:80px}.year-badge{font-size:1.5rem}.job-card{padding:1.5rem}.job-role{font-size:1.3rem}.job-description{font-size:.9rem}}@media (max-width:480px){.experience-container{padding:0 1rem}.experience-title{font-size:2.5rem}.timeline{padding-left:1rem}.timeline-item{gap:1.5rem;margin-bottom:3rem}.timeline-left{min-width:60px}.timeline-dot{width:16px;height:16px}.year-badge{font-size:1.2rem}.job-card{padding:1.25rem}.job-role{font-size:1.1rem}.job-description{font-size:.85rem}.tech-tag{font-size:.75rem;padding:.3rem .8rem}.achievement-list li{font-size:.85rem}}.lego--red{--b-face:#e3000b;--b-light:#ff3b42;--b-side:#a10008;--b-edge:#6b0005;--b-text:#ffffff}.lego--yellow{--b-face:#ffc20e;--b-light:#ffd84a;--b-side:#c79000;--b-edge:#8a6400;--b-text:#141414}.lego--green{--b-face:#1f9d3d;--b-light:#39b957;--b-side:#13702a;--b-edge:#0b4a1b;--b-text:#ffffff}.lego--blue{--b-face:#1e5fd8;--b-light:#4a84ee;--b-side:#13429c;--b-edge:#0b2c6b;--b-text:#ffffff}.lego--black{--b-face:#1b1b1b;--b-light:#3a3a3a;--b-side:#000000;--b-edge:#000000;--b-text:#ffffff}.lego--white{--b-face:#ffffff;--b-light:#ffffff;--b-side:#d9d9d6;--b-edge:#161616;--b-text:#161616}.lego-btn{--stud-w:1.35em;--base:6px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55em;margin-top:.6em;padding:.85em 1.6em;font-family:var(--font);font-size:.95rem;font-weight:700;line-height:1;letter-spacing:.01em;color:var(--b-text);text-decoration:none;white-space:nowrap;cursor:pointer;background:linear-gradient(180deg,var(--b-light) 0,var(--b-face) 42%,var(--b-face) 100%);border:1.5px solid var(--b-edge);border-radius:6px;box-shadow:inset 0 2px 0 rgba(255,255,255,.35),inset 0 -2px 0 rgba(0,0,0,.12),0 var(--base) 0 var(--b-side),0 var(--base) 0 1.5px var(--b-edge),0 calc(var(--base) + 8px) 16px rgba(0,0,0,.16);transition:transform .12s ease,box-shadow .12s ease}.lego-btn:after,.lego-btn:before{content:"";position:absolute;top:-.5em;width:var(--stud-w);height:.5em;background:linear-gradient(90deg,var(--b-light) 0,var(--b-face) 45%,var(--b-side) 100%);border:1.5px solid var(--b-edge);border-bottom:none;border-radius:.7em .7em 2px 2px/.35em .35em 2px 2px;box-shadow:inset 0 2px 0 rgba(255,255,255,.4)}.lego-btn:before{left:18%}.lego-btn:after{right:18%}.lego-btn i{font-size:.9em;transition:transform .2s ease}.lego-btn:hover{transform:translateY(-2px);box-shadow:inset 0 2px 0 rgba(255,255,255,.35),inset 0 -2px 0 rgba(0,0,0,.12),0 calc(var(--base) + 2px) 0 var(--b-side),0 calc(var(--base) + 2px) 0 1.5px var(--b-edge),0 calc(var(--base) + 12px) 20px rgba(0,0,0,.16)}.lego-btn:hover .lego-btn-arrow{transform:translateX(3px)}.lego-btn:active{transform:translateY(calc(var(--base) - 1px));box-shadow:inset 0 2px 0 rgba(255,255,255,.35),inset 0 -2px 0 rgba(0,0,0,.12),0 1px 0 var(--b-side),0 1px 0 1.5px var(--b-edge),0 3px 6px rgba(0,0,0,.18)}.lego-btn:focus-visible{outline:3px solid #ffc20e;outline-offset:5px}.lego-btn--sm{font-size:.85rem;padding:.75em 1.3em;--base:5px}.lego-btn--block{display:flex;width:100%;font-size:1rem;padding:1em 1.5em}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1.5rem,4svh,2.75rem);padding:calc(72px + clamp(2.5rem, 7svh, 4.5rem)) 1rem 3.5rem;text-align:center;overflow-x:clip}.hero-stage{position:relative;perspective:1400px;perspective-origin:50% 20%;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(2.1rem,min(8.2vw,9.5svh),5.6rem);letter-spacing:-.045em;word-spacing:.1em;line-height:1}.hero-stack{position:relative;display:flex;flex-direction:column;align-items:center;transform-style:preserve-3d;transform:rotateX(calc(-14deg + var(--tilt-y, 0deg))) rotateY(calc(10deg + var(--tilt-x, 0deg)));transition:transform .6s cubic-bezier(.2,.7,.3,1)}.hero-stage:after{content:"";position:absolute;left:8%;right:8%;bottom:-.35em;height:.5em;background:radial-gradient(closest-side,rgba(0,0,0,.28),transparent);filter:blur(6px);z-index:-1;animation:heroShadow 2.4s ease-out both}.brick-drop{animation:brickDrop .9s both;animation-delay:calc(var(--order) * .32s + .15s)}.brick,.brick-drop{transform-style:preserve-3d}.brick{--depth:0.95em;--studs:4;position:relative;transform:translateX(var(--shift,0)) rotate(var(--rot,0deg));color:var(--b-text)}.brick-front{position:relative;display:block;min-width:var(--min-w,auto);padding:.16em .42em .14em;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 30%,transparent 75%,rgba(0,0,0,.1)),var(--b-face);border-radius:.06em;box-shadow:inset 0 .03em 0 rgba(255,255,255,.35),inset 0 -.03em 0 rgba(0,0,0,.18);white-space:nowrap;text-shadow:0 .025em 0 rgba(0,0,0,.12)}.brick-left,.brick-right,.brick-top{position:absolute;pointer-events:none}.brick-top{left:0;right:0;top:0;height:var(--depth);transform-origin:top center;transform:rotateX(-90deg);background:linear-gradient(0deg,var(--b-light),var(--b-face))}.brick-left,.brick-right{top:0;bottom:0;width:var(--depth);background:linear-gradient(90deg,var(--b-side),var(--b-face))}.brick-left{left:0;transform-origin:left center;transform:rotateY(90deg)}.brick-right{right:0;transform-origin:right center;transform:rotateY(-90deg);background:var(--b-side)}.brick-studs{position:absolute;left:.3em;right:.3em;top:0;height:0;display:flex;justify-content:space-around;transform-style:preserve-3d;transform:translateZ(calc(var(--depth) / -2))}.stud{position:relative;width:.62em;height:.2em;transform:translateY(-100%);transform-style:preserve-3d;background:linear-gradient(90deg,var(--b-light) 0,var(--b-face) 40%,var(--b-side) 100%);border-radius:0 0 .04em .04em}.stud:before{content:"";position:absolute;left:0;top:0;width:.62em;height:.62em;border-radius:50%;transform:translateY(-50%) rotateX(90deg);background:radial-gradient(circle at 40% 40%,var(--b-light),var(--b-face) 70%);box-shadow:inset 0 0 0 .02em rgba(0,0,0,.12)}.hero-title{margin:0;font-family:var(--font);font-weight:700;font-size:clamp(1.45rem,3.6vw,2.6rem);line-height:1.15;letter-spacing:-.03em;color:var(--ink);animation:heroFadeUp .7s ease-out both;animation-delay:1.55s}.hero-title>span{display:block;color:#9b9b9b}.hero-dot{color:#f15a24}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 1.25rem;animation:heroFadeUp .7s ease-out both;animation-delay:1.75s}@keyframes brickDrop{0%{transform:translate3d(0,-115vh,0) rotate(var(--spin,6deg));animation-timing-function:cubic-bezier(.55,0,.9,.45)}62%{transform:translateZ(0) rotate(0deg);animation-timing-function:ease-out}74%{transform:translate3d(0,-.12em,0) rotate(calc(var(--spin, 6deg) / -6));animation-timing-function:ease-in}86%{transform:translateZ(0);animation-timing-function:ease-out}93%{transform:translate3d(0,-.03em,0);animation-timing-function:ease-in}to{transform:translateZ(0)}}@keyframes heroShadow{0%,20%{opacity:0;transform:scaleX(.5)}to{opacity:1;transform:scaleX(1)}}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.hero-stage{font-size:clamp(2.1rem,12.5vw,3.6rem)}.hero-stack{transform:rotateX(-12deg) rotateY(8deg)}.lego-btn{font-size:.88rem}}@media (prefers-reduced-motion:reduce){.brick-drop,.hero-actions,.hero-stage:after,.hero-title{animation:none}.hero-stack,.lego-btn,.lego-btn i{transition:none}}.hero{position:relative}.hero>:not(.hero-deco){position:relative;z-index:1}.hero-deco{inset:0;z-index:0;pointer-events:none;font-size:clamp(2.1rem,min(8.2vw,9.5svh),5.6rem);color:var(--ink)}.deco,.hero-deco{position:absolute}.deco{left:clamp(calc(var(--m, .6) * 1em + .5rem),calc(50% + var(--x) * 1em),calc(100% - var(--m, .6) * 1em - .5rem));top:calc(50% + .35em + var(--y) * 1em);transform:translate(-50%,-50%) translate(calc(var(--px, 0) * var(--d) * 1px),calc(var(--py, 0) * var(--d) * 1px));transition:transform .7s cubic-bezier(.2,.7,.3,1);line-height:1}.deco-pop{animation:decoPop .6s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(1.5s + var(--delay) * .09s)}.bob{animation:bob 5.5s ease-in-out infinite}.bob--slow{animation-duration:7.5s;animation-direction:alternate-reverse}.lb{position:relative;width:1em;height:1em;perspective:7em}.lb--blur{filter:blur(3px);opacity:.9}.lb-body{top:.25em;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry)) rotate(var(--rz))}.lb-body,.lb-face{position:absolute;left:0;width:1em;height:.6em}.lb-face{top:0;border-radius:.03em;box-shadow:inset 0 0 0 .012em rgba(0,0,0,.08)}.lb-front{background:linear-gradient(180deg,var(--b-light),var(--b-face) 35%);transform:translateZ(.5em)}.lb-back{background:var(--b-side);transform:rotateY(180deg) translateZ(.5em)}.lb-left{transform:rotateY(-90deg) translateZ(.5em)}.lb-left,.lb-right{background:linear-gradient(180deg,var(--b-face),var(--b-side))}.lb-right{transform:rotateY(90deg) translateZ(.5em)}.lb-top{height:1em;top:-.2em;transform:rotateX(90deg) translateZ(.3em);background:var(--b-light);display:grid;grid-template-columns:1fr 1fr;place-items:center;padding:.1em}.lb-stud,.lb-top{transform-style:preserve-3d}.lb-stud{position:relative;width:.3em;height:.3em}.lb-stud>span{position:absolute;inset:0;border-radius:50%;background:var(--b-side);transform:translateZ(calc(var(--k) * .045em))}.lb-stud>.lb-cap{background:radial-gradient(circle at 38% 38%,#ffffff55,transparent 55%),var(--b-light);box-shadow:inset 0 0 0 .015em rgba(0,0,0,.12)}.sticky{width:4.9em;padding:.75em .7em .6em .8em;display:flex;flex-direction:column;gap:.05em;font-family:Caveat,Comic Sans MS,cursive;font-weight:600;font-size:.36em;text-transform:uppercase;letter-spacing:.04em;line-height:1.08;color:#1d1d1d;background:linear-gradient(170deg,#fbf3e2,#f2e6cb);border-radius:3px;transform:rotate(-11deg);box-shadow:0 1px 1px rgba(0,0,0,.06),0 10px 24px rgba(0,0,0,.14)}.sticky span{display:flex;align-items:center;justify-content:space-between;font-size:1em}.sticky .doodle{width:1.15em;height:1.15em}.note{font-family:Caveat,Comic Sans MS,cursive;font-weight:500;font-size:.42em;line-height:1.02;color:#1d1d1d;transform:rotate(-9deg);white-space:nowrap}.note--sm{font-size:.3em;transform:rotate(-12deg)}.note .doodle{display:block;width:2.6em;height:.45em;margin-top:.08em}.lego-head{display:block;width:2em;height:auto;transform:rotate(-6deg);filter:drop-shadow(0 .12em .14em rgba(0,0,0,.22));-webkit-user-select:none;-moz-user-select:none;user-select:none}.doodle{display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.doodle--thin{stroke-width:2.4}.doodle--fill path{fill:#ffffff}.doodle circle,.doodle path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .7s ease-out forwards;animation-delay:calc(1.7s + var(--delay, 0) * .09s)}.checker{display:block;fill:currentColor;transform:rotate(-8deg) skewX(-4deg)}@keyframes decoPop{0%{opacity:0;transform:scale(.4) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes bob{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-.12em) rotate(3deg)}}@keyframes draw{to{stroke-dashoffset:0}}@media (max-width:1100px){.deco--wide{display:none}}@media (max-width:760px){.deco--mid{display:none}.hero-deco{font-size:2.6rem}.deco--keep{opacity:.95}
    /* !important: these override the desktop positions set on each element */.deco--brick:first-child{--x:-3.4!important;--y:-6.6!important}.deco--brick:nth-child(4){--x:-4.3!important;--y:5.4!important}.deco--brick:nth-child(6){display:none}.deco--brick:nth-child(13){--x:3.5!important;--y:-6!important}.deco--brick:nth-child(15){--x:4.4!important;--y:4.4!important}}@media (prefers-reduced-motion:reduce){.bob,.deco-pop{animation:none}.doodle circle,.doodle path{animation:none;stroke-dashoffset:0}.deco{transition:none}}.work{position:relative;padding:clamp(4.5rem,11vh,7.5rem) 0 clamp(4rem,9vh,6.5rem);overflow-x:clip}.work-inner{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}.work-header{display:grid;grid-template-columns:auto 1fr minmax(260px,400px);align-items:end;grid-gap:1.5rem 2.5rem;gap:1.5rem 2.5rem;margin-bottom:clamp(2rem,4vw,3rem)}.work-eyebrow{display:inline-flex;align-items:center;gap:.7rem;padding:.5rem 1.1rem .5rem .55rem;font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#555555;background:var(--card);border:1px solid var(--line);border-radius:999px}.eyebrow-bricks{display:inline-grid;font-size:2.4rem;width:.62em;height:.62em}.eyebrow-bricks .lb{grid-area:1/1}.eyebrow-bricks .lb:first-child{transform:translate(-.04em,-.12em)}.eyebrow-bricks .lb:last-child{transform:translate(.1em,.08em)}.work-title{margin:1rem 0 0;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(2.8rem,6.2vw,5.4rem);line-height:.9;letter-spacing:-.055em;color:var(--ink)}.work-note{justify-self:center;align-self:center;font-size:1.55rem;line-height:1.05;transform:rotate(-12deg)}.work-note .doodle{width:2rem;height:3.4rem;margin:.6rem 0 0 3.6rem}.work-intro p{margin:0;font-size:.95rem;line-height:1.65;color:#555555}.work-arrows{display:flex;justify-content:flex-end;gap:.9rem;margin-top:1.3rem}.work-track{--gap:24px;--per-view:3;display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;padding:12px 4px 30px;margin:-12px -4px -30px;scrollbar-width:none}.work-track::-webkit-scrollbar{display:none}.work-track:focus-visible{outline:3px solid #ffc20e;outline-offset:4px;border-radius:28px}.work-track>.work-card{flex:0 0 calc((100% - var(--gap) * (var(--per-view) - 1)) / var(--per-view));scroll-snap-align:start}.work--all .work-track{display:grid;grid-template-columns:repeat(var(--per-view),minmax(0,1fr));overflow:visible}.work-card{position:relative;display:flex;flex-direction:column;min-width:0;background:#ffffff;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04),0 22px 44px -24px rgba(0,0,0,.22);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease}.work-card:hover{transform:translateY(-6px);box-shadow:0 1px 2px rgba(0,0,0,.05),0 30px 54px -24px rgba(0,0,0,.3)}.work-media{position:relative;aspect-ratio:16/11;overflow:hidden;background:#f1f1ee}.work-media>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}.work-card:hover .work-media>img{transform:scale(1.045)}.work-meta{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;z-index:2}.work-num,.work-type{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--ink);background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(22,22,22,.08);border-radius:999px;padding:.5rem .95rem}.work-num{padding:.4rem .7rem;font-weight:500;color:#777777}.work-card:has(.phone) .work-media{background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.55),transparent 45%),linear-gradient(160deg,#ffe17a,#ffc20e)}.phone{top:24%;width:34%;aspect-ratio:9/19;padding:7px;border-radius:30px;transform:translateX(-50%) rotate(-7deg);box-shadow:inset 0 0 0 2px #3a3a3a,0 24px 40px rgba(0,0,0,.28);transition:transform .6s cubic-bezier(.2,.7,.3,1)}.phone,.phone:before{position:absolute;left:50%;background:#121212}.phone:before{content:"";top:13px;width:32%;height:13px;transform:translateX(-50%);border-radius:10px;z-index:1}.phone img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;background:#ffffff;border-radius:24px}.work-card:hover .phone{transform:translateX(-50%) translateY(-10px) rotate(-4deg)}.work-body{flex:1 1;display:flex;flex-direction:column;gap:.75rem;padding:1.2rem 1.35rem 1.4rem}.work-head{display:flex;align-items:center;gap:.8rem}.work-logo{width:46px;height:46px;flex-shrink:0;object-fit:cover;border-radius:12px;background:#ffffff;box-shadow:0 0 0 1px rgba(0,0,0,.06),0 3px 8px rgba(0,0,0,.12)}.work-logo--wide{width:auto;max-width:84px;object-fit:contain;padding:6px 7px}.work-name{flex:1 1;min-width:0;margin:0;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(1.25rem,1.75vw,1.55rem);line-height:1.05;letter-spacing:-.045em;color:var(--ink);overflow-wrap:break-word}.work-links{display:flex;gap:.5rem;flex-shrink:0}.work-link{display:grid;place-items:center;width:44px;height:44px;font-size:.95rem;color:var(--ink);text-decoration:none;background:#ffffff;border:1.5px solid var(--ink);border-radius:50%;box-shadow:0 3px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease,background-color .2s ease,color .2s ease}.work-link:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--ink);background:var(--ink);color:#ffffff}.work-link:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.work-link:focus-visible{outline:3px solid #ffc20e;outline-offset:3px}.work-link--ghost{color:#555555;border-color:rgba(22,22,22,.22);box-shadow:0 3px 0 rgba(22,22,22,.22)}.work-blurb{margin:0;font-size:.88rem;line-height:1.55;color:#5c5c5c}.work-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:auto 0 0;padding:.25rem 0 0;list-style:none}.tag{padding:.45rem .75rem .4rem;font-size:.72rem;font-weight:600;line-height:1;border-radius:7px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.18)}.tag--dark{background:#1b1b1b;color:#ffffff}.tag--blue{background:#1e5fd8;color:#ffffff}.tag--navy{background:#262c74;color:#ffffff}.tag--lilac{background:#dcd6fc;color:#2b2370}.tag--green{background:#1f9d3d;color:#ffffff}.tag--red{background:#e3000b;color:#ffffff}.tag--yellow{background:#ffc20e;color:#141414}.work-card--dark{border-color:#111111}.work-card--dark,.work-card--dark .work-media{background:#111111}.work-card--dark .work-media:after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,#111111);pointer-events:none}.work-card--dark .work-num,.work-card--dark .work-type{color:#ffffff;background:rgba(17,17,17,.7);border-color:rgba(255,255,255,.14)}.work-card--dark .work-name{color:#ffffff}.work-card--dark .work-blurb{color:rgba(255,255,255,.72)}.work-card--dark .work-link{color:#111111;background:#ffffff;border-color:#ffffff;box-shadow:0 3px 0 rgba(255,255,255,.35)}.work-card--dark .work-link:hover{background:#ffc20e;border-color:#ffc20e;color:#111111}.work-card--dark .work-link--ghost{color:#ffffff;background:transparent;border-color:rgba(255,255,255,.35)}.work-card--dark .tag--dark{background:#2c2c2c}.work-footer{position:relative;display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:clamp(2.25rem,4vw,3rem)}.work-note--footer{position:absolute;left:2%;top:50%;font-size:1.35rem;transform:translateY(-50%) rotate(-9deg)}.work-note--footer .doodle{position:absolute;left:100%;bottom:-.2rem;width:4.2rem;height:2rem;margin:0 0 0 .6rem}.work-footer-dashes{font-size:3rem;transform:rotate(80deg)}.work-deco{inset:0;z-index:2;pointer-events:none;font-size:clamp(3rem,5.5vw,4.6rem)}.work-deco,.work-deco>div{position:absolute}.work-deco-yellow{top:34%;right:max(.5rem,calc(50% - 700px))}.work-deco-blue{top:76%;left:clamp(18%,calc(50% - 280px),32%)}.work-deco-red{bottom:-.6em;right:-.5em;z-index:-1}.work:not(.is-visible) .work-card{opacity:0}.work.is-visible .work-card{animation:cardIn .75s cubic-bezier(.2,.7,.3,1) backwards;animation-delay:calc(min(var(--i), 4) * .09s + .1s)}@keyframes cardIn{0%{opacity:0;transform:translateY(36px) rotate(1.5deg)}}.work .doodle circle,.work .doodle path{animation-delay:.5s;animation-play-state:paused}.work.is-visible .doodle circle,.work.is-visible .doodle path{animation-play-state:running}.lego-btn--icon{--stud-w:0.75em;padding:.9em;min-width:3.1em}.lego-btn--icon:before{left:14%}.lego-btn--icon:after{right:14%}.lego-btn:disabled{opacity:.35;cursor:default;pointer-events:none}@media (max-width:1100px){.work-track{--per-view:2}.work-header{grid-template-columns:1fr minmax(240px,360px)}.work-deco-blue,.work-note:not(.work-note--footer){display:none}}@media (max-width:760px){.work-header{grid-template-columns:1fr;align-items:start}.work-arrows{justify-content:flex-start}.work-track{--per-view:1;--gap:16px}.work-track>.work-card{flex-basis:86%}.work--all .work-track{grid-template-columns:1fr}.work-footer-dashes,.work-note--footer{display:none}.work-deco-yellow{top:2.5rem;right:.25rem;font-size:.75em}.work-name{font-size:1.4rem}.work-link--ghost,.work-logo--wide{display:none}}@media (prefers-reduced-motion:reduce){.work:not(.is-visible) .work-card{opacity:1}.work.is-visible .work-card{animation:none}.phone,.work-card,.work-link,.work-media>img{transition:none}.work-track{scroll-behavior:auto}}.about{position:relative;padding:clamp(4.5rem,10vh,7rem) 0;overflow-x:clip}.about-inner{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;grid-gap:clamp(2.5rem,6vw,6rem);gap:clamp(2.5rem,6vw,6rem)}.about-photo{position:relative;aspect-ratio:1/1.08;max-width:600px;width:100%;justify-self:center}.about-paper{position:absolute;inset:4% 4% 2% 2%;background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.5),transparent 50%),linear-gradient(170deg,#f3e9d4,#ead9b9);border-radius:6px;transform:rotate(-3.5deg);box-shadow:0 1px 2px rgba(0,0,0,.06),0 30px 60px -30px rgba(0,0,0,.35)}.about-paper:before{content:"";position:absolute;top:-14px;left:42%;width:24%;height:34px;background:rgba(243,233,210,.85);box-shadow:0 1px 3px rgba(0,0,0,.08);transform:rotate(-4deg)}.about-figure{position:absolute;left:1%;bottom:-5%;width:98%;height:auto;filter:drop-shadow(0 18px 24px rgba(0,0,0,.18));-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .6s cubic-bezier(.2,.7,.3,1)}.about-photo:hover .about-figure{transform:translateY(-6px) rotate(-1deg)}.about-dashes{position:absolute;top:12%;right:12%;font-size:clamp(3rem,5vw,4.2rem);color:var(--ink)}.about-brick{right:-2%;top:58%;font-size:clamp(3.2rem,6vw,5rem)}.about-brick,.about-sticky{position:absolute;z-index:2}.about-sticky{left:-3%;bottom:4%;display:flex;flex-direction:column;gap:.05em;width:7.2em;padding:1.1em 1em .9em 1.2em;font-family:Caveat,Comic Sans MS,cursive;font-weight:600;font-size:clamp(1.1rem,1.9vw,1.45rem);line-height:1.05;letter-spacing:.04em;text-transform:uppercase;color:#1d1d1d;background:#fbfbfa;border-radius:4px;transform:rotate(-9deg);box-shadow:0 1px 2px rgba(0,0,0,.06),0 14px 28px rgba(0,0,0,.14)}.about-sticky:before{content:"";position:absolute;top:-12px;left:18%;width:42%;height:24px;background:rgba(243,233,210,.9);transform:rotate(-6deg)}.about-sticky span{display:flex;align-items:center;justify-content:space-between}.about-sticky .doodle{width:1.25em;height:1.25em}.about-content{container-type:inline-size;display:flex;flex-direction:column;align-items:flex-start}.about-heading{margin:1.4rem 0 1.5rem;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(1.9rem,calc(100cqi / 9.7),4.4rem);line-height:1.02;letter-spacing:-.05em;color:var(--ink)}.role{display:block;color:#9b9b9b}.role-track{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.role-word{display:inline-block;white-space:nowrap;animation:roleIn .55s cubic-bezier(.3,1.45,.5,1) both}.role-word.is-leaving{animation:roleOut .38s cubic-bezier(.5,0,.75,0) both}@keyframes roleIn{0%{transform:translateY(-110%) rotate(-2deg);opacity:0}to{transform:translateY(0) rotate(0deg);opacity:1}}@keyframes roleOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(110%);opacity:0}}.about-statement{max-width:36em;margin:0 0 2rem;font-size:.98rem;line-height:1.75;color:#555555}.about-pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.85rem;gap:.85rem;width:100%;max-width:680px;margin:0 0 2.4rem;padding:0;list-style:none}.pillar{display:flex;align-items:center;gap:.75rem;padding:.9rem .95rem;font-size:.8rem;font-weight:600;line-height:1.3;color:var(--ink);border-radius:14px;background:var(--tone-bg);box-shadow:inset 0 -3px 0 var(--tone-edge);transition:transform .2s ease}.pillar:hover{transform:translateY(-3px)}.pillar i{font-size:1.35rem;color:var(--tone);flex-shrink:0}.pillar--red{--tone:#e3000b;--tone-bg:#fdecec;--tone-edge:#f6cfcf}.pillar--yellow{--tone:#f0a500;--tone-bg:#fff4d4;--tone-edge:#f6e2a8}.pillar--green{--tone:#1f9d3d;--tone-bg:#e6f5e9;--tone-edge:#c5e6cc}.pillar--blue{--tone:#1e5fd8;--tone-bg:#e8efff;--tone-edge:#cbd9fb}.about-actions{display:flex;flex-wrap:wrap;gap:1rem}.about-deco{position:absolute;right:-1.2rem;bottom:-1.5rem;font-size:clamp(3rem,6vw,5rem);pointer-events:none;z-index:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1100px){.about-pillars{grid-template-columns:repeat(2,minmax(0,1fr));max-width:460px}}@media (max-width:860px){.about-inner{grid-template-columns:1fr}.about-photo{max-width:440px}}@media (max-width:480px){.about-sticky{font-size:1rem;left:0}.pillar{padding:.8rem;gap:.6rem}.pillar i{font-size:1.15rem}}@media (prefers-reduced-motion:reduce){.role-word,.role-word.is-leaving{animation:none}.about-figure,.pillar{transition:none}}.skills{position:relative;padding:clamp(4.5rem,10vh,7rem) 0;overflow:clip}.skills-inner{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}.skills-header{display:grid;grid-template-columns:1fr minmax(260px,430px);align-items:end;grid-gap:1.5rem 3rem;gap:1.5rem 3rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.skills-intro{margin:0 0 .6rem;font-size:.95rem;line-height:1.65;color:#555555}.skills-body{max-width:1180px;margin:0 auto}.skill-pile{position:relative;container-type:inline-size;padding-left:7rem;perspective:1600px;perspective-origin:50% 0;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif}.skill-stack{font-size:clamp(15px,calc(100cqi / 28.5),42px);transform-style:preserve-3d;transform:rotateX(-12deg) rotateY(7deg)}.skill-group{position:relative;margin:0 auto;transform-style:preserve-3d}.skill-row>ul,.skill-rows{margin:0;padding:0;list-style:none}.skill-row,.skill-row>ul,.skill-rows{transform-style:preserve-3d}.skill-row>ul{display:flex;flex-wrap:wrap-reverse;justify-content:center}.skill-drop{transform-style:preserve-3d}.skill-brick{--depth:0.8em}.skill-brick .brick-front{display:flex;align-items:center;gap:.3em;min-width:3.3em;padding:.42em .5em;border-radius:.08em;box-shadow:inset 0 .03em 0 rgba(255,255,255,.35),inset 0 -.04em 0 rgba(0,0,0,.18),inset -.02em 0 0 rgba(0,0,0,.12);text-shadow:none}.skill-brick .brick-studs{left:.25em;right:.25em}.skill-brick .stud,.skill-brick .stud:before{width:.5em}.skill-brick .stud:before{height:.5em}.skill-brick .stud{height:.17em}.skill-icon{width:.66em;height:.66em;flex-shrink:0;fill:currentColor;font-size:.56em;display:grid;place-items:center}svg.skill-icon{font-size:inherit}.skill-name{font-size:.5em;font-weight:800;letter-spacing:-.02em;white-space:nowrap}.skill-brick{transition:transform .25s cubic-bezier(.2,.7,.3,1)}.skill-brick:hover{transform:translateX(var(--shift,0)) translateY(-.14em) rotate(var(--rot,0deg))}.skill-label.note{position:absolute;right:calc(100% + .6rem);top:.1em;margin:0;font-size:1.45rem;font-weight:600;transform:rotate(-10deg)}.skill-label .doodle{display:block;width:2.4rem;height:1.1rem;margin:.2rem 0 0 1.4rem;transform:rotate(18deg)}.skill-label--red{color:#e3000b}.skill-label--yellow{color:#d99a00}.skill-label--blue{color:#1e5fd8}.skill-label--green{color:#1f9d3d}.skill-dashes{position:absolute;top:-1.2rem;right:6%;font-size:3rem;color:var(--ink)}.skills:not(.is-visible) .skill-drop{visibility:hidden}.skills.is-visible .skill-drop{animation:skillDrop .75s both;animation-delay:calc(var(--order, 0) * 45ms)}@keyframes skillDrop{0%{transform:translate3d(0,-55vh,0) rotate(var(--spin,6deg));animation-timing-function:cubic-bezier(.55,0,.9,.45)}64%{transform:translateZ(0) rotate(0deg);animation-timing-function:ease-out}78%{transform:translate3d(0,-.12em,0);animation-timing-function:ease-in}90%{transform:translateZ(0);animation-timing-function:ease-out}95%{transform:translate3d(0,-.025em,0)}to{transform:translateZ(0)}}.skills .doodle circle,.skills .doodle path{animation-play-state:paused;animation-delay:1.4s}.skills.is-visible .doodle circle,.skills.is-visible .doodle path{animation-play-state:running}.skills-deco{inset:0;pointer-events:none;font-size:clamp(3rem,5vw,4.4rem)}.skills-deco,.skills-deco>div{position:absolute}.skills-deco-blue{left:-.45em;top:42%}.skills-deco-yellow{right:3%;top:30%;z-index:2;font-size:.8em}.skills-deco-green{left:-.3em;bottom:4%}.skills-deco-red{right:12%;bottom:1%;font-size:.85em}.skills-deco-red2{right:-.5em;bottom:-.4em}@media (max-width:1100px){.skills-deco-red,.skills-deco-yellow{display:none}}@media (max-width:760px){.skills-header{grid-template-columns:1fr}.skill-pile{padding-left:0}.skill-stack{font-size:clamp(17px,5.4vw,22px)}.skill-label.note{position:static;display:block;margin:.9rem 0 .5rem;font-size:1.3rem;transform:rotate(-4deg)}.skill-dashes,.skill-label .doodle{display:none}}@media (prefers-reduced-motion:reduce){.skills:not(.is-visible) .skill-drop{visibility:visible}.skills.is-visible .skill-drop{animation:none}.skill-brick{transition:none}}.contact{position:relative;padding:clamp(5rem,12vh,8rem) 0;overflow:clip}.contact-inner{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}.contact-heading{margin:1.2rem 0 1.6rem;font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(2.9rem,7.2vw,6.4rem);line-height:.92;letter-spacing:-.055em;color:var(--ink)}.contact-intro{max-width:34em;margin:0 0 clamp(2.5rem,5vw,3.5rem);font-size:1rem;line-height:1.75;color:#555555}.contact-bricks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:clamp(1.8rem,2.8vw,2.4rem) clamp(1rem,2vw,1.6rem);gap:clamp(1.8rem,2.8vw,2.4rem) clamp(1rem,2vw,1.6rem);max-width:680px;padding-top:.5rem;perspective:1400px;perspective-origin:50% 0}.contact-brick{--depth:0.75em;display:block;font-size:clamp(1.45rem,2.4vw,2rem);font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;text-decoration:none;color:var(--b-text);transform:rotateX(-15deg) rotateY(3deg);transition:transform .2s cubic-bezier(.2,.7,.3,1)}.contact-brick .brick-front{display:flex;align-items:center;gap:.55em;padding:.95em .85em;border-radius:.08em;text-shadow:none;box-shadow:inset 0 .03em 0 rgba(255,255,255,.35),inset 0 -.04em 0 rgba(0,0,0,.18),0 .55em .9em -.3em rgba(0,0,0,.28);transition:box-shadow .2s ease}.contact-brick .brick-studs{left:.4em;right:.4em}.contact-brick .stud{width:.82em;height:.26em}.contact-brick .stud:before{width:.82em;height:.82em}.contact-brick-icon{font-size:.95em;width:1.1em;text-align:center}.contact-brick-label{font-size:.72em;font-weight:800;letter-spacing:-.02em}.contact-brick-arrow{margin-left:auto;font-size:.6em;transition:transform .2s ease}.contact-brick:hover{transform:rotateX(-15deg) rotateY(3deg) translateY(-.18em)}.contact-brick:hover .contact-brick-arrow{transform:translateX(.25em)}.contact-brick:active{transform:rotateX(-15deg) rotateY(3deg) translateY(.1em)}.contact-brick:focus-visible{outline:none}.contact-brick:focus-visible .brick-front{outline:3px solid var(--ink);outline-offset:4px}.contact-deco{inset:0;pointer-events:none;font-size:clamp(3.2rem,6vw,5.4rem);color:var(--ink)}.contact-deco,.contact-deco>*{position:absolute}.contact-deco-yellow{right:3%;top:9%}.contact-deco-blue{right:14%;top:34%}.contact-deco-red{right:5%;bottom:12%}.contact-deco-green{left:-.35em;bottom:-.35em}.contact-dash{font-size:.75em}.contact-dash--1{left:max(1rem,calc(50% - 660px + 36rem));top:12%}.contact-dash--2{right:22%;top:27%;transform:rotate(-80deg)}.contact-dash--3{right:3%;bottom:30%}.contact-dash--4{left:1.2rem;bottom:13%;transform:rotate(-80deg)}@media (max-width:1100px){.contact-dash--1,.contact-dash--2,.contact-deco-blue{display:none}}@media (max-width:640px){.contact-bricks{grid-template-columns:1fr;max-width:420px}.contact-deco{font-size:2.6rem}.contact-deco-yellow{top:2.5rem;right:.5rem}.contact-dash--3,.contact-deco-red{display:none}}@media (prefers-reduced-motion:reduce){.contact-brick,.contact-brick-arrow{transition:none}}