@import url("https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@400;600;700;800&family=Caveat:wght@700&display=swap");:root{--paper:#f6efe1;--paper-2:#efe6d3;--ink:#18130d;--night:#15110b;--night-2:#1e180f;--snow:#f6efe1;--pop:#ff5a30;--pop-2:#15b6b0;--pop-ink:#1a0d05}body[data-dir=alpine]{--paper:#e9eef2;--paper-2:#dde5ec;--ink:#11161c;--night:#0d1622;--night-2:#13202f;--snow:#eaf2f8;--pop:#ff3b3b;--pop-2:#34bdf2;--pop-ink:#0a0f14}body[data-dir=dusk]{--paper:#efe9dd;--paper-2:#e6dece;--ink:#181219;--night:#120e1a;--night-2:#1b1526;--snow:#f1ebe0;--pop:#c2f53a;--pop-2:#ff4fa6;--pop-ink:#120e07}:root{--maxw:1220px;--gutter:clamp(20px,5vw,70px);--font-display:"Anton","Arial Narrow",sans-serif;--font-body:"Archivo",system-ui,sans-serif;--font-mark:"Caveat","Comic Sans MS",cursive;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--night);color:var(--snow);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::-moz-selection{background:var(--pop);color:var(--pop-ink)}::selection{background:var(--pop);color:var(--pop-ink)}a{color:inherit;text-decoration:none}.sec{position:relative;--bg:var(--paper);--fg:var(--ink)}.sec-dark{--bg:var(--night);--fg:var(--snow)}.sec-light{--bg:var(--paper);--fg:var(--ink)}.sec{background:var(--bg);color:var(--fg)}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);position:relative;z-index:2}.pad{padding-block:clamp(72px,11vh,150px)}.eyebrow{display:inline-flex;align-items:center;grid-gap:12px;gap:12px;font-family:var(--font-body);font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--pop)}.eyebrow .num{font-family:var(--font-mark);font-weight:700;font-size:22px;letter-spacing:0;color:var(--fg);opacity:.55;line-height:1}.eyebrow .bar{width:30px;height:3px;background:var(--pop);border-radius:3px}.sec-title{font-family:var(--font-display);font-size:clamp(2.6rem,7vw,5.4rem);letter-spacing:.005em;line-height:.9;text-transform:uppercase;margin-top:16px}.sec-head{margin-bottom:clamp(38px,6vh,70px)}.mark,.scrawl{font-weight:700;color:var(--pop)}.scrawl{font-family:var(--font-mark)}.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .35s var(--ease),box-shadow .35s var(--ease),color .35s;color:var(--snow)}.nav.scrolled{background:color-mix(in oklab,var(--night) 82%,transparent);backdrop-filter:blur(12px) saturate(1.3);box-shadow:0 1px 0 color-mix(in oklab,var(--snow) 12%,transparent)}.nav-inner{max-width:var(--maxw);margin:0 auto;padding:14px var(--gutter);display:flex;justify-content:space-between;grid-gap:24px;gap:24px}.brand,.nav-inner{align-items:center}.brand{display:inline-flex;grid-gap:11px;gap:11px;font-family:var(--font-display);font-size:20px;letter-spacing:.04em;text-transform:uppercase}.brand .badge{display:grid;place-items:center;width:38px;height:38px;background:var(--pop);color:var(--pop-ink);border-radius:50%;font-size:17px;transform:rotate(-7deg);box-shadow:0 0 0 3px color-mix(in oklab,var(--pop) 26%,transparent)}.brand .slash{opacity:.45;font-family:var(--font-body);font-weight:700;font-size:13px;letter-spacing:.04em}.nav-links{display:flex;grid-gap:2px;gap:2px;align-items:center}.nav-links a{font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in oklab,var(--snow) 70%,transparent);padding:8px 13px;border-radius:999px;transition:color .2s;position:relative}.nav-links a:hover{color:var(--snow)}.nav-links a.active{color:var(--pop)}.nav-links a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;border-radius:3px;background:var(--pop)}.nav-cta{font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;padding:10px 18px;border-radius:999px;border:2.5px solid var(--snow);transition:all .2s var(--ease)}.nav-cta:hover{background:var(--pop);border-color:var(--pop);color:var(--pop-ink);transform:rotate(-1.5deg)}@media (max-width:820px){.nav-links{display:none}}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;background:var(--night);color:var(--snow);padding-top:92px;padding-bottom:40px}.hero,.hero-bg{overflow:hidden}.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;color:color-mix(in oklab,var(--snow) 82%,transparent)}.hero-bg .layer{position:absolute;will-change:transform}.hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(104deg,var(--night) 24%,color-mix(in oklab,var(--night) 42%,transparent) 50%,transparent 80%)}.hero-inner{position:relative;z-index:3;width:100%}.hero-name{font-family:var(--font-display);font-size:clamp(3.2rem,10.5vw,8.6rem);line-height:.84;letter-spacing:.01em;text-transform:uppercase;margin:0}.hero-name .ln{display:block;position:relative}.hero-name .ln2{color:transparent;-webkit-text-stroke:clamp(2px,.42vw,5px) var(--snow)}.hero-name .dot,body.name-fill .hero-name .ln2{color:var(--pop);-webkit-text-stroke:0}.hero-role{font-family:var(--font-body);font-weight:700;font-size:clamp(13px,1.7vw,17px);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab,var(--snow) 78%,transparent);margin-top:22px;display:flex;align-items:center;grid-gap:14px;gap:14px;flex-wrap:wrap}.hero-role .tick{width:8px;height:8px;background:var(--pop);transform:rotate(45deg)}.hero-lede{max-width:32em;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.5;color:color-mix(in oklab,var(--snow) 80%,transparent);margin-top:22px;text-wrap:pretty}.hero-lede strong{color:var(--snow);font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;grid-gap:13px;gap:13px;margin-top:28px}.btn{display:inline-flex;align-items:center;grid-gap:10px;gap:10px;font-family:var(--font-body);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:13px 22px;border-radius:999px;border:2.5px solid color-mix(in oklab,currentColor 32%,transparent);transition:transform .2s var(--ease),box-shadow .2s,color .2s,border-color .2s,background 0s;cursor:pointer;background:transparent;color:inherit}.btn svg{width:17px;height:17px}.btn-primary{background:var(--pop);color:var(--pop-ink);border-color:var(--pop)}.btn-primary:hover{transform:translateY(-3px) rotate(-1.5deg);box-shadow:0 12px 0 -4px color-mix(in oklab,var(--pop) 50%,transparent)}.btn-ghost:hover{border-color:currentColor;transform:translateY(-3px) rotate(1deg)}.scroll-cue{position:absolute;right:var(--gutter);bottom:20px;z-index:4;display:flex;flex-direction:column;align-items:center;grid-gap:6px;gap:6px;font-family:var(--font-mark);font-weight:700;font-size:17px;color:color-mix(in oklab,var(--snow) 60%,transparent)}.scroll-cue svg{width:20px;height:28px;animation:cuebob 1.8s var(--ease) infinite}@keyframes cuebob{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@media (max-width:980px){.scroll-cue{display:none}}.about-grid{display:grid;grid-template-columns:1.18fr .82fr;grid-gap:clamp(36px,7vw,84px);gap:clamp(36px,7vw,84px);align-items:start}.about-body p{font-size:clamp(1.18rem,2.1vw,1.55rem);line-height:1.5;letter-spacing:-.005em;color:color-mix(in oklab,var(--fg) 82%,transparent);text-wrap:pretty}.about-body p+p{margin-top:.9em}.about-body strong{color:var(--fg);font-weight:700}.about-aside{display:flex;flex-direction:column;grid-gap:20px;gap:20px;position:relative}.fact{border-left:4px solid var(--pop);padding:2px 0 2px 16px}.fact dt{font-family:var(--font-body);font-weight:800;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:color-mix(in oklab,var(--fg) 52%,transparent);margin-bottom:4px}.fact dd{font-size:16px;color:var(--fg);font-weight:600;line-height:1.35}.fact dd span{color:color-mix(in oklab,var(--fg) 60%,transparent);font-weight:500}@media (max-width:860px){.about-grid{grid-template-columns:1fr}}.xp-list{display:flex;flex-direction:column}.xp{display:grid;grid-template-columns:210px 1fr;grid-gap:clamp(20px,4vw,56px);gap:clamp(20px,4vw,56px);padding-block:42px;border-top:2px solid color-mix(in oklab,var(--fg) 14%,transparent);position:relative}.xp:first-child{border-top:0}.xp-rail .when{font-family:var(--font-body);font-weight:800;font-size:14px;letter-spacing:.02em;color:var(--pop)}.xp-rail .dur,.xp-rail .where{font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in oklab,var(--fg) 52%,transparent);margin-top:6px}.xp-co{display:flex;align-items:center;grid-gap:14px;gap:14px;flex-wrap:wrap}.xp-co h3{font-family:var(--font-display);font-size:clamp(1.9rem,3.6vw,2.8rem);letter-spacing:.01em;text-transform:uppercase;line-height:.95}.xp-role{font-size:16px;color:color-mix(in oklab,var(--fg) 72%,transparent);margin-top:8px;font-weight:600}.xp-role .arr{color:var(--pop);padding-inline:6px}.xp-bullets{list-style:none;margin-top:20px;display:flex;flex-direction:column;grid-gap:11px;gap:11px}.xp-bullets li{position:relative;padding-left:26px;color:color-mix(in oklab,var(--fg) 80%,transparent);line-height:1.5;text-wrap:pretty}.xp-bullets li:before{content:"";position:absolute;left:0;top:9px;width:13px;height:5px;background:var(--pop);border-radius:3px;transform:rotate(-8deg)}.xp-bullets li b{color:var(--fg);font-weight:700}.xp-tags{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px;margin-top:22px}.chip{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:.02em;color:color-mix(in oklab,var(--fg) 78%,transparent);border:2px solid color-mix(in oklab,var(--fg) 18%,transparent);padding:5px 12px;border-radius:999px;transition:transform .15s var(--ease),border-color .15s,color .15s,background .15s}.chip:hover{border-color:var(--pop);color:var(--pop);transform:translateY(-2px) rotate(-2deg)}@media (max-width:720px){.xp{grid-template-columns:1fr;grid-gap:14px;gap:14px}}.edu-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px;gap:22px}.edu-card{border:3px solid color-mix(in oklab,var(--fg) 16%,transparent);background:color-mix(in oklab,var(--fg) 3%,transparent);border-radius:18px;padding:34px 32px;position:relative;overflow:hidden;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}.edu-card:hover{border-color:var(--pop);transform:translateY(-5px) rotate(-.8deg);box-shadow:10px 12px 0 -2px color-mix(in oklab,var(--pop) 30%,transparent)}.edu-card .badge{display:inline-flex;align-items:center;grid-gap:8px;gap:8px;font-family:var(--font-body);font-weight:800;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pop);margin-bottom:18px}.edu-card .badge.muted{color:color-mix(in oklab,var(--fg) 48%,transparent)}.edu-card h3{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:.01em;text-transform:uppercase;line-height:1.08}.edu-card .degree{font-size:16px;color:var(--fg);margin-top:18px;font-weight:600}.edu-card .when{font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.03em;color:color-mix(in oklab,var(--fg) 55%,transparent);margin-top:6px}.edu-card .focus{margin-top:18px;padding-top:18px;border-top:2px solid color-mix(in oklab,var(--fg) 12%,transparent);font-size:14px;line-height:1.55}.edu-card .focus,.edu-card .focus b{color:color-mix(in oklab,var(--fg) 72%,transparent)}.edu-card .focus b{font-weight:700}.bignum{position:absolute;right:12px;bottom:-28px;font-family:var(--font-display);font-size:8.5rem;line-height:1;color:var(--pop);opacity:.1;pointer-events:none}@media (max-width:720px){.edu-grid{grid-template-columns:1fr}}.skill-groups{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.skill-group{border-top:4px solid color-mix(in oklab,var(--fg) 22%,transparent);padding-top:18px}.skill-group:first-child{border-color:var(--pop)}.skill-group:nth-child(3){border-color:var(--pop-2)}.skill-group h4{font-family:var(--font-body);font-weight:800;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklab,var(--fg) 58%,transparent);margin-bottom:18px}.skill-group ul{list-style:none;display:flex;flex-direction:column;grid-gap:7px;gap:7px}.skill-group li{font-family:var(--font-display);font-size:clamp(1.05rem,1.9vw,1.5rem);letter-spacing:.012em;text-transform:uppercase;color:color-mix(in oklab,var(--fg) 88%,transparent);line-height:1.18;transition:color .18s,transform .18s var(--ease);cursor:default;width:-moz-fit-content;width:fit-content}.skill-group li:hover{color:var(--pop);transform:translateX(6px) rotate(-1deg)}@media (max-width:760px){.skill-groups{grid-template-columns:1fr;grid-gap:30px;gap:30px}}.contact{position:relative;overflow:hidden}.contact-big{font-family:var(--font-display);font-size:clamp(3rem,11vw,9rem);letter-spacing:.01em;line-height:.86;text-transform:uppercase;position:relative}.contact-big .dot{color:var(--pop)}.contact-sub{font-size:clamp(1.05rem,2vw,1.32rem);color:color-mix(in oklab,var(--fg) 76%,transparent);max-width:36em;margin-top:26px;text-wrap:pretty}.contact-links{grid-gap:13px;gap:13px;margin-top:38px}.contact-links,.foot{display:flex;flex-wrap:wrap}.foot{margin-top:clamp(64px,11vh,120px);border-top:2px solid color-mix(in oklab,var(--fg) 14%,transparent);padding-top:24px;justify-content:space-between;align-items:center;grid-gap:12px;gap:12px;font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.03em;color:color-mix(in oklab,var(--fg) 54%,transparent)}.foot .scrawl{font-size:21px}.foot a:hover{color:var(--pop)}.doodle{display:block;overflow:visible}.doodle .stroke{fill:none;stroke:currentColor;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.doodle .thin{stroke-width:4}.doodle .fill-pop{fill:var(--pop)}.doodle .fill-pop2{fill:var(--pop-2)}.doodle .fill-fg{fill:currentColor}.doodle .fill-none{fill:none}.d-bob{animation:bob 3s var(--ease) infinite}.d-bob,.d-bob2{transform-box:fill-box;transform-origin:center}.d-bob2{animation:bob 2.4s var(--ease) infinite}.d-spin{animation:spin 7s linear infinite}.d-carve,.d-spin{transform-box:fill-box;transform-origin:center}.d-carve{animation:carve 2.8s var(--ease) infinite}.d-rep{animation:rep 1.7s var(--ease) infinite;transform-origin:50% 90%}.d-rep,.d-twinkle{transform-box:fill-box}.d-twinkle{animation:twinkle 2.2s var(--ease) infinite;transform-origin:center}.d-reach{animation:reach 2.6s var(--ease) infinite;transform-box:fill-box;transform-origin:50% 80%}@keyframes bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(2deg)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes carve{0%,to{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(6deg) translateY(-4px)}}@keyframes rep{0%,to{transform:translateY(0)}45%{transform:translateY(-13px)}}@keyframes twinkle{0%,to{transform:scale(.7);opacity:.5}50%{transform:scale(1.1);opacity:1}}@keyframes reach{0%,to{transform:rotate(-2deg)}50%{transform:rotate(3deg) translateY(-3px)}}@media (prefers-reduced-motion:reduce){.d-bob,.d-bob2,.d-carve,.d-reach,.d-rep,.d-spin,.d-twinkle,.scroll-cue svg{animation:none}html{scroll-behavior:auto}}.float-doodle{position:absolute;z-index:1;pointer-events:none;color:var(--fg)}.reveal{transform:translateY(26px);opacity:1;transition:transform .7s var(--ease);will-change:transform}.reveal.in{transform:none}body.no-doodles .float-doodle,body.no-doodles .hero-bg{display:none}