.navbar{z-index:140;background:var(--c-paper);border-bottom:1.5px solid var(--c-ink);box-shadow:0 8px 18px -16px var(--nav-shadow);position:sticky;top:0}.nav-inner{height:var(--nav-h);align-items:center;gap:clamp(18px,3vw,38px);display:flex}.nav-logo{flex:none;align-items:baseline;gap:9px;display:inline-flex}.nav-logo-mark{font-family:var(--font-display);color:var(--c-ink);font-size:1.65rem;font-weight:700;line-height:1}.nav-logo-mark span{color:var(--c-red)}.nav-logo-tag{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--c-ink-3);font-size:11px;font-weight:400}.nav-menu{align-items:center;gap:clamp(8px,1.6vw,22px);margin-left:auto;display:flex}.nav-menu a{font-family:var(--font-body);font-size:var(--type-nav);letter-spacing:.035em;text-transform:uppercase;color:var(--c-ink-2);padding:8px 0;font-weight:500;transition:color .2s;display:inline-block;position:relative}.nav-menu a:after{content:"";background:var(--squiggle-red) no-repeat center / 100% 100%;transform-origin:0;height:6px;transition:transform .3s;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.nav-menu a:hover,.nav-menu a:focus-visible,.nav-menu a.active{color:var(--c-ink)}.nav-menu a:hover:after,.nav-menu a:focus-visible:after,.nav-menu a.active:after{transform:scaleX(1)}.nav-no{letter-spacing:.08em;color:var(--c-ink-3);margin-right:5px;font-size:11px}.nav-menu a.active .nav-no{color:var(--c-red)}.nav-resume{font-family:var(--font-body);font-size:var(--type-nav);letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink);border-bottom:1.5px solid var(--c-red);align-items:center;gap:.5em;padding-bottom:4px;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex;position:relative}.nav-resume:hover,.nav-resume:focus-visible{color:var(--c-red)}.mobile-only{display:none}.menu-btn{z-index:135;border:1.5px solid var(--c-ink);border-radius:var(--r);width:44px;height:44px;color:var(--c-ink);flex:none;place-items:center;font-size:15px;transition:border-color .2s,color .2s;display:none;position:relative}.menu-btn:hover,.menu-btn:focus-visible{border-color:var(--c-red);color:var(--c-red)}.nav-overlay{inset:var(--nav-h) 0 0;z-index:90;background:var(--nav-scrim);position:fixed}.nav-menu-head,.nav-quick,.nav-social{display:none}@media (width<=1080px){.desktop-only{display:none}.menu-btn{z-index:131;margin-left:0;display:grid;position:relative}.nav-menu{display:none}.nav-menu.open{z-index:130;padding:calc(var(--nav-h) + 18px) clamp(20px, 6vw, 40px) clamp(28px, 6vh, 48px);background-color:var(--c-paper);background-image:var(--tex-noise);box-shadow:none;background-size:300px 300px;flex-direction:column;gap:0;margin:0;display:flex;position:fixed;inset:0;overflow-y:auto}.nav-menu.open:before{content:none}.nav-menu.open .nav-menu-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.nav-menu-kicker{font-family:var(--font-hand);font-size:var(--type-note);color:var(--c-red);flex:none;font-weight:600;transform:rotate(-1.5deg)}.nav-menu-line{background:var(--c-rule);flex:1;height:1.5px}.nav-menu.open li{display:block}.nav-menu.open a{font-family:var(--font-body);letter-spacing:.02em;text-transform:none;color:var(--c-ink-2);border-bottom:1px dashed var(--c-rule);align-items:baseline;gap:14px;padding:12px 0;font-size:16px;font-weight:500;display:flex}.nav-menu.open a:after{display:none}.nav-menu.open a:hover,.nav-menu.open a:focus-visible,.nav-menu.open a.active{color:var(--c-ink);padding-left:8px}.nav-menu.open .nav-no{width:auto;font-family:var(--font-mono);letter-spacing:.12em;color:var(--c-ink-3);margin-right:0;font-size:11px;display:inline-block}.nav-menu.open a.active .nav-no{color:var(--c-red)}.nav-menu.open .nav-quick{border-top:1.5px dashed var(--c-rule);margin-top:20px;padding-top:16px;display:block}.nav-quick-title{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--c-red);margin-bottom:10px;font-size:.72rem}.nav-quick-row{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--c-ink-2);gap:10px;padding:3px 0;font-size:11px;display:flex}.nav-quick-row span{width:62px;color:var(--c-ink-3);flex:none}.nav-menu.open .mobile-only{margin-top:22px;display:block}.nav-menu.open .nav-resume{width:auto;font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink);border-bottom:2px solid var(--c-red);padding:12px 0;font-size:16px;font-weight:500;display:inline-block}.nav-menu.open .nav-social{border-top:1.5px dashed var(--c-rule);flex-wrap:wrap;gap:8px 20px;margin-top:auto;padding-top:26px;display:flex}.nav-menu.open .nav-social a{min-height:40px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-2);border:none;align-items:center;padding:8px 0;font-size:12px}.nav-menu.open .nav-social a:hover,.nav-menu.open .nav-social a:focus-visible{color:var(--c-red)}}@media (width<=380px){.nav-menu.open a{padding:10px 0;font-size:16px}}.sketch{width:100%;height:auto;color:var(--c-ink-2);pointer-events:none;display:block;overflow:visible}.motion-ready .sketch{transition:transform .65s cubic-bezier(.22,.61,.36,1),color .35s}.motion-ready .sketch:not(.is-inview){transform:translateY(1.25px)rotate(.12deg)}.sketch--light{color:var(--c-ink-3)}.sketch .accent-stroke{stroke:var(--c-red)}.sketch--light .accent-stroke{stroke:var(--c-blue)}.sketch .dot{fill:currentColor;stroke:none}.sketch .hatch{stroke-width:.85px;opacity:.42}.sketch--light .hatch{opacity:.5}.sketch path,.sketch circle,.sketch ellipse,.sketch line,.sketch rect,.sketch polyline{vector-effect:non-scaling-stroke}.motion-ready .sketch [data-draw]{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset var(--dur,1.25s) cubic-bezier(.4, 0, .2, 1) var(--dd,80ms)}.motion-ready .sketch.is-inview [data-draw]{stroke-dashoffset:0}.motion-ready .sketch .loop-pulse{animation:sk-pulse var(--ld,4.2s) ease-in-out infinite}@keyframes sk-pulse{0%,to{opacity:.3}50%{opacity:1}}.motion-ready .sketch .loop-blink{animation:1.2s step-end infinite sk-blink;animation-delay:var(--ld,0s)}@keyframes sk-blink{0%,54%{opacity:1}55%,to{opacity:0}}.sketch .loop-trace,.sketch .loop-scan,.sketch .loop-travel,.sketch .loop-packet,.sketch .loop-march,.sketch .loop-ring,.sketch .loop-shine{opacity:0}.motion-ready .sketch .loop-ring{transform-box:fill-box;transform-origin:50%;animation:3.4s ease-out infinite sk-ring;animation-delay:var(--ld,0s)}.motion-ready .sketch .loop-scan{transform-box:fill-box;opacity:0;animation:4.6s ease-in-out infinite sk-scan;animation-delay:var(--ld,0s)}@keyframes sk-scan{0%,8%{opacity:0;transform:translateY(0)}18%{opacity:.62}82%{opacity:.62}94%,to{transform:translateY(var(--ty,64px));opacity:0}}@keyframes sk-ring{0%{opacity:0;transform:scale(.6)}8%{opacity:.5}70%{opacity:.18}to{opacity:0;transform:scale(1.9)}}.motion-ready .sketch .loop-travel{opacity:1;animation:sk-travel var(--ld,5s) cubic-bezier(.6, 0, .4, 1) infinite}@keyframes sk-travel{0%{opacity:0;transform:translate(0)}14%{opacity:.9}86%{opacity:.9}to{transform:translateX(var(--tx,44px));opacity:0}}.motion-ready .sketch .loop-packet{opacity:1;animation:sk-packet var(--ld,5.2s) ease-in-out infinite}@keyframes sk-packet{0%{opacity:0;transform:translate(0)}10%{opacity:.9}33%{transform:translate(46px,12px)}66%{transform:translate(94px,12px)}90%{opacity:.9}to{opacity:0;transform:translate(140px)}}.motion-ready .sketch .loop-trace{opacity:1;stroke-dasharray:.22 1;animation:5.6s linear infinite sk-trace;animation-delay:var(--ld,0s)}@keyframes sk-trace{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1.22px}}.motion-ready .sketch .loop-march{opacity:1;stroke-dasharray:5 7;animation:2.4s linear infinite sk-march;animation-delay:var(--ld,0s)}@keyframes sk-march{to{stroke-dashoffset:-24px}}.motion-ready .sketch .loop-typing{animation:sk-typing var(--lt,6.5s) steps(1, end) infinite both;animation-delay:var(--ld,0s)}@keyframes sk-typing{0%,9%{opacity:0}15%,to{opacity:1}}.motion-ready .sketch .loop-orbit{transform-origin:var(--ox,50%) var(--oy,50%);animation:sk-orbit var(--lt,14s) linear infinite}@keyframes sk-orbit{to{transform:rotate(360deg)}}.motion-ready .sketch .loop-wave{transform-box:fill-box;transform-origin:0;animation:4.2s ease-in-out infinite sk-wave}@keyframes sk-wave{0%,to{transform:skew(0)scaleX(1)}50%{transform:skew(-2.5deg)scaleX(.99)}}.motion-ready .sketch .loop-drift{animation:sk-drift var(--lt,9s) ease-in-out infinite;animation-delay:var(--ld,0s)}@keyframes sk-drift{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(1.5px,-3px)rotate(4deg)}}.motion-ready .sketch .loop-flicker,.motion-ready .loop-flicker{animation:6.6s step-end infinite sk-flicker;animation-delay:var(--ld,0s)}@keyframes sk-flicker{0%,to{opacity:1}42%{opacity:.45}46%,72%,76%{opacity:1}}.cyber-sketch{color:var(--c-ink-2)}.cyber-sketch .cyber-hatch{fill:none;stroke:currentColor;stroke-width:.8px;opacity:.38}.cyber-sketch .cyber-detail{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;opacity:.7}.cyber-sketch .cyber-micro{fill:currentColor;font-family:var(--font-mono);letter-spacing:.1em;font-size:6.5px;font-weight:400}.cyber-sketch .cyber-note{fill:var(--c-red);font-family:var(--font-hand);font-size:12px;font-weight:600}.motion-ready .cyber-sketch .cyber-note,.motion-ready .cyber-sketch .cyber-micro{opacity:0;transition:opacity .35s}.motion-ready .cyber-sketch.is-inview .cyber-note,.motion-ready .cyber-sketch.is-inview .cyber-micro{opacity:1}.cyber-sketch .cyber-led{fill:var(--c-red-2);stroke:none}.cyber-sketch .cyber-led--small{fill:var(--c-brass)}.cyber-sketch .cyber-cursor{fill:var(--c-red-2);stroke:none}.motion-ready .cyber-sketch .loop-correction{fill:none;stroke:var(--c-graph);stroke-width:.9px;stroke-linecap:round;opacity:0;animation:9.2s step-end -2.7s infinite sk-correction}@keyframes sk-correction{0%,58%,to{opacity:0}62%,82%{opacity:.72}}.motion-ready .cyber-sketch .loop-note{animation:8.8s ease-in-out -1.4s infinite sk-note}@keyframes sk-note{0%,to{opacity:.18}17%,68%{opacity:1}84%{opacity:.42}}.workspace-pencil{transform-box:fill-box;transform-origin:50%}.cyber-sketch--workspace .cyber-micro{font-size:6px}.motion-ready .cyber-sketch .loop-sweep{transform-box:fill-box;transform-origin:50%;animation:7.6s ease-in-out infinite sk-sweep;animation-delay:var(--ld,0s)}@keyframes sk-sweep{0%,to{transform:translate(0)rotate(-1deg)}50%{transform:translate(-2px,1px)rotate(2deg)}}.motion-ready .sketch .loop-throb,.motion-ready .loop-throb{animation:5s ease-in-out infinite sk-throb;animation-delay:var(--ld,0s)}@keyframes sk-throb{0%,to{opacity:.55}50%{opacity:1}}.motion-ready .sketch .loop-chroma,.motion-ready .loop-chroma,.motion-ready .sketch .loop-shine{animation:none}@media (prefers-reduced-motion:reduce){.sketch [data-draw]{stroke-dasharray:none!important;stroke-dashoffset:0!important;transition:none!important}.motion-ready .sketch.is-inview{animation:none!important}[class*=loop-]{opacity:1!important;animation:none!important}.sketch .loop-trace,.sketch .loop-scan,.sketch .loop-travel,.sketch .loop-packet,.sketch .loop-march,.sketch .loop-ring,.sketch .loop-shine{opacity:0!important}.motion-ready .cyber-sketch .cyber-note,.motion-ready .cyber-sketch .cyber-micro{opacity:1!important;transition:none!important}}.footer{border-top:1.5px solid var(--c-ink);margin-top:clamp(70px,10vw,120px);padding-top:clamp(40px,5vw,60px);position:relative}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:28px 40px;display:flex}.footer-identity{max-width:34ch}.footer-name{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(1.7rem,4vw,2.4rem);font-weight:600;line-height:1.05;display:inline-block;position:relative}.footer-name span{color:var(--c-red)}.footer-ink{width:150px;color:var(--c-red);margin:4px 0 12px;display:block}.footer-role{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3);font-size:11px}.footer-social{flex-wrap:wrap;gap:10px 22px;display:flex}.footer-social a{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-2);align-items:center;gap:8px;padding:6px 0;font-size:12px;transition:color .2s;display:inline-flex}.footer-social a svg{color:var(--c-ink-3);font-size:13px;transition:color .2s}.footer-social a:hover,.footer-social a:focus-visible,.footer-social a:hover svg,.footer-social a:focus-visible svg{color:var(--c-red)}.footer-rule{width:100%;color:var(--c-rule);margin:clamp(26px,4vw,40px) 0 clamp(18px,3vw,26px);display:block}.footer-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;display:flex}.footer-copy{color:var(--c-ink-3);max-width:52ch;font-size:12.5px;line-height:1.6}.footer-top-btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-2);align-items:center;gap:8px;padding:8px 0;font-size:12px;transition:color .2s,transform .2s;display:inline-flex}.footer-top-btn svg{color:var(--c-red);font-size:11px}.footer-top-btn:hover,.footer-top-btn:focus-visible{color:var(--c-red);transform:translateY(-2px)}.footer-last-page{width:fit-content;max-width:100%;margin-top:17px;position:relative}.footer-note-trigger{min-height:44px;color:var(--c-ink-3);font-family:var(--font-hand);align-items:center;gap:8px;padding:4px 3px;font-size:17px;font-weight:600;display:inline-flex;transform:rotate(-1deg)}.footer-note-trigger:hover,.footer-note-trigger:focus-visible,.footer-note-trigger[aria-expanded=true]{color:var(--c-red)}.footer-note-mark{pointer-events:none;width:23px;height:23px;overflow:visible}.footer-note-mark path{fill:none;stroke:currentColor;stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round}.motion-ready .footer-note-mark path:first-child{stroke-dasharray:.22 1;animation:5.8s linear infinite footer-note-pencil}@keyframes footer-note-pencil{to{stroke-dashoffset:-1.22px}}.footer-final-note{background:var(--c-parchment);width:min(390px,100vw - 40px);color:var(--c-parchment-ink);clip-path:polygon(0 1%,10% 0,25% 1%,40% 0,56% 1%,71% 0,87% 1%,100% 0,99% 100%,82% 99%,65% 100%,48% 99%,31% 100%,15% 99%,0 100%);transform-origin:0 0;margin:4px 0 0 10px;padding:15px 18px 13px;box-shadow:0 7px 18px #211f1b2e}.motion-ready .footer-final-note:not([hidden]){animation:.42s cubic-bezier(.2,.7,.2,1) both footer-note-open}@keyframes footer-note-open{0%{opacity:0;transform:translateY(7px)scaleY(.96)}to{opacity:1;transform:translateY(0)scaleY(1)}}.footer-final-note[hidden]{display:none}.footer-note-meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#71624d;font-size:10px}.footer-note-copy{color:#38342c;font-family:var(--font-hand);margin-top:4px;font-size:23px;font-weight:600;line-height:1.12}.footer-note-actions{flex-wrap:wrap;align-items:center;gap:4px 17px;margin-top:6px;display:flex}.footer-note-actions a,.footer-note-actions button{color:#783b36;min-height:36px;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid #873b3b7a;align-items:center;padding:4px 0;font-size:11px;font-weight:500;display:inline-flex}.footer-note-actions a:hover,.footer-note-actions button:hover,.footer-note-actions a:focus-visible,.footer-note-actions button:focus-visible{color:#562c28;border-color:#783b36}@media (width<=560px){.footer-social{gap:6px 18px}.footer-bottom{flex-direction:column-reverse;align-items:flex-start}}.hero{padding-top:clamp(30px,5vw,58px);padding-bottom:clamp(64px,8vw,106px);position:relative;overflow:hidden}.hero-wrap{padding-bottom:clamp(16px,3vw,34px);position:relative}.hero-margin{z-index:4;align-items:center;gap:10px;display:flex;position:absolute;top:-4px;left:-4px}.hero-doodle--star{width:15px;color:var(--c-red);opacity:.85}.hero-doodle--cross{width:11px;color:var(--c-blue)}.hero-sheet{z-index:2;width:min(724px,90%);margin-left:clamp(0px,3vw,44px);padding:0;position:relative;transform:none}.hero-eyebrow{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.1em;color:var(--c-ink-3);align-items:center;gap:12px;margin-bottom:clamp(18px,3vw,26px);padding-left:clamp(0px,3vw,44px);font-weight:400;display:flex}.hero-eyebrow-line{background:var(--c-rule);width:40px;height:1px}.hero-name{font-family:var(--font-display);font-weight:800;font-size:var(--type-hero);letter-spacing:var(--tracking-display);color:var(--c-ink);text-wrap:balance;line-height:.98}.hero-initial{color:var(--c-red);margin-left:.04em;display:inline-block;position:relative}.hero-circle{width:1.85em;color:var(--c-red);pointer-events:none;position:absolute;top:-.24em;left:-.32em}.hero-underline{width:clamp(190px,40vw,360px);color:var(--c-red);margin:6px 0 0 2px}.hero-role{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-2);margin-top:clamp(24px,3.4vw,34px);font-weight:500}.hero-role span{color:var(--c-red);margin-inline:.35em}.hero-lede{max-width:50ch;color:var(--c-ink-2);margin-top:16px;font-size:clamp(1rem,1.4vw,17px);line-height:1.74}.hero-actions{flex-wrap:wrap;gap:12px 30px;margin-top:clamp(24px,3.4vw,32px);display:flex}.hero-action:hover,.hero-action:focus-visible{color:var(--c-red)}.hero-mark{color:var(--c-red);margin-top:26px;font-size:1.1rem;transform:rotate(-1.4deg)}.hero-monitor{z-index:3;width:clamp(180px,26vw,326px);color:var(--c-ink-3);position:absolute;bottom:-6%;right:clamp(0px,1vw,12px)}.hero-monitor .sketch .hatch{opacity:.42}.hero-workspace .sketch{color:var(--c-ink-2);transition:transform .45s,color .35s}@media (hover:hover) and (pointer:fine){.hero-workspace:hover .sketch{transform:translateY(-2px)rotate(-.3deg)}}.hero-notes{z-index:3;border-top:1px solid var(--c-rule);border-left:1px solid var(--c-rule);gap:12px;width:232px;padding-top:12px;padding-left:18px;display:grid;position:absolute;bottom:1%;right:0}.hero-notes-title{font-family:var(--font-hand);font-size:var(--type-note);color:var(--c-red);font-weight:600;transform:rotate(-1.6deg)}.hero-note-list{gap:10px;display:grid}.hero-note-list div{gap:1px;display:grid}.hero-note-list dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-3);font-size:11px}.hero-note-list dd{color:var(--c-ink-2);font-size:14px;line-height:1.4}.hero-notes-tail{font-family:var(--font-hand);font-size:var(--type-note);color:var(--c-red);font-weight:600;transform:rotate(-1deg)}.hero-cue{z-index:4;align-items:center;gap:10px;margin-top:clamp(30px,4vw,44px);display:inline-flex;position:relative}.hero-cue .hand{color:var(--c-ink-2);font-size:1.08rem;transition:color .2s}.hero-cue-arrow{width:24px;color:var(--c-red)}.hero-cue:hover .hand,.hero-cue:focus-visible .hand{color:var(--c-red)}@media (width<=1080px){.hero-sheet{width:min(590px,64%);margin-left:0}.hero-eyebrow{padding-left:0}.hero-notes{width:210px;bottom:0}}@media (width<=900px){.hero-sheet{width:100%}.hero-monitor{width:clamp(164px,42vw,226px);margin:30px 0 0 auto;position:static}.hero-notes{border-left:none;width:100%;margin-top:32px;padding-left:0;position:static}.hero-note-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}.hero-cue{margin-top:26px}}@media (width<=560px){.hero-circle{width:1.5em;top:-.14em;left:-.18em}.hero-name{font-size:var(--type-hero)}.hero-role{letter-spacing:.09em;font-size:12px}.hero-note-list{grid-template-columns:1fr}.hero-monitor{width:clamp(208px,58vw,232px)}.hero-mark{font-size:1rem}.hero-mark>span{display:none}}.about-head .sec-title{max-width:24ch}.about-head .title-scribble{margin-left:2px}.about-composition{grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);align-items:start;gap:clamp(34px,6vw,88px);display:grid}.about-bio{max-width:60ch;padding-top:4px}.about-bio p{color:var(--c-ink-2);font-size:clamp(16px,1.4vw,17.5px);line-height:1.78}.about-bio p+p{margin-top:18px}.about-bio strong{color:var(--c-ink);font-weight:700}.about-circle{color:var(--c-ink);white-space:nowrap;position:relative}.about-circle-mark{width:116%;color:var(--c-red);opacity:.75;pointer-events:none;position:absolute;top:-38%;left:-8%}.about-annotation{align-items:center;gap:10px;margin-top:22px;margin-left:-8px;display:flex}.about-annotation .hand{color:var(--c-red);font-size:1.1rem}.about-arrow{width:78px;color:var(--c-ink-3);flex:none;transform:rotate(5deg)}.about-side{padding-top:8px;position:relative}.about-facts{border-left:1.5px solid var(--c-red);padding-top:10px;padding-left:20px}.about-facts-title{font-family:var(--font-hand);font-size:var(--type-note);color:var(--c-red);margin-bottom:16px;font-weight:600;transform:rotate(-1.6deg)}.about-fact-list{gap:14px;display:grid}.about-fact{gap:2px;display:grid}.about-fact dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-3);font-size:11px;font-weight:400}.about-fact dd{color:var(--c-ink);font-size:16px;line-height:1.45}.about-hack-art{z-index:1;width:168px;margin:26px 4px 0 auto;position:relative;transform:rotate(2deg)}.hack-svg{width:100%;height:auto;color:var(--c-ink-2);display:block}.hack-svg g,.hack-svg path,.hack-svg rect,.hack-svg circle,.hack-svg line{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.hack-laptop{color:var(--c-red)}.hack-eyes circle,.hack-packets circle{fill:currentColor;stroke:none;color:var(--c-ink)}.hack-crosshair{color:var(--c-red);opacity:.7}.hack-label{text-align:right;color:var(--c-red);margin-top:8px;font-size:1.05rem;transform:rotate(-2deg)}.interest-list{border-top:1px solid var(--c-rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(30px,5vw,72px);max-width:900px;display:grid}.about-interest-layout{grid-template-columns:minmax(0,1fr) minmax(190px,.42fr);align-items:center;gap:clamp(20px,4vw,48px);display:grid}.about-interest-layout .interest-list{max-width:none}.about-interest-layout .about-hack-art{width:100%;max-width:250px;margin:0;transform:rotate(1deg)}.about-hack-art .cyber-sketch{color:var(--c-ink-3)}.interest-item{border-bottom:1px solid var(--c-rule);grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:4px 18px;padding:15px 0 17px;display:grid}.interest-num{font-family:var(--font-mono);letter-spacing:.08em;color:var(--c-ink-3);font-size:11px;transition:color .25s}.interest-item:hover .interest-num{color:var(--c-red)}.interest-text{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:600;line-height:1.16;transition:color .25s;display:inline-block;position:relative}.interest-text:after{content:"";background:var(--squiggle-red) no-repeat center / 100% 100%;transform-origin:0;height:6px;transition:transform .35s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.interest-item:hover .interest-text{color:var(--c-red)}.interest-item:hover .interest-text:after,.interest-item:focus-within .interest-text:after{transform:scaleX(1)}.about-block{margin-top:clamp(48px,7vw,78px)}.about-block-title{color:var(--c-red);margin-bottom:16px;font-size:clamp(1.45rem,2.4vw,1.85rem);transform:rotate(-1deg)}.skill-index-label{color:var(--c-ink-3);margin:27px 0 15px;display:block}.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,4vw,44px) clamp(32px,6vw,76px);max-width:980px;display:grid}.skill-group h3{font-family:var(--font-display);color:var(--c-ink);align-items:center;gap:14px;margin-bottom:12px;font-size:clamp(1.25rem,2vw,1.5rem);font-weight:700;display:flex}.skill-rule{background:var(--c-rule);flex:1;min-width:40px;height:1px}.skill-list{flex-wrap:wrap;gap:7px 16px;display:flex}.skill-list li{font-family:var(--font-mono);letter-spacing:.04em;color:var(--c-ink-2);font-size:12px;font-weight:400}.skill-list li:before{content:"/";color:var(--c-red);margin-right:6px}.about-skills-note{color:var(--c-red);margin-top:22px;font-size:1.1rem;transform:rotate(-1.2deg)}@media (width<=900px){.about-composition{grid-template-columns:1fr;gap:40px}.about-bio{max-width:none}.about-side{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;display:grid}.about-hack-art{width:130px;margin:0}}@media (width<=620px){.about-side{grid-template-columns:1fr;gap:22px}.about-hack-art{width:150px;margin:0 auto}.skill-groups,.interest-list{grid-template-columns:1fr}.about-interest-layout{grid-template-columns:1fr;gap:16px}.about-interest-layout .about-hack-art{width:min(100%,230px);max-width:none;margin-inline:auto}.about-annotation{margin-left:0}}.skill-signature{grid-template-columns:minmax(0,1.2fr) minmax(245px,.8fr);align-items:center;gap:clamp(22px,4vw,44px);display:grid}.skill-object-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.skill-object-button{border-bottom:1px dashed var(--c-rule);min-width:0;min-height:112px;color:var(--c-ink-2);text-align:center;grid-template-rows:68px auto;align-content:center;justify-items:center;gap:5px;padding:7px 3px 10px;transition:color .22s,border-color .22s;display:grid;position:relative}.skill-object-button:hover,.skill-object-button.is-selected{color:var(--c-red);border-color:var(--c-red)}.skill-object-art{place-items:center;width:min(100%,82px);height:68px;display:grid;position:relative}.skill-object-art .skill-sketch{width:100%;height:100%;color:var(--c-graph);transition:color .2s,transform .35s;overflow:visible}.skill-object-button:hover .skill-sketch,.skill-object-button.is-selected .skill-sketch{color:var(--c-ink);transform:translateY(-1px)}.skill-object-art .skill-select-stroke{fill:none;stroke:var(--c-red);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;opacity:0;stroke-dasharray:1;stroke-dashoffset:1px}.skill-object-button.is-selected .skill-select-stroke{animation:.9s cubic-bezier(.22,.61,.36,1) forwards skill-pencil-mark}@keyframes skill-pencil-mark{to{stroke-dashoffset:0;opacity:.95}}.skill-object-underline{pointer-events:none;width:calc(100% - 4px);height:8px;position:absolute;bottom:-1px;left:2px;right:2px;overflow:visible}.skill-object-underline path{fill:none;stroke:var(--c-red);stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:.75s ease-out forwards skill-pencil-mark}.skill-object-label{max-width:12ch;font-family:var(--font-body);font-size:13px;font-weight:500;line-height:1.12}.skill-object-index{font-family:var(--font-mono);letter-spacing:.06em;color:var(--c-ink-3);font-size:9px;position:absolute;top:3px;left:2px}.skill-object-button.is-selected .skill-object-index{color:var(--c-red)}.skill-note{border-left:2px solid var(--c-red);background:var(--c-parchment);min-height:168px;color:var(--c-parchment-ink);clip-path:polygon(0 1%,8% 0,17% 1%,29% 0,43% 1%,58% 0,75% 1%,88% 0,100% 1%,99.5% 100%,86% 99%,72% 100%,58% 99%,41% 100%,24% 99%,11% 100%,0 99%);padding:15px 19px 16px;position:relative;box-shadow:0 6px 16px #211f1b21}.skill-note-meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#6d5c49;font-size:10px}.skill-note h3{font-family:var(--font-display);color:#292722;margin-top:5px;font-size:clamp(1.3rem,2.1vw,1.65rem);font-weight:700;line-height:1.05}.skill-note-copy{font-family:var(--font-body);color:#514b40;margin-top:7px;font-size:16px;line-height:1.48}.skill-note-links{flex-wrap:wrap;gap:4px 16px;margin-top:9px;display:flex}.skill-note-link{color:#783b36;min-height:34px;font-family:var(--font-mono);letter-spacing:.035em;border-bottom:1px solid #873b3b7a;align-items:center;font-size:12px;font-weight:500;display:inline-flex}.skill-note-link:hover,.skill-note-link:focus-visible{color:#562c28;border-color:#783b36}@media (width<=900px){.skill-signature{grid-template-columns:1fr}.skill-note{min-height:0}}@media (width<=560px){.skill-object-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 10px}.skill-object-button{grid-template-rows:64px auto;min-height:104px}.skill-object-art{height:64px}.skill-note{padding:14px 16px 15px}}@media (prefers-reduced-motion:reduce){.skill-object-button.is-selected .skill-select-stroke,.skill-object-underline path{stroke-dashoffset:0;opacity:1;animation:none}}.exp-track{max-width:960px;margin:0 auto;padding:6px 0 10px;position:relative}.exp-spine{opacity:.85;pointer-events:none;width:58px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.exp-spine .sketch{width:100%;height:100%;color:var(--c-ink-3)}.exp-list{gap:clamp(30px,5vw,54px);display:grid}.exp-item{gap:4px;width:calc(50% - 46px);display:grid;position:relative}.exp-item--left{margin-right:auto}.exp-item--right{margin-left:auto}.exp-mark{border:1.5px solid var(--c-red);background:var(--c-paper);border-radius:50%;width:11px;height:11px;position:absolute;top:10px}.exp-item--left .exp-mark{right:-51px}.exp-item--right .exp-mark{left:-51px}.exp-when{color:var(--c-red);font-size:1.36rem;transform:rotate(-1.2deg)}.exp-org{letter-spacing:.08em;color:var(--c-ink-3);font-size:12px;font-weight:400}.exp-title{font-family:var(--font-display);color:var(--c-ink);max-width:20ch;margin-top:4px;font-size:clamp(1.5rem,2.6vw,1.95rem);font-weight:700;line-height:1.1}.exp-desc{max-width:46ch;font-size:var(--type-body);line-height:var(--leading-body);color:var(--c-ink-2);margin-top:6px}.exp-link{justify-self:start;margin-top:12px;font-size:12px}.exp-tail{justify-content:flex-end;align-items:center;gap:18px;margin-top:clamp(34px,5vw,52px);padding-right:clamp(0px,6vw,80px);display:flex}.exp-tail-art{width:clamp(104px,15vw,150px);color:var(--c-ink-3);opacity:.85;transform:rotate(-1deg)}.exp-tail-art .sketch{width:100%}.exp-tail .hand{color:var(--c-ink-3);font-size:1.1rem;transform:rotate(-1.5deg)}@media (width<=860px){.exp-spine{width:34px;left:0;transform:none}.exp-item{gap:3px;width:100%;padding-left:42px}.exp-item--left .exp-mark,.exp-item--right .exp-mark{left:12px;right:auto}.exp-desc{max-width:54ch}.exp-tail{justify-content:flex-start;padding-left:42px}.exp-tail-art{width:min(32vw,128px)}}@media (width<=560px){.exp-item{padding-left:34px}.exp-spine{width:28px}.exp-item--left .exp-mark,.exp-item--right .exp-mark{left:9px}.exp-title{font-size:clamp(1.4rem,6.4vw,1.75rem)}.exp-tail{gap:10px;padding-left:34px}}.cert-scene{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:start;gap:clamp(36px,6vw,84px);margin-top:clamp(34px,5vw,54px);display:grid;position:relative}.cert-stats{border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:clamp(26px,4vw,40px);display:grid}.cert-stat{flex-direction:column;gap:8px;padding:clamp(16px,2.6vw,22px) clamp(14px,2.4vw,24px);display:flex}.cert-stat+.cert-stat{border-left:1px solid var(--c-rule)}.cert-stat-value{font-family:var(--font-display);color:var(--c-red);font-size:clamp(1.8rem,4.6vw,2.6rem);font-weight:600;line-height:1}.cert-stat-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3);font-size:12px;font-weight:400}.cert-docs{z-index:0;pointer-events:none;width:232px;position:absolute;top:-58px;right:39%;transform:rotate(4deg)}.cert-docs .sketch{color:var(--c-ink-3);opacity:.9}.cert-feature{z-index:2;border-left:2px solid var(--c-red);grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,3vw,34px);width:100%;padding-left:clamp(18px,3vw,28px);display:grid;position:relative}.cert-feature-aside{flex-direction:column;gap:14px;padding-top:4px;display:flex}.cert-feature-label{writing-mode:vertical-rl;letter-spacing:.2em;color:var(--c-red);transform:rotate(180deg)}.cert-feature-mark{border:1.5px solid var(--c-ink);width:clamp(58px,9vw,74px);height:clamp(58px,9vw,74px);font-family:var(--font-display);color:var(--c-red-2);opacity:.85;border-radius:50%;place-items:center;font-size:clamp(1rem,2.4vw,1.3rem);font-weight:600;display:grid;transform:rotate(-8deg)}.cert-feature-body{position:relative}.cert-feature-docs{opacity:.4;pointer-events:none;width:clamp(96px,24%,132px);position:absolute;bottom:-8px;right:clamp(-6px,1vw,6px)}.cert-feature-docs .sketch{color:var(--c-ink-2)}.cert-feature-name{font-family:var(--font-display);color:var(--c-ink);max-width:16ch;font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:700;line-height:1.04}.cert-feature-issuer{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-2);margin-top:12px;font-size:12px;font-weight:400}.cert-feature-issuer span{color:var(--c-red-2)}.cert-feature-link{margin-top:22px}.cert-feature-note{max-width:26ch;color:var(--c-red);margin-top:26px;font-size:1.08rem;transform:rotate(-1.2deg)}.cert-list-wrap{z-index:2;padding-top:6px;position:relative}.cert-list-note{color:var(--c-red);margin-bottom:14px;font-size:1.3rem;transform:rotate(-1.4deg)}.cert-list{border-top:1px solid var(--c-rule);margin:0;padding:0;list-style:none}.cert-item{border-bottom:1px solid var(--c-rule);display:block}.cert-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:16px 0 18px;display:grid}.cert-mark{border:1.5px solid var(--c-ink);width:40px;height:40px;font-family:var(--font-mono);color:var(--c-ink-2);border-radius:50%;grid-row:1;align-self:center;place-items:center;font-size:10px;transition:border-color .3s,color .3s,transform .3s;display:grid}.cert-item:hover .cert-mark{border-color:var(--c-red);color:var(--c-red);transform:rotate(-6deg)}.cert-main h3{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(1.25rem,2vw,1.5rem);font-weight:700;line-height:1.14;transition:color .25s,transform .3s}.cert-item:hover .cert-main h3{color:var(--c-red);transform:translate(4px)}.cert-issuer{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3);margin-top:4px;font-size:12px;font-weight:400}.cert-date{font-family:var(--font-hand);color:var(--c-red);place-self:start end;font-size:1.2rem;font-weight:600}.cert-link{grid-column:2/-1;justify-self:start;margin-top:6px;font-size:12px}.cert-tail{align-items:center;gap:10px;margin-top:22px;display:flex}.cert-tail .hand{color:var(--c-red);font-size:1.15rem}.cert-tail-arrow{width:70px;color:var(--c-ink-3);flex:none;transform:rotate(4deg)}.cert-block{margin-top:clamp(30px,4.5vw,54px)}@media (width<=1000px){.cert-scene{grid-template-columns:1fr;gap:46px}.cert-docs{opacity:.85;justify-self:end;width:138px;margin:0 6px -6px 0;position:static}.cert-feature{width:min(640px,100%)}.cert-list-wrap{max-width:640px}}@media (width<=560px){.cert-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-stat:nth-child(odd){border-left:none}.cert-stat:nth-child(n+3){border-top:1px solid var(--c-rule)}.cert-feature{grid-template-columns:1fr;gap:16px}.cert-feature-aside{flex-direction:row;align-items:center;gap:16px}.cert-feature-label{writing-mode:horizontal-tb;transform:none}.cert-feature-mark{width:52px;height:52px;font-size:.95rem}.cert-feature-docs{opacity:.32;width:96px}.cert-row{gap:4px 12px}.cert-mark{width:36px;height:36px;font-size:10px}.cert-date{font-size:1.08rem}}.projects-head .sec-title{max-width:20ch}.project-list{gap:clamp(34px,6vw,66px);margin-top:clamp(34px,5vw,56px);display:grid}.projects-more{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:10px 18px;margin-top:clamp(40px,6vw,66px);padding-right:clamp(0px,4vw,40px);display:flex}.projects-more .hand{color:var(--c-ink-3);font-size:1.2rem;transform:rotate(-1.4deg)}@media (width<=560px){.projects-more{justify-content:flex-start;padding-right:0}}.project{--project-ink:#38342c;--project-ink-soft:#5b5549;--project-graphite:#625b4f;--project-rule:#38342c47;isolation:isolate;width:100%;color:var(--project-ink);background-color:var(--c-parchment);clip-path:polygon(.2% .55%,2.4% .28%,4.1% .68%,6.8% .32%,9.1% .62%,12.6% .26%,16.2% .61%,20.8% .31%,25.4% .72%,30.7% .28%,36.5% .64%,42.8% .32%,48.9% .7%,55.6% .27%,62.3% .63%,69.4% .31%,76.2% .69%,83.5% .26%,90.2% .66%,95.4% .3%,99.8% .58%,99.5% 99.38%,96.8% 99.68%,93.2% 99.32%,89.1% 99.72%,84.5% 99.35%,79.2% 99.66%,73.4% 99.3%,67.1% 99.68%,60.5% 99.34%,53.8% 99.72%,47.2% 99.3%,40.7% 99.67%,34.4% 99.32%,28.2% 99.7%,22.1% 99.31%,16.4% 99.66%,11.2% 99.34%,7.2% 99.68%,3.4% 99.3%,.4% 99.62%);filter:drop-shadow(0 12px 18px #0000003d);background-image:linear-gradient(118deg,#ffffff2b,#0000 42%),linear-gradient(#0000 66%,#46392509);padding:23px clamp(19px,4.5vw,42px) 26px;position:relative}.project:before{content:"";z-index:-1;background-image:var(--tex-noise);opacity:.12;pointer-events:none;background-size:260px 260px;position:absolute;inset:0}.project__head{align-items:center;gap:11px;margin-bottom:17px;display:flex}.project__index{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.08em;color:var(--project-graphite);line-height:1}.project--featured .project__index{color:var(--c-red-2)}.project__label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--project-ink-soft);align-items:center;gap:9px;font-size:11px;font-weight:400;display:flex}.project__flag{border:1px solid var(--c-red-2);color:var(--c-red-2);letter-spacing:.08em;padding:2px 7px;font-size:11px}.project__rule{background:var(--project-rule);flex:1;height:1px}.project__body{gap:14px;display:grid}.project__copy{min-width:0}.project__title{max-width:100%;font-family:var(--font-display);font-weight:700;font-size:var(--type-project);letter-spacing:-.015em;color:var(--project-ink);text-wrap:balance;padding-bottom:5px;line-height:1.1;display:inline-block;position:relative}.project__ink{width:min(88%,250px);height:auto;color:var(--c-red-2);opacity:.67;transform-origin:0;margin-top:1px;transition:opacity .3s,transform .4s;display:block}.project:hover .project__ink,.project:focus-within .project__ink{opacity:.95;transform:scaleX(1.04)}.project__desc,.project__problem{max-width:56ch;font-size:var(--type-body);line-height:var(--leading-body);color:var(--project-ink-soft)}.project__desc{margin-top:7px}.project__problem{margin-top:8px}.project .project__key{color:var(--c-red-2);margin-right:.45em;font-size:1.08rem}.tech{flex-wrap:wrap;gap:8px;margin-top:17px;list-style:none;display:flex}.badge{color:#514b40;min-height:34px;font-family:var(--font-mono);letter-spacing:.045em;background:#efe5d05c;border:1px solid #38342c59;border-radius:2px 2px 3px 1px;align-items:center;gap:7px;padding:5px 10px 7px;font-size:12px;font-weight:400;line-height:1.2;transition:transform .2s,border-color .2s,color .2s,background-color .2s;display:inline-flex;position:relative}.badge:before{content:"";border:1px solid var(--c-red-2);opacity:.82;border-radius:50%;flex:none;width:5px;height:5px}.badge:after{content:"";background:var(--squiggle-red) no-repeat left center / 100% 100%;transform-origin:0;height:4px;transition:transform .25s;position:absolute;bottom:2px;left:7px;right:7px;transform:scaleX(0)}.badge:hover{border-color:var(--c-red-2);color:#382f29;background-color:#fff9eb8a;transform:translateY(-2px)}.badge:hover:after{transform:scaleX(1)}.project .project__note{width:fit-content;color:var(--c-red-2);margin-top:17px;font-size:1.12rem;transform:rotate(-1deg)}.project__links{flex-wrap:wrap;gap:10px 18px;margin-top:14px;display:flex}.project__link{color:#403a31;min-height:40px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #38342c61;align-items:center;gap:8px;padding:7px 0;font-size:12px;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex}.project__link:hover,.project__link:focus-visible{border-color:var(--c-red-2);color:var(--c-red-2)}.project__art{aspect-ratio:4/3;transform-origin:50%;width:min(220px,72%);margin:3px auto 0;transition:transform .45s}.project__art .sketch{color:#625b4f;width:100%;height:100%}.project__art .sketch .hatch{opacity:.4}.project__art .sketch .accent-stroke,.project__art .sketch .loop-trace,.project__art .sketch .loop-scan,.project__art .sketch .loop-travel,.project__art .sketch .loop-packet,.project__art .sketch .loop-march,.project__art .sketch .loop-ring{stroke:var(--c-red-2)}.project:hover .project__art{transform:translateY(-3px)rotate(-.7deg)}@media (width>=760px){.project{padding:28px clamp(27px,4vw,44px) 30px}.project__head{margin-bottom:19px}.project__body{grid-template-columns:minmax(0,1fr) clamp(175px,23vw,226px);align-items:center;gap:clamp(24px,4vw,50px)}.project__title{font-size:var(--type-project)}.project__art{justify-self:end;width:100%;max-width:220px;margin:0}}@media (prefers-reduced-motion:reduce){.project__ink,.project__art,.badge{transition:none}}.publication-head{text-align:center}.pub-list{gap:34px;margin-top:42px;list-style:none;display:grid}.pub-entry{border-left:1.5px solid var(--c-red);max-width:66ch;padding-left:22px}.pub-type{font-family:var(--font-mono);letter-spacing:.08em;color:var(--c-ink-3);margin-bottom:8px;font-size:12px;font-weight:400}.pub-title{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:700;line-height:1.2}.pub-authors{font-family:var(--font-mono);letter-spacing:.08em;color:var(--c-ink-2);margin-top:8px;font-size:12px;font-weight:400}.pub-tail{text-align:center;margin-top:28px}.pub-tail .hand{color:var(--c-red);font-size:1.1rem}.contact-scene{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:start;gap:clamp(36px,6vw,88px);margin-top:clamp(20px,3vw,34px);display:grid;position:relative}.contact-head{margin-bottom:clamp(20px,3vw,30px)}.contact-hand{color:var(--c-red);margin:14px 0 2px;font-size:1.35rem;display:block;transform:rotate(-1.4deg)}.contact-lede{max-width:56ch;color:var(--c-ink-2);margin-top:6px;font-size:clamp(16px,1.4vw,17.5px);line-height:1.78}.contact-mail{font-family:var(--font-display);color:var(--c-ink);border-bottom:2px solid var(--c-red);overflow-wrap:anywhere;align-items:center;gap:.6em;margin-top:clamp(24px,3vw,34px);padding-bottom:6px;font-size:clamp(1.3rem,4vw,2.3rem);font-weight:700;line-height:1.1;transition:color .25s,border-color .25s;display:inline-flex}.contact-mail:hover,.contact-mail:focus-visible{color:var(--c-red)}.contact-mail-arrow{color:var(--c-red);flex:none;font-size:.7em;transition:transform .3s}.contact-mail:hover .contact-mail-arrow,.contact-mail:focus-visible .contact-mail-arrow{transform:translate(3px,-3px)}.contact-links{border-top:1px solid var(--c-rule);margin-top:clamp(40px,5vw,60px)}.contact-item{border-bottom:1px solid var(--c-rule);grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px 20px;display:grid}.contact-num{font-family:var(--font-mono);letter-spacing:.08em;color:var(--c-ink-3);padding-top:18px;font-size:12px;transition:color .25s}.contact-item:hover .contact-num{color:var(--c-red)}.contact-link{grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:6px 22px;padding:16px 0 18px;display:grid}.contact-label-text{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(1.35rem,3.4vw,1.9rem);font-weight:700;line-height:1.1;transition:transform .3s,color .25s}.contact-value{font-family:var(--font-mono);color:var(--c-ink-3);overflow-wrap:anywhere;font-size:12.5px}.contact-arrow{color:var(--c-ink-3);font-size:15px;transition:color .25s,transform .25s}.contact-item:hover .contact-label-text{color:var(--c-red);transform:translate(6px)}.contact-item:hover .contact-arrow{color:var(--c-red);transform:translate(3px,-3px)}.contact-filed{color:var(--c-ink-3);margin-top:22px;font-size:1.15rem;display:block;transform:rotate(-1deg)}.contact-sign{margin-top:clamp(38px,5vw,58px)}.contact-signature{font-family:var(--font-display);color:var(--c-ink);font-size:clamp(2rem,5vw,2.8rem);font-weight:600;line-height:1}.contact-signature span{color:var(--c-red)}.contact-sig-ink{width:170px;color:var(--c-red);margin-top:6px;display:block}.contact-side{gap:26px;padding-top:6px;display:grid;position:relative}.contact-notes{border-left:1.5px solid var(--c-red);gap:6px;padding-left:18px;display:grid}.contact-note{color:var(--c-red);font-size:1.22rem;transform:rotate(-1deg)}.contact-note--dim{color:var(--c-ink-3);font-size:1.1rem}.contact-quote{border-left:1px solid var(--c-rule);padding-left:18px;position:relative}.contact-quote p{font-family:var(--font-display);color:var(--c-ink-2);font-size:clamp(1.2rem,2.6vw,1.5rem);font-weight:600;line-height:1.36}.contact-lock{width:118px;margin-left:auto;transform:rotate(2deg)}.contact-lock .sketch{color:var(--c-ink-3)}@media (width<=900px){.contact-scene{grid-template-columns:1fr;gap:44px}.contact-side{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px}.contact-lock{width:96px}}@media (width<=560px){.contact-link{grid-template-columns:1fr auto;gap:4px 16px}.contact-value{grid-column:1/-1}.contact-side{grid-template-columns:1fr;gap:26px}.contact-lock{margin-left:0}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-paper:#292722;--c-paper-2:#211f1b;--c-paper-3:#343029;--c-paper-edge:#514b40;--c-parchment:#dccdaa;--c-parchment-light:#efe5d0;--c-parchment-ink:#38342c;--c-ink:#efe5d0;--c-ink-2:#bdb3a0;--c-ink-3:#a99e88;--c-rule:#514b40;--c-graph:#777064;--c-red:#b96558;--c-red-2:#985047;--c-blue:#ba9b69;--c-blue-2:#a88a5d;--c-marker:#ba9b69;--c-marker-2:#a88a5d;--wash-top:#efe5d009;--wash-brass:#ba9b690e;--wash-red:#98504713;--nav-scrim:#2f2d2959;--nav-shadow:#2f2d2999;--c-link-line:#efe5d04d;--sheet-line:#efe5d033;--maxw:1140px;--gutter:clamp(20px, 5vw, 46px);--nav-h:66px;--r:4px;--font-display:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--font-hand:"Caveat", "Segoe Script", cursive;--type-hero:clamp(2.75rem, 10vw, 6.5rem);--type-section:clamp(2rem, calc(3.5vw + 1rem), 3.5rem);--type-project:clamp(1.5625rem, calc(2.25vw + .8rem), 2.25rem);--type-body:clamp(1rem, calc(.35vw + .95rem), 1.125rem);--type-nav:clamp(.875rem, calc(.15vw + .875rem), .9375rem);--type-meta:clamp(.6875rem, calc(.3vw + .65rem), .875rem);--type-note:clamp(.9375rem, calc(.6vw + .8rem), 1.25rem);--leading-display:1.04;--leading-body:1.72;--tracking-display:-.035em;--tracking-section:-.015em;--tex-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");--tex-grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M26 0H0V26' fill='none' stroke='%238a8577' stroke-width='0.6' opacity='0.4'/%3E%3C/svg%3E");--squiggle-red:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4.4C18 1.4 38 5 56 3.4S86 2.2 98 4.2' fill='none' stroke='%23b96558' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");--squiggle-blue:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4.4C18 1.4 38 5 56 3.4S86 2.2 98 4.2' fill='none' stroke='%23ba9b69' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");--c-bg:var(--c-paper);--c-deep:var(--c-paper-2);--c-stone:var(--c-paper-3);--c-paper-lt:var(--c-paper-3);--c-ivory:var(--c-ink);--c-sand:var(--c-ink-2);--c-brass:var(--c-blue);--c-burg:var(--c-red);--c-burg-2:var(--c-red-2);--squiggle-gold:var(--squiggle-red);--squiggle-burg:var(--squiggle-red)}@media (prefers-color-scheme:light){:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--c-paper:#e9dfc7;--c-paper-2:#ded0af;--c-paper-3:#f0e7d3;--c-paper-edge:#b7a98d;--c-parchment:#ded0af;--c-parchment-light:#f3e9d3;--c-parchment-ink:#292722;--c-ink:#292722;--c-ink-2:#625d52;--c-ink-3:#6b6353;--c-rule:#b7a98d;--c-graph:#5c5548;--c-red:#873b3b;--c-red-2:#6f2d2d;--c-blue:#8d7048;--c-blue-2:#7d653f;--c-marker:#ba9b69;--c-marker-2:#a88a5d;--wash-top:#fffcf375;--wash-brass:#ba9b691f;--wash-red:#873b3b09;--nav-scrim:#2927223d;--nav-shadow:#29272229;--c-link-line:#2f2d294d;--sheet-line:#2f2d2938;--squiggle-red:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4.4C18 1.4 38 5 56 3.4S86 2.2 98 4.2' fill='none' stroke='%23873b3b' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");--squiggle-blue:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4.4C18 1.4 38 5 56 3.4S86 2.2 98 4.2' fill='none' stroke='%2392764a' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:clip}body{font-family:var(--font-body);font-size:var(--type-body);line-height:var(--leading-body);background-color:var(--c-paper);background-image:linear-gradient(180deg, var(--wash-top), transparent 30%), radial-gradient(60rem 40rem at 80% -6%, var(--wash-brass), transparent 60%), radial-gradient(48rem 36rem at 8% 40%, var(--wash-red), transparent 62%);color:var(--c-ink);-webkit-font-smoothing:antialiased;transition:color .35s,background-color .35s,background-image .35s;overflow-x:clip}*,:before,:after{transition-property:color,background-color,border-color;transition-duration:.32s;transition-timing-function:ease}body:before{content:"";background-image:var(--tex-noise);opacity:.05;pointer-events:none;z-index:-1;background-size:300px 300px;position:fixed;inset:0}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--c-marker);color:var(--c-paper-2)}:focus-visible{outline:2px dashed var(--focus,var(--c-red));outline-offset:4px}::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:var(--c-paper-2)}::-webkit-scrollbar-thumb{background:var(--c-graph);border:2px solid var(--c-paper-2);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--c-ink-3)}.skip-link{z-index:400;background:var(--c-ink);color:var(--c-paper);padding:10px 16px;font-size:14px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{top:12px;left:12px}.container{width:min(var(--maxw), 100% - var(--gutter) * 2);margin-inline:auto}main{display:block}.section{--fg:var(--c-ink);--fg-2:var(--c-ink-2);--acc:var(--c-red);--link-line:var(--c-link-line);--line:var(--c-rule);--focus:var(--c-red);color:var(--fg);scroll-margin-top:calc(var(--nav-h) + 10px);padding:clamp(68px,9vw,118px) 0;position:relative}.section--deep,.section--stone{background:0 0}.section+.section{border-top:1px solid var(--c-rule)}.sheet{--fg:var(--c-ink);--fg-2:var(--c-ink-2);--acc:var(--c-red);--link-line:var(--c-link-line);--line:var(--sheet-line);--focus:var(--c-red);color:var(--fg);box-shadow:none;background:0 0;border:none;border-radius:0;position:relative}.sheet:before{content:none}.torn-top,.torn-bottom,.torn-both,.stacked{box-shadow:none;background:0 0}.tape{display:none}.stamp{pointer-events:none}.stamp-mark{font-family:var(--font-mono);letter-spacing:.08em;font-size:18px;font-weight:500;line-height:1}.stamp-text{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:11px;line-height:1.5}.hairline{border:none;border-top:1px solid var(--c-rule);transform-origin:0}.motion-ready .hairline{transition:transform .8s cubic-bezier(.22, .61, .36, 1) var(--d,0s);transform:scaleX(0)}.motion-ready .hairline.is-inview,.is-inview .motion-ready .hairline{transform:scaleX(1)}.mono-label{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);font-weight:400}.hand{font-family:var(--font-hand);font-size:var(--type-note);color:var(--acc);font-weight:600;line-height:1.2}.hand--sm{font-size:1rem}.hand--lg{font-size:clamp(1.5rem,2.6vw,1.75rem)}.sec-head{max-width:68ch;margin-bottom:clamp(30px,4.5vw,52px);position:relative}.sec-top{align-items:center;gap:16px;margin-bottom:18px;display:flex}.sec-top .sec-rule{background:var(--c-rule);transform-origin:0;flex:1;height:1px}.sec-mark{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--c-red);font-weight:400;display:inline-block}.sec-title{font-family:var(--font-display);font-weight:700;font-size:var(--type-section);line-height:var(--leading-display);letter-spacing:var(--tracking-section);text-transform:uppercase;color:var(--c-ink);text-wrap:balance;max-width:20ch}.sec-title .accent{color:var(--c-red)}.sec-lede{max-width:58ch;color:var(--fg-2);margin-top:16px;font-size:clamp(1rem,1.25vw,1.0625rem);line-height:1.74}.title-scribble{width:clamp(150px,26vw,280px);color:var(--acc);opacity:.9;margin-top:10px;display:block}.hand-link,.ink-link{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink);border-bottom:1.5px solid var(--link-line);background-position:0 calc(100% - 1px);background-repeat:no-repeat;background-size:0% 6px;align-items:center;gap:.55em;padding-bottom:5px;font-size:12px;font-weight:500;transition:background-size .35s,border-color .2s,color .2s;display:inline-flex}.hand-link{background-image:var(--squiggle-blue)}.ink-link{background-image:var(--squiggle-red)}.hand-link:hover,.hand-link:focus-visible,.ink-link:hover,.ink-link:focus-visible{background-size:100% 6px;border-color:#0000}.hand-link:hover{color:var(--c-blue)}.ink-link:hover{color:var(--c-red)}.hand-link svg,.ink-link svg{opacity:.8;flex:none;font-size:11px}.motion-ready .reveal{opacity:0;transition:opacity .65s,transform .7s cubic-bezier(.22,.61,.36,1),color .35s,background-color .35s,border-color .35s;transition-delay:var(--d,0s);transform:translateY(14px)}.motion-ready .reveal.is-inview{opacity:1;transform:none}.motion-ready .reveal--rule{opacity:1;transform-origin:0;transition:transform .85s cubic-bezier(.22, .61, .36, 1) var(--d,0s);transform:scaleX(0)}.motion-ready .reveal--rule.is-inview{transform:scaleX(1)}.motion-ready .reveal--focus{opacity:0;letter-spacing:-.02em;transition:opacity .7s,transform .8s cubic-bezier(.22,.61,.36,1),letter-spacing .9s cubic-bezier(.22,.61,.36,1),color .35s,background-color .35s,border-color .35s;transition-delay:var(--d,0s);transform:translateY(10px)}.motion-ready .reveal--focus.is-inview,.motion-ready .reveal.is-inview .reveal--focus{opacity:1;letter-spacing:0;transform:none}.motion-ready .reveal--paper{transform:translateY(18px) rotate(calc(var(--r,0deg) - .5deg))}.motion-ready .reveal--paper.is-inview{transform:rotate(var(--r,0deg))}.parallax{transform:translate3d(0, var(--py,0px), 0);will-change:transform}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.parallax{transform:none!important}.motion-ready .hairline{transform:none}}@keyframes hero-rise-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes margin-doodle-drift{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-7px)rotate(4deg)}}@keyframes ink-draw{0%{stroke-dashoffset:180px}to{stroke-dashoffset:0}}@keyframes gentle-float{0%,to{translate:0}50%{translate:0 -5px}}.motion-ready .hero-eyebrow{animation:.65s cubic-bezier(.2,.7,.2,1) 40ms both hero-rise-in}.motion-ready .hero-sheet{animation:.8s cubic-bezier(.2,.7,.2,1) .12s both hero-rise-in}.motion-ready .hero-monitor{animation:.9s cubic-bezier(.2,.7,.2,1) .3s both hero-rise-in}.motion-ready .hero-doodle--star{animation:5s ease-in-out infinite margin-doodle-drift}.motion-ready .hero-doodle--cross{animation:6s ease-in-out infinite reverse margin-doodle-drift}.motion-ready .hero-underline path,.motion-ready .title-scribble path{stroke-dasharray:180;animation:1.05s ease-out .3s both ink-draw}.reveal{backface-visibility:hidden}.project-card,.cert-row,.skill-list li,.contact-link,.exp-item{transition:transform .28s,border-color .28s,background-color .28s,box-shadow .28s}@media (hover:hover) and (pointer:fine){.project-card:hover,.cert-row:hover{transform:translateY(-4px)}.skill-list li:hover{transform:translate(4px)}.contact-link:hover{transform:translate(5px)}.hero-action:hover{transform:translateY(-2px)}}@media (width<=700px){:root{--nav-h:60px;--gutter:18px}.hero{padding-top:28px}.hero-wrap{padding-bottom:10px}.hero-sheet{width:100%;margin-left:0}.hero-eyebrow{padding-left:0}.hero-name{overflow-wrap:anywhere;font-size:clamp(2.65rem,12.5vw,4.4rem)}.hero-role{letter-spacing:.06em;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:14px 22px;display:flex}.hero-monitor{max-width:100%}.section{scroll-margin-top:calc(var(--nav-h) + 12px)}.contact-link{gap:8px}.contact-value{overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){.motion-ready .hero-eyebrow,.motion-ready .hero-sheet,.motion-ready .hero-monitor,.motion-ready .hero-doodle--star,.motion-ready .hero-doodle--cross,.motion-ready .hero-underline path,.motion-ready .title-scribble path{animation:none!important}}
