@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--ink: #101827;--ink-soft: #263346;--paper: #f5f4ef;--paper-bright: #fbfaf6;--white: #ffffff;--line: rgba(16, 24, 39, .14);--muted: #677183;--lime: #c7ee66;--lime-dark: #a6d64d;--coral: #ff725d;--lavender: #dcd6ff;--blue: #bddbff;--display: "Space Grotesk", "DM Sans", sans-serif;--body: "DM Sans", Arial, sans-serif;--max: 1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.site-shell{overflow:hidden}.section-pad{padding-left:max(6vw,calc((100vw - var(--max)) / 2));padding-right:max(6vw,calc((100vw - var(--max)) / 2))}.topbar{align-items:center;background:#f5f4efe6;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;left:0;padding:22px max(6vw,calc((100vw - var(--max)) / 2));position:fixed;right:0;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.wordmark{align-items:center;display:inline-flex;gap:11px;font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.06em}.wordmark-mark{align-items:center;background:var(--ink);border-radius:50%;color:var(--lime);display:inline-flex;font-size:13px;height:30px;justify-content:center;letter-spacing:-.11em;width:30px}.wordmark-name span{color:var(--coral)}.main-nav{align-items:center;display:flex;gap:30px}.main-nav>a{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.01em;position:relative}.main-nav>a:after{background:var(--coral);bottom:-9px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;width:100%}.main-nav>a:hover:after{transform:scaleX(1)}.language-switch{align-items:center;background:transparent;border:1px solid var(--ink);border-radius:50px;cursor:pointer;display:inline-flex;font-size:11px;font-weight:700;gap:7px;letter-spacing:.08em;padding:8px 12px;transition:background .2s ease,color .2s ease}.language-switch:hover{background:var(--ink);color:var(--lime)}.language-dot{background:var(--coral);border-radius:50%;display:inline-block;height:6px;width:6px}.nav-toggle{background:transparent;border:0;display:none}.hero{background:var(--paper);min-height:780px;padding-bottom:80px;padding-top:172px;position:relative}.hero-content{max-width:700px;position:relative;z-index:2}.eyebrow,.section-kicker,.project-type,.company-label,.contact-label{font-size:10px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.eyebrow{align-items:center;color:var(--muted);display:flex;gap:12px;margin:0 0 27px}.eyebrow-line{background:var(--coral);display:inline-block;height:2px;width:37px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);line-height:1.02}h1{font-size:clamp(3.9rem,8.2vw,7.45rem);font-weight:600;letter-spacing:-.09em;margin-bottom:32px;max-width:780px}h1 em,h2 em{color:var(--coral);font-style:normal}.hero-lede{color:var(--ink-soft);font-size:19px;line-height:1.6;max-width:495px}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{align-items:center;border:1px solid var(--ink);border-radius:999px;display:inline-flex;font-size:13px;font-weight:700;gap:20px;justify-content:center;padding:14px 18px 14px 21px;transition:background .25s ease,color .25s ease,transform .25s ease}.button:hover{transform:translateY(-3px)}.button-primary{background:var(--ink);color:var(--lime)}.button-primary:hover{background:var(--coral);border-color:var(--coral);color:var(--ink)}.button-ghost{color:var(--ink);padding-right:21px}.button-ghost:hover{background:var(--ink);color:var(--lime)}.button-arrow{font-size:19px;line-height:0}.hero-meta{align-items:center;color:var(--muted);display:flex;font-size:11px;gap:11px;margin-top:54px}.status-dot{background:var(--lime-dark);border-radius:50%;box-shadow:0 0 0 4px #a6d64d2e;display:inline-block;height:7px;margin-right:9px;vertical-align:1px;width:7px}.hero-meta-divider{background:var(--line);height:15px;width:1px}.hero-visual{position:absolute;right:max(7vw,calc((100vw - var(--max)) / 2));top:168px;width:min(31vw,380px)}.portrait-frame{background:var(--blue);height:465px;overflow:hidden;position:relative;transform:rotate(3deg);width:100%}.portrait-frame img{filter:grayscale(100%);height:100%;object-fit:cover;object-position:center top;mix-blend-mode:multiply;opacity:.86;position:relative;width:100%}.portrait-grid{background-image:linear-gradient(rgba(16,24,39,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(16,24,39,.1) 1px,transparent 1px);background-size:34px 34px;top:0;right:0;bottom:0;left:0;opacity:.5;position:absolute;z-index:2}.portrait-accent{background:var(--coral);border-radius:50%;height:150px;position:absolute;right:-40px;top:-36px;width:150px;z-index:3}.portrait-label{color:var(--ink);font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.16em;line-height:1.35;position:absolute;z-index:4}.portrait-label-top{left:19px;top:17px}.portrait-label-bottom{bottom:20px;right:20px;text-align:right}.floating-note{background:var(--paper-bright);box-shadow:0 12px 35px #1018271f;font-size:11px;letter-spacing:.04em;padding:12px 14px;position:absolute;z-index:5}.note-top{left:-53px;top:72px;transform:rotate(-7deg)}.note-top span{color:var(--coral);font-size:17px;margin-right:7px}.note-bottom{bottom:28px;left:-49px;transform:rotate(4deg)}.note-bottom strong{display:block;font-family:var(--display);font-size:13px;margin-top:2px}.scroll-cue{align-items:center;bottom:44px;color:var(--muted);display:flex;font-size:10px;gap:12px;left:max(6vw,calc((100vw - var(--max)) / 2));letter-spacing:.15em;position:absolute;text-transform:uppercase;transform:rotate(-90deg) translate(-100%);transform-origin:left center}.scroll-line{background:var(--coral);height:1px;width:45px}.hero-orbit{border:1px solid rgba(16,24,39,.09);border-radius:50%;pointer-events:none;position:absolute}.orbit-one{height:520px;right:3%;top:115px;transform:rotate(-19deg);width:210px}.orbit-two{border-color:#ff725d59;height:300px;right:13%;top:180px;transform:rotate(32deg);width:125px}.section-light{background:var(--paper-bright)}.section-kicker{align-items:center;color:var(--muted);display:flex;gap:14px;margin-bottom:70px}.section-kicker>span:first-child{color:var(--coral);font-family:var(--display);font-size:15px;letter-spacing:0}.kicker-line{background:var(--line);height:1px;width:46px}.about{padding-bottom:130px;padding-top:126px}.about-layout{display:grid;gap:9vw;grid-template-columns:1fr 1fr}.section-heading h2,.skills-intro h2,.experience-head h2,.projects-head h2,.contact h2{font-size:clamp(2.7rem,5.6vw,5rem);font-weight:600;letter-spacing:-.085em;margin-bottom:26px}.section-heading p,.skills-intro p,.experience-head>p{color:var(--muted);font-size:15px;line-height:1.7;max-width:250px}.about-copy{border-top:1px solid var(--line);padding-top:25px}.about-copy p{color:var(--ink-soft);font-size:17px;line-height:1.72;max-width:520px}.about-signature{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:12px;margin-top:35px}.signature-stroke{color:var(--coral);font-family:Georgia,serif;font-size:46px;font-style:italic;line-height:.5}.principles-row{border-top:1px solid var(--line);display:grid;gap:30px;grid-template-columns:repeat(3,1fr);margin-top:106px;padding-top:23px}.principle-number{color:var(--coral);font-family:var(--display);font-size:13px}.principle h3{font-size:22px;letter-spacing:-.05em;margin:36px 0 12px}.principle p{color:var(--muted);font-size:13px;line-height:1.7;max-width:250px}.skills{background:var(--ink);color:var(--paper);padding-bottom:138px;padding-top:130px;position:relative}.skills:after{border:1px solid rgba(199,238,102,.18);border-radius:50%;content:"";height:440px;position:absolute;right:-120px;top:70px;width:270px}.skills .section-kicker{color:#f5f4ef87}.skills .section-kicker>span:first-child{color:var(--lime)}.skills .kicker-line{background:#f5f4ef33}.skills-intro{align-items:end;display:flex;justify-content:space-between;margin-bottom:70px}.skills-intro h2{margin-bottom:0}.skills-intro h2 em{color:var(--lime)}.skills-intro p{color:#f5f4ef8c;max-width:260px}.skills-cloud{display:flex;flex-wrap:wrap;gap:10px;max-width:930px;position:relative;z-index:1}.skill-pill{border:1px solid rgba(245,244,239,.3);border-radius:100px;color:#f5f4efc7;font-size:14px;padding:12px 17px;transition:background .25s ease,border-color .25s ease,color .25s ease,transform .25s ease}.skill-pill:hover{background:var(--coral);border-color:var(--coral);color:var(--ink);transform:rotate(-2deg)}.skill-pill.skill-featured{background:var(--lime);border-color:var(--lime);color:var(--ink);font-weight:700}.skills-note{align-items:center;border-top:1px solid rgba(245,244,239,.2);color:#f5f4ef94;display:flex;font-size:12px;gap:13px;margin-top:75px;padding-top:20px}.skills-note-icon{color:var(--lime);font-size:21px}.experience{padding-bottom:145px;padding-top:130px}.experience-head{display:flex;justify-content:space-between}.experience-head>p{margin-top:11px}.timeline{margin-top:75px}.timeline-item{border-top:1px solid var(--line);display:grid;gap:22px;grid-template-columns:24px 180px 1fr;padding:30px 0 36px}.timeline-item:last-child{border-bottom:1px solid var(--line)}.timeline-marker{padding-top:6px}.timeline-marker span{background:var(--coral);border:4px solid var(--paper-bright);border-radius:50%;box-shadow:0 0 0 1px var(--coral);display:block;height:13px;width:13px}.timeline-featured .timeline-marker span{background:var(--lime-dark);box-shadow:0 0 0 1px var(--lime-dark)}.timeline-date{color:var(--muted);font-family:var(--display);font-size:12px;padding-top:3px}.company-label{color:var(--coral);margin:0 0 10px}.company-label span{color:var(--muted);letter-spacing:.06em}.timeline-body h3{font-size:28px;letter-spacing:-.07em;margin-bottom:12px}.timeline-body>p:not(.company-label){color:var(--muted);font-size:14px;line-height:1.7;max-width:620px}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.tag-row span{background:#1018270f;border-radius:4px;color:var(--muted);font-size:10px;padding:5px 8px}.skills .tag-row span,.project-card-wide .tag-row span{background:#10182717}.projects{background:var(--paper);padding-bottom:150px;padding-top:130px}.projects-head{align-items:end;display:flex;justify-content:space-between;margin-bottom:65px}.project-filter{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:22px;padding-bottom:11px}.filter-button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:11px;padding:0}.filter-button.is-active,.filter-button:hover{color:var(--coral)}.project-grid{display:grid;gap:36px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{min-width:0}.project-card-wide{grid-column:span 2}.project-card.is-hidden{display:none}.project-visual{height:300px;overflow:hidden;position:relative}.project-card-wide .project-visual{height:365px}.visual-ink{background:var(--lavender)}.visual-code{color:var(--ink);font-family:Courier New,monospace;font-size:clamp(1.8rem,4vw,4rem);font-weight:700;left:12%;line-height:1.1;position:absolute;top:20%;transform:rotate(-5deg)}.visual-stamp{bottom:18px;color:var(--ink);font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.15em;line-height:1.3;position:absolute;right:20px;text-align:right}.project-index{color:var(--ink);font-family:var(--display);font-size:13px;font-weight:700;left:20px;position:absolute;top:18px}.visual-signal{background:var(--coral)}.signal-dot{background:var(--ink);border-radius:50%;height:54px;position:absolute;width:54px}.dot-a{left:17%;top:36%}.dot-b{left:45%;top:56%}.dot-c{left:73%;top:27%}.signal-line{border-bottom:2px dashed var(--ink);border-top:2px dashed var(--ink);height:74px;left:20%;position:absolute;top:41%;transform:rotate(-13deg);width:64%}.visual-green{background:var(--lime)}.green-shape{border:2px solid var(--ink);border-radius:50%;position:absolute}.green-shape-one{height:220px;left:18%;top:20%;width:220px}.green-shape-two{height:136px;left:38%;top:34%;width:136px}.visual-library{background:var(--blue)}.library-word{color:var(--ink);font-family:var(--display);font-size:clamp(3rem,7vw,7rem);font-weight:600;left:10%;letter-spacing:-.12em;line-height:.83;position:absolute;top:24%;transform:rotate(-8deg)}.library-word em{color:var(--coral);font-style:normal}.project-content{padding:23px 0 0}.project-type{color:var(--coral);margin-bottom:12px}.project-content h3{font-size:32px;letter-spacing:-.08em;margin-bottom:15px}.project-content>p:not(.project-type){color:var(--muted);font-size:14px;line-height:1.7;max-width:480px}.contact{background:var(--ink);color:var(--paper);min-height:720px;overflow:hidden;padding-bottom:115px;padding-top:120px;position:relative}.contact .section-kicker{color:#f5f4ef8c;position:relative;z-index:1}.contact .section-kicker>span:first-child{color:var(--lime)}.contact .kicker-line{background:#f5f4ef33}.contact-backdrop{color:#f5f4ef0b;font-family:var(--display);font-size:clamp(6rem,16vw,15rem);font-weight:700;letter-spacing:-.13em;line-height:.75;position:absolute;right:-3vw;top:160px;white-space:nowrap}.contact-backdrop span{color:#c7ee660f}.contact-layout{display:grid;gap:10vw;grid-template-columns:1.1fr .9fr;position:relative;z-index:1}.contact h2{font-size:clamp(3.5rem,7vw,7rem);margin-bottom:32px}.contact h2 em{color:var(--lime)}.contact-copy>p{color:#f5f4ef9e;font-size:17px;line-height:1.7;max-width:445px}.contact-copy .button{margin-top:15px}.contact-details{padding-top:18px}.contact-link{align-items:end;border-bottom:1px solid rgba(245,244,239,.24);display:grid;gap:12px;grid-template-columns:78px 1fr 20px;padding:18px 0;transition:color .2s ease,padding .2s ease}.contact-link:hover{color:var(--lime);padding-left:8px}.contact-label{color:#f5f4ef6e;font-size:9px}.contact-arrow{font-size:21px}.contact-location{color:#f5f4ef8c;font-size:12px;margin-top:35px}.footer{align-items:center;background:var(--ink);border-top:1px solid rgba(245,244,239,.18);color:#f5f4ef8c;display:flex;font-size:11px;justify-content:space-between;padding-bottom:26px;padding-top:26px}.footer-brand,.footer-right{align-items:center;display:flex;gap:11px}.footer .wordmark-mark{background:var(--lime);color:var(--ink);height:23px;width:23px}.footer-right{gap:25px}.footer-right a{color:var(--lime)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}@media(max-width:900px){.hero{min-height:auto;padding-bottom:150px}.hero-visual{margin:80px auto 0;position:relative;right:auto;top:auto;width:min(67vw,380px)}.hero-content{max-width:700px}.scroll-cue{display:none}.orbit-one{right:-6%;top:640px}.orbit-two{right:10%;top:700px}.about-layout,.contact-layout{gap:55px;grid-template-columns:1fr}.skills-intro,.experience-head{align-items:start;flex-direction:column;gap:25px}.experience-head>p{margin-top:0}.principles-row{margin-top:75px}}@media(max-width:650px){.section-pad{padding-left:23px;padding-right:23px}.topbar{padding:17px 23px}.main-nav{align-items:stretch;background:var(--paper-bright);border-bottom:1px solid var(--line);flex-direction:column;gap:0;left:0;padding:16px 23px 22px;position:absolute;right:0;top:67px;transform:translateY(-140%);transition:transform .3s ease}.main-nav.is-open{transform:translateY(0)}.main-nav>a,.language-switch{padding:12px 0}.main-nav>a:after{bottom:7px}.language-switch{align-self:flex-start;padding:8px 12px}.nav-toggle{cursor:pointer;display:grid;gap:5px;padding:8px 0 8px 8px}.nav-toggle span{background:var(--ink);display:block;height:2px;transition:transform .2s ease;width:25px}.nav-toggle.is-active span:first-child{transform:translateY(3.5px) rotate(45deg)}.nav-toggle.is-active span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{padding-top:125px}.hero h1{font-size:clamp(3.55rem,16vw,6rem)}.hero-lede{font-size:17px}.hero-visual{width:min(76vw,340px)}.portrait-frame{height:405px}.note-top{left:-12px}.note-bottom{left:-15px}.hero-meta{align-items:start;flex-direction:column;gap:8px}.hero-meta-divider{display:none}.about,.skills,.experience,.projects,.contact{padding-bottom:90px;padding-top:90px}.section-kicker{margin-bottom:50px}.section-heading h2,.skills-intro h2,.experience-head h2,.projects-head h2{font-size:3.25rem}.principles-row{grid-template-columns:1fr}.principle h3{margin-top:18px}.principle p{max-width:340px}.skills-intro{margin-bottom:45px}.skills-note{align-items:start}.timeline-item{gap:15px;grid-template-columns:15px 1fr}.timeline-date{grid-column:2;grid-row:1}.timeline-body{grid-column:2}.timeline-marker{grid-column:1;grid-row:1 / span 2}.timeline-body h3{font-size:25px}.projects-head{align-items:start;flex-direction:column;gap:32px}.project-filter{gap:14px}.project-grid{grid-template-columns:1fr}.project-card-wide{grid-column:span 1}.project-card-wide .project-visual,.project-visual{height:260px}.project-content h3{font-size:28px}.contact-backdrop{font-size:29vw;top:245px}.contact h2{font-size:4rem}.contact-link{grid-template-columns:64px 1fr 18px}.footer{align-items:start;flex-direction:column;gap:20px}.footer-right{justify-content:space-between;width:100%}}
