@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f3f2eb;--ink:#20251e;--muted:#666c60;--line:#d2d5c8;--lime:#dbfa73;--green:#35533a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #738a32;outline-offset:5px}button{border:0}header{height:94px;margin:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.wordmark{font-size:38px;font-weight:800;letter-spacing:-3px;display:flex;align-items:center}.wordmark span{font-size:12px;align-self:flex-start;margin-top:8px;letter-spacing:0}.wordmark small{font-size:10px;font-weight:500;letter-spacing:1px;line-height:1.4;margin-left:23px;text-transform:uppercase}nav{display:flex;gap:35px;font-size:14px}nav a:hover{border-bottom:1px solid}#language{background:transparent;font-size:12px;white-space:nowrap}.hero{padding:38px 4.5% 45px;position:relative;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:600;display:flex;gap:10px;align-items:center}.dot{height:7px;width:7px;border-radius:50%;background:#658445;display:inline-block}.edition{margin-left:auto;color:var(--muted)}h1,h2,h3,p{margin:0}h1,h2{font-family:'Manrope',Arial,sans-serif;font-weight:500;letter-spacing:-.065em}h1{font-size:clamp(64px,7.9vw,124px);line-height:1.05;padding-top:55px;position:relative;z-index:1}em{font-family:Georgia,serif;font-weight:400;color:var(--green)}h1 em{letter-spacing:-.055em}.hero-bottom{display:flex;align-items:flex-end;padding-top:34px;min-height:175px;position:relative}.hero-bottom p{font-size:15px;line-height:1.7;color:#585f52;z-index:1}.circle-link{border:1px solid var(--ink);border-radius:50%;height:56px;width:56px;display:grid;place-items:center;font-size:29px;margin-left:45px;z-index:1}.circle-link:hover{background:var(--lime)}.hero-art{position:absolute;right:4%;bottom:0;width:280px;height:240px;display:grid;place-items:center;transform:rotate(-14deg)}.hero-art>span{font-family:Georgia,serif;font-size:235px;line-height:1;position:relative;color:#36523d;font-style:italic}.orbit{position:absolute;border:1px solid #a4b589;width:245px;height:130px;border-radius:50%;transform:rotate(22deg)}.o2{transform:rotate(82deg)}.o3{transform:rotate(142deg)}.hero-art i{font-size:8px;letter-spacing:2px;position:absolute;bottom:0;font-style:normal}.section{padding:75px 4.5%;border-top:1px solid var(--line);scroll-margin-top:0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:35px}.section-head h2{font-size:clamp(38px,4.1vw,64px);line-height:1.08;margin-top:20px}.section-head>p{font-size:13px;line-height:1.7;color:var(--muted);padding-bottom:3px}.filters{display:flex;align-items:center;gap:7px;margin:35px 0 25px;flex-wrap:wrap}.filters button{padding:10px 18px;border:1px solid var(--line);background:transparent;border-radius:30px;font-size:12px}.filters button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filters>span{margin-left:auto;font-size:10px;color:var(--muted);letter-spacing:1px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:42px 26px}.project{display:block;text-align:left;background:transparent;padding:0;width:100%}.project:first-child{grid-column:span 2}.project .visual{height:330px;overflow:hidden;position:relative;background:#e2e5d8}.project:first-child .visual{height:470px;background:#171d17}.visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s}.project:hover img{transform:scale(1.035)}.visual .arrow{position:absolute;right:18px;bottom:18px;background:var(--paper);width:43px;height:43px;border-radius:50%;display:grid;place-items:center;font-size:22px}.project-meta{display:flex;justify-content:space-between;align-items:center;margin-top:17px;gap:12px}.project h3{font-size:25px;font-weight:500;letter-spacing:-.7px}.project-meta small{font-size:10px;letter-spacing:1px;text-align:right}.project p{font-size:13px;color:var(--muted);margin-top:7px;line-height:1.5}.tool-visual{background:var(--lime)!important;display:flex;align-items:center;justify-content:center;gap:12px}.tool-visual .file{height:160px;width:115px;background:var(--paper);border:1px solid var(--ink);box-shadow:6px 6px 0 #20251e;display:flex;flex-direction:column;justify-content:space-between;padding:20px;font-family:monospace}.file b{font-size:26px}.file span{font-size:10px}.file-arrow{font-size:40px}.text-link{font-size:13px;border-bottom:1px solid;padding-bottom:4px;display:inline-block}.portfolio-link{margin-top:35px}.playground{background:#202a21;color:#f0f1e7;border:0}.playground .eyebrow{color:#bdd594}.playground .section-head>p{color:#b7c1ae}.play-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.play-card{background:#2c392c;border:1px solid #4c5a47;padding:14px;text-align:left;display:flex;flex-direction:column;gap:15px}.play-cover{height:205px;overflow:hidden;position:relative;display:grid;place-items:center}.beat{background:#e6ef92;color:#253321;font-weight:800;font-size:53px;line-height:.87;letter-spacing:-3px;transform:rotate(0)}.beat span{transform:rotate(-8deg)}.beat:after{content:'●  ◎  ■  ◆  ▲';font-size:19px;position:absolute;bottom:20px;letter-spacing:6px}.serpentine{background:#e9c9f0}.snake-shape{width:150px;height:95px;border:22px solid #363350;border-radius:45px 45px 45px 0;transform:rotate(-15deg)}.snake-shape:after{content:'';position:absolute;width:10px;height:10px;background:#f3e291;border-radius:50%;right:-13px;top:12px}.gem{position:absolute;width:15px;height:15px;transform:rotate(45deg);background:#e47d36;top:35px;right:55px}.pattern{background:#eae9e1;background-image:repeating-radial-gradient(ellipse at center,transparent 0px,transparent 9px,#5b6558 10px,#5b6558 11px,transparent 12px,transparent 19px);background-size:51px 51px}.pattern:after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;background:#df815c60;filter:blur(15px)}.play-card small{font-size:9px;letter-spacing:1px;color:#b9c8ab}.play-card h3{font-size:24px;font-weight:500;letter-spacing:-.5px}.play-card p{font-size:12px;line-height:1.7;color:#bac5b4;flex:1}.play-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #4c5a47;padding-top:15px;gap:10px}.play-actions button{background:var(--lime);border-radius:25px;padding:9px 15px;font-size:11px}.play-actions a{font-size:11px}.play-note{color:#a4b09c;font-size:10px;line-height:1.7;margin-top:22px}.about{display:grid;grid-template-columns:1fr 1fr;gap:12%}.about h2{font-size:clamp(45px,5vw,72px);line-height:1.04;margin:25px 0}.portrait{display:flex;align-items:center;gap:20px;margin:32px 0}.portrait img{width:90px;height:105px;object-fit:cover;filter:grayscale(100%);border-radius:50% 50% 3px 3px}.portrait span{font-size:12px;line-height:1.7;letter-spacing:1px}.about-intro>p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:26px;max-width:410px}.button{display:inline-block;padding:14px 23px;border-radius:30px;font-size:12px}.dark{background:var(--ink);color:var(--paper);margin:0 16px 16px 0}.timeline{padding:26px 0;border-bottom:1px solid var(--line)}.timeline small{font-size:9px;color:var(--muted);letter-spacing:1px}.timeline h3{font-size:20px;font-weight:500;margin:10px 0 7px}.timeline p{font-size:13px;line-height:1.7;color:var(--muted)}details{margin-top:13px}summary{font-size:12px;cursor:pointer;line-height:1.5}details p{margin-top:15px!important;font-size:12px!important;line-height:1.8!important}.skills{margin:28px 0}.skills h3{font-weight:500;font-size:18px;margin-bottom:15px}.skills p{font-size:12px;color:var(--muted);line-height:1.9}.awards{border-top:1px solid var(--line);padding-top:20px}.awards li{font-size:12px;line-height:1.8;margin-bottom:9px}.contact{padding:65px 4.5% 45px;background:var(--lime)}.contact>a{font-family:'Manrope',Arial,sans-serif;font-size:clamp(45px,7.4vw,110px);line-height:1.04;letter-spacing:-.065em;display:block;margin:28px 0 40px}.contact em{color:var(--ink)}.contact-bottom{display:flex;align-items:center;gap:25px;font-size:12px}.contact-bottom button{background:transparent;font-size:11px;border-bottom:1px solid}.contact-bottom a:first-of-type{margin-left:auto}.contact #copy-status{font-size:11px;margin-top:10px;min-height:13px}footer{padding:25px 4.5%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;gap:20px}dialog{border:0;background:var(--paper);color:var(--ink);width:min(1100px,95vw);max-height:92vh;padding:50px;overscroll-behavior:contain}dialog::backdrop{background:#172015aa;backdrop-filter:blur(6px)}body.modal-open{overflow:hidden}.close{position:sticky;top:0;float:right;background:var(--ink);color:white;width:38px;height:38px;border-radius:50%;font-size:28px;z-index:3}.dialog-label{font-size:10px;letter-spacing:1px;color:var(--green);margin-bottom:13px}dialog h2{font-size:clamp(30px,5vw,60px);line-height:1.1;clear:none;padding-right:30px}dialog .lead{font-size:16px;line-height:1.7;margin:23px 0;color:var(--muted);max-width:760px}.facts{display:flex;gap:30px;border-block:1px solid var(--line);padding:20px 0;margin:25px 0;font-size:12px;flex-wrap:wrap}.facts b{display:block;font-size:9px;letter-spacing:1px;margin-bottom:7px}.case-copy{max-width:730px;margin:25px 0;font-size:14px;line-height:1.8}.case-copy h3{font-size:19px;margin-top:20px;font-weight:500}.case-gallery{display:grid;gap:18px;margin:30px 0}.case-gallery img{display:block;width:100%;height:auto}.demo-launch{padding:35px;background:#e5e9d8;text-align:center;margin-top:25px}.demo-launch p{font-size:13px;line-height:1.7;margin-bottom:20px}.demo-launch button{background:var(--ink);color:white;padding:13px 20px;border-radius:25px}.demo-frame{width:100%;height:65vh;border:1px solid var(--line);background:white;margin-top:25px}.external-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:15px}.skip{position:fixed;top:-60px;background:var(--lime);padding:15px;z-index:99}.skip:focus{top:0}@media(min-width:1600px){main,header,footer{max-width:1600px;margin:auto}header{padding:0 4.5%}}@media(max-width:800px){header{height:80px;gap:12px}.wordmark{font-size:31px}.wordmark small{display:none}nav{gap:16px;font-size:11px}.hero{padding-top:26px}.eyebrow{font-size:9px;letter-spacing:1px}.edition{display:none}h1{padding-top:40px;font-size:clamp(52px,10vw,80px)}.hero-bottom{min-height:200px;align-items:flex-start}.hero-bottom p{font-size:12px;max-width:240px}.hero-art{width:160px;height:150px;right:-25px;bottom:8px;opacity:.75}.hero-art>span{font-size:155px}.orbit{width:155px;height:90px}.hero-art i{display:none}.circle-link{width:45px;height:45px;position:absolute;left:0;bottom:10px;margin:0}.section{padding:50px 5%}.section-head{gap:20px;align-items:flex-start}.section-head h2{font-size:38px}.section-head>p{font-size:11px;max-width:160px}.filters button{padding:8px 13px;font-size:10px}.filters>span{display:none}.projects{gap:28px 18px}.project .visual{height:215px}.project:first-child .visual{height:300px}.project h3{font-size:20px}.project-meta{align-items:flex-start;flex-direction:column;gap:5px}.project-meta small{text-align:left;font-size:8px}.project p{font-size:11px}.play-grid{grid-template-columns:1fr}.play-card{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.play-cover{grid-row:span 4;height:210px}.play-card p{font-size:11px}.play-card h3{font-size:24px}.play-card small{font-size:8px}.about{grid-template-columns:1fr;gap:50px}.about-intro>p{max-width:none}.contact-bottom{flex-wrap:wrap;gap:20px}.contact-bottom a:first-of-type{margin-left:0}footer{flex-wrap:wrap;line-height:1.6}footer span:nth-child(2){display:none}dialog{padding:25px}.tool-visual .file{width:75px;height:125px;padding:10px}.file b{font-size:20px}.file-arrow{font-size:24px}}@media(max-width:480px){nav a:nth-child(4){display:none}.hero h1{font-size:51px}.hero-bottom p{font-size:12px}.section-head{display:block}.section-head>p{margin-top:20px;max-width:none}.projects{grid-template-columns:1fr}.project:first-child{grid-column:auto}.project .visual,.project:first-child .visual{height:245px}.project-meta{flex-direction:row;align-items:center}.project-meta small{max-width:110px;text-align:right;line-height:1.5}.play-card{display:flex}.play-cover{height:225px}.contact>a{font-size:52px}.contact-bottom{gap:16px}.contact-bottom>span{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Keep the full original project cover visible, including its title and context. */
.project .visual:not(.tool-visual){height:auto;aspect-ratio:2380/842}
.project .visual img{object-fit:contain}
.case-gallery a{display:block;cursor:zoom-in}

.profile-links{display:flex;gap:10px;margin-top:22px;position:relative;z-index:2}.profile-links a{font-size:12px;border:1px solid #a8b19b;padding:9px 14px;border-radius:25px;display:flex;align-items:center;gap:7px}.profile-links a:hover{background:var(--lime);border-color:var(--ink)}.linkedin-mark{font-family:Arial,sans-serif;font-size:11px;font-weight:bold;border:1px solid;border-radius:2px;padding:0 2px}.hero-bottom{align-items:center}.hero-intro{position:relative;z-index:1}.other-experience{border-top:1px solid var(--line);padding-top:20px;font-size:12px;line-height:1.8;color:var(--muted)}.play-grid{grid-template-columns:1fr 1fr}.recognition{background:#e7ebde}.awards-list{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.award-row{border-top:1px solid #b9c4ac;display:grid;grid-template-columns:66px 1fr 28px;gap:16px;padding:25px 0;align-items:start}.award-row h3{font-size:23px;font-weight:500;letter-spacing:-.5px}.award-row p{font-size:12px;line-height:1.7;margin-top:10px;color:#4d5a45}.award-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.award-year{font-size:10px;letter-spacing:.8px;padding-top:8px}.award-star{font-size:29px;color:#58773a}.recognition .section-head{margin-bottom:45px}
@media(max-width:800px){nav{gap:12px}.hero-bottom{align-items:flex-start;min-height:250px}.hero-intro{max-width:250px}.profile-links{gap:7px}.profile-links a{font-size:10px;padding:8px 11px}.circle-link{bottom:0}.play-grid{grid-template-columns:1fr}.awards-list{column-gap:25px}.award-row{grid-template-columns:1fr 25px;gap:8px}.award-year{grid-column:1/-1}.award-row h3{font-size:21px}.award-row p{font-size:11px}}@media(max-width:480px){nav{gap:11px;font-size:10px}.wordmark{font-size:28px}header{gap:10px}#language{font-size:10px}.hero-art{right:-45px;bottom:35px;width:145px;height:145px}.hero-art .orbit{width:140px;height:85px}.hero-art>span{font-size:135px}.awards-list{grid-template-columns:1fr}.award-row{grid-template-columns:65px 1fr 25px;gap:10px}.award-year{grid-column:auto}}

.award-row{grid-template-columns:58px 1fr 86px;column-gap:12px}.award-mark{width:86px;height:82px;padding:9px;display:grid;place-items:center;background:#fff;border-radius:3px;align-self:center}.award-mark img{max-width:100%;max-height:64px;object-fit:contain}.scholarship-mark{font-size:20px;letter-spacing:-1px;color:var(--green);align-self:center;text-align:center}.award-row:nth-child(3) .award-mark{padding:8px}.award-row:nth-child(3) img{max-height:44px}@media(max-width:800px){.award-row{grid-template-columns:1fr 78px}.award-year{grid-column:1/-1}.award-mark{width:78px;height:74px}.award-row h3{font-size:20px}}@media(max-width:480px){.award-row{grid-template-columns:1fr 80px;gap:10px}.award-year{grid-column:1/-1}.award-mark{width:80px;height:78px}.award-row p{font-size:12px}}
@media(max-width:480px){nav a:nth-child(4){display:block}nav a[href="#contact"]{display:none}}

/* Compact awards list with original marks. */
.recognition{padding-top:34px;padding-bottom:34px}.recognition .section-head{margin-bottom:20px;align-items:center}.recognition .section-head h2{font-size:29px;letter-spacing:-1px;margin-top:10px}.recognition .section-head>p{font-size:11px}.recognition .eyebrow{font-size:9px}.awards-list{column-gap:42px}.award-row{grid-template-columns:56px 1fr 48px;gap:10px;padding:14px 0;align-items:center}.award-row h3{font-size:16px;letter-spacing:-.2px}.award-row p{font-size:10px;line-height:1.6;margin-top:5px}.award-row small{font-size:9px;margin-top:3px}.award-year{font-size:9px;padding-top:0;align-self:start;margin-top:4px}.award-mark{width:48px;height:48px;padding:5px}.award-mark img{max-height:38px}.award-row:nth-child(3) .award-mark{padding:5px}.award-row:nth-child(3) img{max-height:34px}.scholarship-mark{font-size:15px}
@media(max-width:800px){.recognition{padding-top:30px;padding-bottom:30px}.award-row{grid-template-columns:1fr 48px}.award-year{grid-column:1/-1;margin:0}}
@media(max-width:480px){.recognition .section-head{display:flex;align-items:end;gap:16px}.recognition .section-head h2{font-size:26px}.recognition .section-head>p{font-size:9px;max-width:160px;margin-top:0}.award-row{grid-template-columns:51px 1fr 44px;gap:8px;padding:13px 0}.award-year{grid-column:auto;font-size:8px;margin-top:4px}.award-row h3{font-size:15px}.award-row p{font-size:10px}.award-mark{width:44px;height:44px}.award-mark img{max-height:34px}}
