@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#f5f4ee;--ink:#172c29;--muted:#586762;--line:#d6dbd2;--green:#285e4c;--lime:#d8ee9a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{outline-offset:5px}button{cursor:pointer}header{display:flex;justify-content:space-between;align-items:center;padding:24px 5%;border-bottom:1px solid var(--line);background:var(--bg)}.brand{font:700 26px 'Space Grotesk',sans-serif}.brand span{font:11px 'DM Sans',sans-serif;letter-spacing:2px;margin-left:12px}nav{display:flex;gap:28px;align-items:center;font-size:13px}.contact{border-bottom:1px solid var(--ink)}main{max-width:1440px;margin:auto}section{padding:90px 6%}.hero{padding-top:95px;padding-bottom:35px;background:radial-gradient(ellipse at 92% 20%,#dce6cc 0,transparent 42%)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px}.dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:8px}h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;font-weight:500;line-height:1.1;letter-spacing:-2px}h1{font-size:clamp(50px,6.8vw,98px);margin:32px 0 42px;max-width:1100px}h1 em{font-style:normal;color:var(--green)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px}.hero-bottom p{max-width:525px;font-size:19px;margin:0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--ink);color:white;border:0;padding:14px 22px;font-size:13px;border-radius:3px}.button:hover{background:var(--green)}.credentials{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:65px;padding-top:25px;font-size:12px;color:var(--muted)}.credentials strong{color:var(--ink);font-weight:500;margin-left:7px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}h2{font-size:clamp(30px,3.2vw,47px);margin:18px 0 0}.section-head>p{font-size:13px;color:var(--muted)}.case{display:grid;grid-template-columns:32% 68%;border-top:1px solid var(--line);padding:36px 0 45px;gap:0}.case-side{padding-right:45px}.tag{font-size:10px;letter-spacing:1.3px;font-weight:700;color:var(--green)}h3{font-size:35px;margin:20px 0}.case-side p{color:var(--muted);font-size:14px}.case-side a{font-size:13px;border-bottom:1px solid var(--green)}.metric{font-family:'Space Grotesk';font-size:40px;margin-top:28px}.metric small{display:block;font:11px/1.6 'DM Sans';color:var(--muted);max-width:210px}.case-body{padding-left:40px;border-left:1px solid var(--line)}h4{font-size:25px;letter-spacing:-.6px;margin:0 0 18px}.case-body>p{max-width:710px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px}h5{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;margin:0 0 12px}p{margin:0 0 18px}.two-col p,.two-col li{font-size:14px}ul{padding-left:18px;margin:0 0 20px}li{margin-bottom:7px}small,.note{font-size:11px;color:var(--muted)}details{border-top:1px solid var(--line);margin-top:28px;padding:18px 0 0}summary{font-size:13px;cursor:pointer;list-style:none;font-weight:600}summary span{float:right}details[open] summary{margin-bottom:18px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{border:1px solid var(--line);padding:4px 10px;font-size:11px;border-radius:20px}.lab{background:#e8ede3}.lab-tabs{display:flex;border-bottom:1px solid #b7c5b8;gap:20px;margin:25px 0 35px}.lab-tabs button{border:0;background:none;padding:14px 0;color:var(--muted);font-size:13px}.lab-tabs button[aria-selected=true]{border-bottom:3px solid var(--green);color:var(--ink);font-weight:700}.panel{display:grid;grid-template-columns:1fr 1fr;gap:50px}.panel[hidden]{display:none}.panel>div>p{font-size:14px;color:var(--muted)}form{display:grid;gap:15px}label{display:grid;gap:5px;font-size:12px;font-weight:600}input{background:#f8faf6;border:1px solid #bdc9bd;border-radius:3px;padding:10px 12px;width:100%;color:var(--ink)}.actions{display:flex;gap:12px;flex-wrap:wrap}.actions>button:not(.button){background:none;border:1px solid #9aab9d;padding:8px 15px;font-size:12px}.console{background:#172c29;color:#e4eedc;border-radius:5px;padding:25px;font:12px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}.console p,.console li{font:12px/1.8 ui-monospace,monospace;color:#c2d0c3}.console-head{font-size:10px;letter-spacing:1.5px;border-bottom:1px solid #40554e;padding-bottom:15px;margin-bottom:20px;display:flex;justify-content:space-between}.console button{color:#d8ee9a;background:none;border:1px solid #627461;font-size:10px}.journal-row{border-bottom:1px solid #40554e;padding:12px 0}.good{color:#d8ee9a}.console h4{font-size:20px;color:#d8ee9a}.architecture{margin-top:36px;border-color:#bbc7b8}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:45px}.large{font-size:23px;line-height:1.5}.education{border-left:1px solid var(--line);padding-left:35px}.education h4{margin-top:30px;font-size:21px}.education h4:first-child{margin-top:0}.education p,.education li{font-size:13px;color:var(--muted)}.closing{background:var(--ink);color:var(--bg);padding-top:70px;padding-bottom:70px}.closing h2{font-size:clamp(40px,5vw,72px);margin-bottom:32px}.closing a{font-size:17px;border-bottom:1px solid #9ab79b}footer{padding:27px 5%;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}@media(max-width:750px){header{padding:20px 6%;align-items:start}.brand span{display:none}nav{gap:14px;font-size:11px}nav .contact{display:none}section{padding:55px 6%}.hero{padding-top:60px}.hero-bottom,.section-head{display:block}.hero-bottom .button{margin-top:25px}.credentials{gap:14px;flex-wrap:wrap;margin-top:35px}.case{grid-template-columns:1fr;padding-top:25px}.case-side{padding:0 0 25px}.case-body{padding:0;border:0}.metric{margin-top:15px}.two-col,.panel,.about-grid{grid-template-columns:1fr;gap:25px}.lab-tabs{gap:13px}.lab-tabs button{font-size:11px}.education{padding-left:0;border:0}footer{flex-wrap:wrap}.section-head>p{margin-top:20px}.console{padding:20px}h1{letter-spacing:-2px}}

/* Personal portfolio: white, teal, and clearly grouped evidence. */
:root{--bg:#fafbfb;--ink:#172b31;--muted:#617177;--line:#e0e7e7;--green:#007f83;--lime:#d5f0ee}header{position:sticky;top:0;z-index:5;padding:20px 4%;background:#fafbfbf5;backdrop-filter:blur(10px)}.brand{font-size:20px}.brand span{font-size:9px;letter-spacing:1px}nav{gap:22px}section{padding:65px 5%}h1,h2,h3,h4{letter-spacing:-1.3px}.profile-hero{background:none;padding-top:70px;padding-bottom:55px}.hero-main{display:grid;grid-template-columns:1.5fr 1fr;gap:65px;align-items:center}.profile-hero h1{font-size:clamp(44px,5vw,72px);margin:25px 0}.profile-hero h1>span{display:block;font-size:clamp(28px,3.3vw,46px);line-height:1.18;margin-top:18px;color:var(--green);letter-spacing:-1.5px}.hero-intro{font-size:17px;line-height:1.8;max-width:650px;margin:25px 0 30px}.hero-chips span{background:#e3f3f2;border-color:#c4e6e3;color:#00696d;font-size:12px;font-weight:600}.outline-link{align-self:center;border-bottom:1px solid var(--green);font-size:13px;margin-left:10px}.profile-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 12px 40px #183e3b08}.monogram{height:190px;width:190px;margin:0 auto 28px;border-radius:50%;background:linear-gradient(145deg,#e5f5f2,#c2e3df);font:500 70px 'Space Grotesk';display:flex;align-items:center;justify-content:center;position:relative;color:#147574}.monogram span{position:absolute;bottom:31px;font:8px 'DM Sans';letter-spacing:2px}.profile-school{display:flex;gap:13px;align-items:center;font-size:12px;border-top:1px solid var(--line);padding-top:20px}.school-mark{background:#a51c30;color:#fff;padding:14px 7px;font-weight:700;font-size:14px}.profile-school p{font-size:10px;color:var(--muted);margin:4px 0 0}.profile-facts{display:flex;gap:20px;margin:20px 0}.profile-facts strong,.profile-facts span{display:block;font-size:11px}.profile-facts span{font-size:10px;color:var(--muted)}.profile-card>a{font-size:12px;color:var(--green)}.edu-cards{display:grid;grid-template-columns:1fr 1fr;gap:25px}.edu-cards article,.skill-grid article{background:white;border:1px solid var(--line);border-radius:14px;padding:28px}.edu-cards h3{font-size:27px;margin:18px 0 12px}.edu-cards h4{font-size:17px;letter-spacing:-.3px;margin-bottom:12px}.edu-cards p{font-size:12px;color:var(--muted)}.edu-cards h5{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.edu-cards .chips span{background:#f1f5f5;border:0;border-radius:5px;font-size:10px}.ta-note{display:inline-block;background:#e3f3f2;color:#00696d;font-size:11px;padding:5px 9px;border-radius:4px}.skill-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.skill-filters button{background:white;border:1px solid var(--line);border-radius:20px;padding:8px 16px;font-size:12px;color:var(--muted)}.skill-filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:white}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.skill-grid article[hidden]{display:none}.skill-grid h4{font-size:21px}.skill-grid p{font-size:12px;color:var(--muted)}.skill-grid .chips span{font-size:10px}.skills-section{background:#f0f6f5}.case-side h3{font-size:32px}.lab{background:#edf6f5}.button{background:var(--green);border-radius:6px}.button:hover{background:#00676b}.closing{background:#123c40}.about-grid .education{display:none}.about-grid{grid-template-columns:1fr;max-width:800px}.large{font-size:24px}.hero .eyebrow{font-size:9px;letter-spacing:1.4px}.lab-tabs button[aria-selected=true]{border-color:var(--green)}
@media(max-width:850px){.brand span{display:none}nav{gap:13px;font-size:11px}.hero-main{grid-template-columns:1fr;gap:30px}.profile-card{max-width:500px;width:100%}.monogram{height:140px;width:140px;font-size:53px}.monogram span{bottom:22px}.edu-cards,.skill-grid{grid-template-columns:1fr}.profile-hero{padding-top:40px}.profile-hero h1{font-size:48px}.profile-hero h1>span{font-size:35px}header{align-items:center}nav a[href='#about']{display:none}}@media(max-width:500px){nav a[href='#lab']{display:none}.brand{font-size:16px}nav{gap:10px;font-size:10px}.profile-hero h1{font-size:40px}.profile-hero h1>span{font-size:30px}.edu-cards article{padding:22px}.hero .eyebrow{line-height:1.8}.profile-card{padding:22px}}

.profile-portrait{display:block;width:240px;height:240px;max-width:100%;margin:0 auto 28px;border-radius:50%;object-fit:cover;box-shadow:0 8px 30px rgba(15,118,110,.12)}@media(max-width:600px){.profile-portrait{width:190px;height:190px}}

.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-card{background:white;border:1px solid #dce7e5;border-radius:18px;overflow:hidden}.project-art{min-height:205px;padding:24px;background:#e4f3ef;display:flex;flex-direction:column;justify-content:space-between;color:#086f73}.project-art span,.project-art div{font-size:10px;letter-spacing:1.5px}.project-art strong{font-size:26px;line-height:1.3}.art-replay{background:#e9edfa;color:#465e94}.art-reconcile{background:#f4eddc;color:#8a6a24}.project-info{padding:26px}.project-info h3{font-size:27px;margin:14px 0}.project-info .button{margin-top:24px;display:inline-block}.profile-portrait{width:240px;height:240px;object-fit:cover;object-position:center 25%}header nav{gap:22px}@media(max-width:950px){.project-grid{grid-template-columns:1fr}.project-art{min-height:170px}}
.flagship-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.flagship{border:1px solid #dae5e6;border-radius:16px;background:#fff;overflow:hidden}.flagship-copy{padding:32px}.flagship-copy h3{font-size:33px;margin:12px 0}.flagship-copy ul{padding-left:20px;color:#486266;font-size:14px;line-height:1.9}.flagship-copy .actions{gap:18px;font-size:12px}.app-preview{display:block!important;padding:24px;background:#eaf2f4;color:#294b59!important;min-height:310px;text-decoration:none}.preview-chrome{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-bottom:24px;letter-spacing:1px}.preview-chrome span:first-child{font-weight:bold;font-size:18px;letter-spacing:-.5px}.preview-search{padding:12px;background:#fff;border-radius:7px;font-size:11px;display:flex;justify-content:space-between}.preview-search b{color:#087d83}.preview-columns{display:grid;grid-template-columns:1fr 1.4fr;background:#fff;margin-top:10px;border-radius:8px;overflow:hidden}.preview-tree{font:11px/1.8 monospace;padding:17px;background:#f7fafb;border-right:1px solid #dae5e6}.preview-detail{padding:17px;font-size:10px}.preview-detail>span{font-size:8px;letter-spacing:1px}.preview-detail p{display:flex;justify-content:space-between;margin:10px 0}.preview-detail b{color:#087d83}.app-preview>small{display:block;font-size:9px;margin-top:12px;opacity:.6}.preview-bars{display:flex;flex-direction:column;gap:5px}.preview-bars i{height:4px;background:#86bbb9;width:80%;border-radius:4px}.preview-bars i:nth-child(2){width:60%}.preview-bars i:nth-child(3){width:35%}.signal-preview{background:#eef0f8}.preview-stat-row{display:flex;gap:10px}.preview-stat-row>div{background:#fff;padding:12px;flex:1;font-size:9px;border-radius:6px}.preview-stat-row strong{display:block;font-size:13px;margin-top:5px}.preview-chart{height:100px;display:flex;gap:7px;align-items:flex-end;background:white;padding:15px;margin-top:10px;border-radius:7px}.preview-chart i{flex:1;background:#7da9b5;height:50%;border-radius:3px}.preview-chart i:nth-child(3n){height:80%}.preview-chart i:nth-child(4n){height:65%;background:#ce9a77}.preview-chart i:nth-child(5n){height:95%}.preview-log{padding:16px;background:white;margin-top:10px;border-radius:7px;font-size:10px}.preview-log span{font-family:monospace}.engineering-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.engineering-grid article{border-top:2px solid #168589;padding-top:20px}.engineering-grid article>span{font-size:10px;letter-spacing:1px;color:#147e82}.engineering-grid h3{font-size:24px;margin:18px 0}.engineering-grid p{font-size:14px}#reach{background:#edf6f4;border-radius:16px}header nav{gap:17px}@media(max-width:1000px){.flagship-grid{grid-template-columns:1fr}.engineering-grid{grid-template-columns:1fr}.flagship-copy{padding:25px}.app-preview{padding:20px}}