@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{color:#20231f;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f4ef;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}a{color:inherit}.site-shell{color:#20231f;background:#f5f4ef;grid-template-rows:82px minmax(0,1fr) auto;width:min(1440px,100%);min-height:100svh;margin:0 auto;display:grid;overflow:hidden}.topbar{border-bottom:1px solid #d9d8d0;justify-content:space-between;align-items:center;padding:0 clamp(24px,6vw,92px);font-size:14px;display:flex}.wordmark{color:inherit;letter-spacing:-.03em;font-weight:600;text-decoration:none}.wordmark span{color:#f5f4ef;background:#20231f;border-radius:50%;place-items:center;width:30px;height:30px;margin-right:8px;font-family:Playfair Display,serif;font-style:italic;display:inline-grid}.nav-links,.nav-menu{align-items:center;gap:28px;display:flex}.nav-links a{color:inherit;text-decoration:none}.nav-links a:hover{color:inherit;text-decoration:underline}.nav-social-links{gap:28px;display:flex}.menu-toggle{display:none}.theme-toggle{width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:7px;transition:background-color .2s;display:inline-grid}.theme-toggle:hover,.theme-toggle:focus-visible{background:#20231f1a;outline:none}.theme-icon{fill:currentColor;width:18px;height:18px}.home-content{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);align-items:center;gap:clamp(40px,7vw,130px);padding:clamp(32px,5vw,74px) clamp(24px,8vw,128px);display:grid}.eyebrow,.intro-label,footer{letter-spacing:.025em;font:12px DM Mono,monospace}.eyebrow{color:#5d625b;align-items:center;gap:9px;display:flex}.eyebrow i{background:#80a642;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #e4ead8}.intro-label{color:#6c7069;margin:36px 0 8px}h1{letter-spacing:-.065em;margin:0;font:500 clamp(46px,5.4vw,78px)/.98 Playfair Display,serif}h1 em{color:#799d42;font-weight:500}.hero-copy{color:#60655d;max-width:460px;margin:27px 0;font-size:16px;line-height:1.55}.run-about-button{color:#f5f4ef;background:#20231f;border:1px solid #20231f;border-radius:3px;width:100%;max-width:460px;margin-top:12px;padding:13px 18px;font:12px DM Mono,monospace;transition:color .2s,background-color .2s,transform .2s}.run-about-button:hover,.run-about-button:focus-visible{color:#20231f;background:0 0;outline:none;transform:translateY(-2px)}code{background:#e5e4de;border-radius:2px;padding:3px 5px;font:12px DM Mono,monospace}.terminal-window{color:#d8ddd0;background:#20231f;border:1px solid #31352f;border-radius:6px;font:12px/1.65 DM Mono,monospace;overflow:hidden;box-shadow:13px 14px #e2e1d9}.terminal-titlebar{color:#969c92;background:#292d28;border-bottom:1px solid #3a4038;align-items:center;gap:13px;height:42px;padding:0 15px;font-size:11px;display:flex}.window-dots{gap:6px;display:flex}.window-dots i{background:#6a6f66;border-radius:50%;width:8px;height:8px}.window-dots i:first-child{background:#e37668}.window-dots i:nth-child(2){background:#d5ae5c}.window-dots i:nth-child(3){background:#83a952}.terminal-titlebar button{color:#969c92;font:inherit;background:0 0;border:0;margin-left:auto;padding:0}.terminal-body{min-height:min(42vh,340px);max-height:42vh;padding:21px 23px 15px;overflow:auto}.terminal-line{white-space:pre-wrap;margin:0 0 5px}.terminal-line.muted{color:#777f74}.terminal-line.accent,.terminal-line b,.terminal-input b{color:#b9d77a}.terminal-line b,.terminal-input b{font-weight:500}.terminal-line b+span,.terminal-input span{color:#7da7d9}.terminal-input{align-items:center;gap:7px;display:flex}.terminal-input label{white-space:nowrap}.terminal-input input{color:#f0f2eb;width:100%;font:inherit;background:0 0;border:0;outline:0;padding:0}.terminal-hint{color:#858b81;border-top:1px solid #3a4038;justify-content:space-between;padding:9px 16px;font-size:11px;display:flex}.terminal-hint button{color:#b9d77a;font:inherit;background:0 0;border:0;padding:0}footer{color:#757970;border-top:1px solid #d9d8d0;justify-content:space-between;padding:23px clamp(24px,6vw,92px);font-size:11px;display:flex}footer a{color:inherit;text-decoration:none}.dark-theme{color:#e6e8e0;background:#181b18}.dark-theme .topbar,.dark-theme footer{border-color:#353a34}.dark-theme .wordmark span{color:#181b18;background:#e6e8e0}.dark-theme .theme-toggle:hover,.dark-theme .theme-toggle:focus-visible{background:#e6e8e01f}.dark-theme .eyebrow,.dark-theme .intro-label,.dark-theme .hero-copy,.dark-theme footer{color:#aeb5aa}.dark-theme h1{color:#f2f3ed}.dark-theme h1 em{color:#a8cc6b}.dark-theme .eyebrow i{box-shadow:0 0 0 4px #263024}.dark-theme .run-about-button{color:#181b18;background:#e6e8e0;border-color:#e6e8e0}.dark-theme .run-about-button:hover,.dark-theme .run-about-button:focus-visible{color:#e6e8e0;background:0 0}.dark-theme code{color:#e6e8e0;background:#313730}.dark-theme .terminal-window{border-color:#4b5449;box-shadow:13px 14px #252b24}body:has(.dark-theme){background:#181b18}@media (width<=760px){.site-shell{grid-template-rows:66px auto auto;min-height:100svh;overflow:visible}.topbar{height:66px}.nav-links{gap:14px;position:relative}.menu-toggle{width:32px;height:32px;color:inherit;background:0 0;border:0;place-content:center;gap:4px;padding:8px 6px;display:grid}.menu-toggle span{background:currentColor;width:20px;height:1.5px;display:block}.nav-menu{z-index:2;background:#f5f4ef;border:1px solid #d9d8d0;border-radius:4px;min-width:144px;padding:12px;display:none;position:absolute;top:calc(100% + 16px);right:0;box-shadow:5px 6px #e2e1d9}.nav-menu.is-open,.nav-social-links{gap:12px;display:grid}.dark-theme .nav-menu{background:#181b18;border-color:#353a34;box-shadow:5px 6px #252b24}.theme-label{display:none}.home-content{grid-template-columns:1fr;gap:48px;padding:48px 24px}.terminal-body{min-height:270px;max-height:360px;padding:18px 16px;font-size:11px}.terminal-hint{display:none}footer{flex-wrap:wrap;gap:12px}}.home-content{padding-inline:clamp(24px,6vw,92px);grid-template-columns:minmax(0,35fr) minmax(0,65fr);align-items:center;padding-top:20px;padding-bottom:36px}.terminal-body{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;height:min(52vh,430px);min-height:0;max-height:none;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:0;height:0}@media (width<=760px){.home-content{grid-template-columns:1fr;padding-top:20px;padding-bottom:36px}.terminal-body{height:360px}}.resume-shell{background:#f5f4ef;width:min(1440px,100%);min-height:100vh;margin:0 auto}.resume-shell .topbar{flex:0 0 82px;height:82px;min-height:82px;max-height:82px}.resume-page{color:#20231f;width:calc(100% - clamp(48px,12vw,184px));margin:0 auto;padding:20px 0 78px;font-family:DM Sans,sans-serif}.resume-nav{color:#777d74;align-items:center;gap:22px;font:13px DM Mono,monospace;display:flex}.resume-nav a{color:inherit;text-decoration:none;transition:color .2s}.resume-nav a:hover,.resume-nav a.active{color:#20231f}.resume-nav a.active{font-weight:500}.resume-nav>span{color:#20231f;margin-left:auto;font:500 14px DM Sans,sans-serif}.accent-dot{color:#799d42}.resume-rule{background:#d7d6cf;height:1px;margin:25px 0 35px}.resume-intro{justify-content:space-between;align-items:center;gap:24px;display:flex}.resume-intro h1{color:#20231f;letter-spacing:-.06em;margin:0 0 10px;font:500 clamp(40px,5vw,62px)/.98 Playfair Display,serif}.resume-intro p{color:#62685f;margin:0;font-size:16px}.resume-intro p i{background:#799d42;width:2px;height:19px;margin:0 8px -5px;display:inline-block}.resume-intro a{color:inherit;text-decoration:underline}.resume-download{background:#20231f;border:1px solid #20231f;border-radius:3px;align-items:center;min-height:42px;margin-top:22px;padding:0 14px;font:12px DM Mono,monospace;text-decoration:none;transition:transform .2s;display:inline-flex;color:#f5f4ef!important}.resume-intro .resume-download{text-decoration:none}.resume-download:hover{transform:translateY(-2px)}.resume-section-text{margin-top:62px}.resume-section-text h2{color:#20231f;letter-spacing:-.05em;border-bottom:3px solid #799d42;margin:0 0 27px;padding-bottom:4px;font:500 clamp(29px,3vw,38px)/1 Playfair Display,serif;display:inline-block}.resume-item{margin-bottom:31px}.resume-item-top{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.resume-item h3{color:#20231f;letter-spacing:-.03em;margin:0;font-size:20px;font-weight:600}.resume-item time{color:#6e756b;white-space:nowrap;font:12px DM Mono,monospace}.resume-item p,.skills-list p{color:#60665e;margin:7px 0;font-size:16px}.resume-item ul{color:#50564e;margin:8px 0 0;padding-left:16px;font-size:15px;line-height:1.5}.resume-item li::marker{content:"—  ";color:#799d42}.skills-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:55px;display:grid}.skills-list p{margin:0 0 13px}.skills-list b{color:#20231f;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;font:500 12px DM Mono,monospace;display:block}@media (width<=650px){.resume-intro{flex-direction:column;align-items:flex-start;gap:18px}.resume-shell .topbar{flex-basis:66px;height:66px;min-height:66px;max-height:66px}.resume-page{padding-top:20px}.resume-nav{gap:13px;font-size:11px}.resume-nav>span{font-size:12px}.resume-rule{margin:20px 0 29px}.resume-intro p{line-height:1.8}.resume-intro p i{height:15px;margin-bottom:-3px}.resume-section-text{margin-top:48px}.resume-item-top{display:block}.resume-item time{margin-top:8px;display:block}.resume-item h3{font-size:19px}.resume-item p,.skills-list p{font-size:15px}.resume-item ul{font-size:14px}.skills-list{grid-template-columns:1fr}}.dark-theme.resume-shell{background:#181b18}.dark-theme .resume-page{color:#e6e8e0}.dark-theme .resume-nav,.dark-theme .resume-intro p,.dark-theme .resume-item p,.dark-theme .resume-item ul,.dark-theme .skills-list p,.dark-theme .resume-item time{color:#aeb5aa}.dark-theme .resume-nav a:hover,.dark-theme .resume-nav a.active,.dark-theme .resume-nav>span,.dark-theme .resume-intro h1,.dark-theme .resume-section-text h2,.dark-theme .resume-item h3,.dark-theme .skills-list b{color:#f2f3ed}.dark-theme .resume-rule{background:#3a4138}.dark-theme .resume-download{background:#dce7ce;border-color:#dce7ce;color:#1c201c!important}
