:root{--paper:#fbfaf7;--ink:#20211f;--muted:#686b65;--line:#dedfd7;--accent:#35664b;--accent-dark:#254936;--wash:#eaf0e8;--white:#fff;--font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}svg{display:block}::selection{background:#d6e5d1}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:3px}.container{width:min(1080px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:12px;left:12px;background:var(--ink);color:#fff;padding:10px 16px;z-index:10;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{height:116px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:26px;line-height:1;letter-spacing:-1.7px;font-weight:750}.wordmark span{color:var(--accent)}.nav{display:flex;gap:32px;align-items:center}.nav a{font-size:14px;font-weight:500;color:var(--muted);position:relative;padding:9px 0}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]:after{content:"";position:absolute;bottom:1px;left:0;right:0;height:2px;background:var(--accent)}.nav a:last-child{display:flex;align-items:center;gap:5px}.nav a svg{width:13px;height:13px}.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:var(--ink)}.hero{display:grid;grid-template-columns:1fr 306px;align-items:center;gap:48px;padding:91px 0 100px}.eyebrow{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:1.8px;font-size:11px;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:9px;margin:0 0 24px}.status-dot{width:6px;height:6px;display:inline-block;background:var(--accent);border-radius:50%;flex:none}.hero h1{font-size:clamp(66px,7.8vw,94px);font-weight:650;line-height:1.08;letter-spacing:-5.5px;margin:0 0 25px}.hero h1 .name{display:block}.hero h1 .period{color:var(--accent)}.hero .intro{font-size:18px;line-height:1.7;max-width:465px;color:var(--muted);margin:0}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:33px}.text-link{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:550;line-height:1.5}.text-link svg{width:16px;height:16px;transition:transform .2s}.text-link:hover svg{transform:translate(2px,-2px)}.text-link.underlined{border-bottom:1px solid var(--ink);padding-bottom:5px}.social-links{display:flex;gap:16px;align-items:center}.social-links a{display:flex;align-items:center;justify-content:center;width:23px;height:25px;color:var(--muted)}.social-links a:hover{color:var(--accent)}.social-links svg{height:20px;width:20px}.chip-art{position:relative;aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at center,#e8eee3 0%,#eef2e9 58%,rgba(238,242,233,0) 72%);display:flex;align-items:center;justify-content:center}.chip-art>svg{width:100%;height:100%;color:var(--accent)}.art-caption{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:var(--muted);font:9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:2px}.about{border-top:1px solid var(--line);padding:44px 0 61px;display:grid;grid-template-columns:220px 1fr;gap:48px}.section-label{margin:4px 0;font-size:14px;font-weight:600;letter-spacing:-.2px;display:flex;gap:10px;align-items:center}.section-label .tiny-square{width:7px;height:7px;border:1px solid var(--accent);display:inline-block;flex:none}.about-content{max-width:705px}.about-content p{margin:0 0 18px;font-size:17px;line-height:1.9;color:var(--muted)}.about-content p:last-child{margin-bottom:0}.about-content strong{font-weight:500;color:var(--ink)}.about-signature{display:flex;gap:8px;align-items:center;margin-top:25px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}.about-signature svg{width:14px;height:14px}.site-footer{display:flex;justify-content:space-between;align-items:center;padding:28px 0 35px;border-top:1px solid var(--line);gap:24px;color:var(--muted);font-size:11px}.footer-right{display:flex;align-items:center;gap:20px}.footer-right a:hover{color:var(--accent)}.page-intro{padding:61px 0 45px;max-width:660px}.page-intro .eyebrow{margin-bottom:17px}.page-intro h1{font-size:55px;line-height:1.15;letter-spacing:-2.6px;font-weight:620;margin:0 0 17px}.page-intro p:not(.eyebrow){color:var(--muted);font-size:17px;max-width:580px;margin:0}.page-body{padding-bottom:85px}.project{border-top:1px solid var(--line);padding:34px 0 38px;display:grid;grid-template-columns:315px 1fr;gap:42px}.project-art{display:flex;align-items:center;justify-content:center;background:var(--wash);border-radius:8px;min-height:260px;border:1px solid #e1e7df}.project-art svg{width:92%;height:auto;max-height:230px}.project-art.fifo{background:#eeede7;border-color:#e6e4dc}.project-kicker{display:flex;align-items:center;justify-content:space-between;gap:15px;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin:0 0 14px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.1px;text-transform:none;padding:4px 9px;border-radius:50px;background:var(--wash);color:var(--accent)}.badge.progress{background:#eee9dd;color:#716143}.badge .status-dot{width:4px;height:4px}.project h2{font-size:26px;line-height:1.3;font-weight:600;letter-spacing:-.7px;margin:0 0 12px}.project p{color:var(--muted);font-size:14px;line-height:1.8;margin:0 0 18px}.tag-list{display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:0 0 22px;list-style:none}.tag-list li{padding:3px 8px;border:1px solid var(--line);border-radius:4px;font-size:10px;color:var(--muted)}.metrics{display:flex;gap:30px;padding:18px 0 20px;border-top:1px solid var(--line)}.metric strong{display:block;font-size:22px;font-weight:550;line-height:1.2;letter-spacing:-.5px}.metric span{font-size:10px;color:var(--muted)}.details{margin-top:16px;color:var(--muted);font-size:13px}.details summary{cursor:pointer;color:var(--ink);font-size:12px;width:fit-content}.details p{font-size:13px;margin:12px 0 0}.entry{display:grid;grid-template-columns:220px 1fr;gap:48px;padding:30px 0 34px;border-top:1px solid var(--line)}.entry-meta{font-size:11px;color:var(--muted);line-height:1.8}.entry-meta .entry-category{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:1.3px;margin:0 0 9px;color:var(--accent)}.entry h2{font-size:24px;font-weight:600;line-height:1.35;letter-spacing:-.5px;margin:0 0 4px}.entry h3{font-size:14px;font-weight:500;margin:0 0 15px}.entry p{color:var(--muted);font-size:14px;line-height:1.85;margin:0}.entry ul{padding-left:18px;font-size:14px;color:var(--muted);margin:17px 0 0;line-height:1.85}.entry li+li{margin-top:7px}.education-hero{padding:30px 0 35px;border-top:1px solid var(--line);display:grid;grid-template-columns:220px 1fr;gap:48px}.university-seal{width:72px;height:72px;background:var(--wash);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);font:500 23px Georgia,serif;letter-spacing:-1px;margin-bottom:18px}.education-hero h2{font-size:27px;font-weight:600;line-height:1.4;letter-spacing:-.8px;margin:0 0 7px}.education-hero .degree{font-size:17px;color:var(--muted);margin:0 0 20px}.education-hero .entry-meta{font-size:12px}.coursework{border-top:1px solid var(--line);padding:25px 0 0;margin-top:28px}.coursework h3,.skills h3{font-size:14px;font-weight:600;margin:0 0 16px}.course-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;padding:0;list-style:none;font-size:13px;color:var(--muted)}.course-grid li:before{content:"↗";font-size:11px;margin-right:9px;color:var(--accent)}.skills{padding:30px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:220px 1fr;gap:48px}.skills h3{font-size:14px}.skills p{margin:0;font-size:14px;line-height:1.9;color:var(--muted)}.skills .skills-label{margin-bottom:6px;font-size:11px;color:var(--ink);font-weight:550}.skills-group+.skills-group{margin-top:22px}.resume-actions{display:flex;align-items:center;gap:24px;padding:0 0 30px;flex-wrap:wrap}.button{padding:12px 18px;background:var(--accent);color:#fff;display:inline-flex;gap:9px;align-items:center;border:1px solid var(--accent);border-radius:5px;font-size:13px;font-weight:500}.button:hover{background:var(--accent-dark)}.button svg{width:16px;height:16px}.resume-viewer{width:100%;height:850px;background:#eeede8;border:1px solid var(--line);border-radius:7px;display:block}.resume-note{font-size:12px;color:var(--muted);margin-top:17px}.resume-note a{text-decoration:underline;text-underline-offset:3px}.resume-mobile-note{display:none}.page-marker{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);letter-spacing:.5px}.footer-email{display:flex;align-items:center;gap:6px}.footer-email svg{width:12px;height:12px}
@media(min-width:1300px){.hero{padding-top:106px;padding-bottom:113px}.container{width:1080px}}@media(max-width:950px){.container{width:calc(100% - 64px)}.hero{grid-template-columns:1fr 250px;gap:15px;padding-top:73px;padding-bottom:78px}.hero h1{font-size:73px;letter-spacing:-4px}.hero .intro{font-size:16px}.about,.entry,.education-hero,.skills{grid-template-columns:160px 1fr;gap:32px}.project{grid-template-columns:265px 1fr;gap:27px}.project-art{min-height:245px}.metrics{gap:20px}.nav{gap:23px}}
@media(max-width:720px){.container{width:calc(100% - 40px)}.site-header{height:89px;gap:16px;flex-wrap:wrap;position:relative}.wordmark{font-size:24px}.menu-toggle{display:flex;align-items:center;gap:7px;font-size:12px}.menu-toggle svg{width:15px;height:15px}.nav{display:none;position:absolute;top:73px;left:0;right:0;padding:10px 18px 14px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 25px #20211f08;z-index:3;gap:9px;flex-direction:column;align-items:stretch}.nav.is-open{display:flex}.nav a{padding:9px 0;width:fit-content}.hero{display:flex;position:relative;flex-direction:column;align-items:flex-start;padding:65px 0 67px;gap:30px}.hero h1{font-size:clamp(56px,11.5vw,78px);line-height:1.11;letter-spacing:-3.8px;margin-bottom:21px}.hero .intro{font-size:16px;max-width:450px}.eyebrow{font-size:9px;letter-spacing:1.2px;margin-bottom:22px}.hero-actions{gap:24px;margin-top:27px}.chip-art{display:none}.about{grid-template-columns:1fr;gap:20px;padding:30px 0 42px}.section-label{font-size:13px}.about-content p{font-size:15px;line-height:1.9}.about-signature{margin-top:23px;font-size:10px}.site-footer{font-size:10px;padding-top:22px;padding-bottom:26px;gap:13px;flex-wrap:wrap}.footer-right{gap:16px}.page-intro{padding-top:44px;padding-bottom:35px}.page-intro h1{font-size:43px;letter-spacing:-2px}.page-intro p:not(.eyebrow){font-size:15px}.page-body{padding-bottom:50px}.project{grid-template-columns:1fr;gap:26px;padding:26px 0 32px}.project-art{min-height:190px;max-height:220px}.project-art svg{max-width:320px;height:180px}.project h2{font-size:25px}.metrics{gap:28px}.metric strong{font-size:21px}.project-kicker{font-size:9px}.entry{grid-template-columns:1fr;gap:15px;padding-top:26px;padding-bottom:28px}.entry-meta{font-size:11px}.entry-meta .entry-category{margin-bottom:3px}.entry h2{font-size:22px}.entry h3{font-size:13px}.entry p,.entry ul{font-size:13px}.education-hero{grid-template-columns:1fr;gap:20px;padding-top:27px}.university-seal{width:58px;height:58px;font-size:20px;margin-bottom:12px}.education-hero h2{font-size:24px}.education-hero .degree{font-size:15px}.course-grid{grid-template-columns:1fr;font-size:13px;gap:10px}.skills{grid-template-columns:1fr;gap:12px;padding-top:22px}.skills h3{margin-bottom:0}.skills p{font-size:13px}.resume-viewer{display:none}.resume-mobile-note{display:block;background:var(--wash);border:1px solid var(--line);border-radius:7px;padding:25px;font-size:14px;color:var(--muted);margin:0}.resume-mobile-note strong{color:var(--ink);display:block;font-size:16px;margin-bottom:8px}.resume-note{display:none}.resume-actions{gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
