@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{color-scheme:dark;--surface:#18211f;--surface-raised:#22302b;--on-accent:#10231b;--background:#111518;--text:#edf2ef;--muted:#a6b1ad;--accent:#6dd6a7;--accent-soft:#97e6c3;--highlight:#6dd6a7;--line:#303b3a;--serif:"Playfair Display", Georgia, serif;--sans:"DM Sans", Arial, sans-serif;--mono:"DM Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}.site-shell{max-width:1440px;margin:auto;padding:0 7.2%}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:90px;display:flex}.wordmark{min-height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.wordmark-logo{width:64px;height:32px;display:block}.wordmark:hover{color:var(--accent-soft)}.accent-dot{color:var(--highlight)}nav{gap:38px;display:flex}nav a,.header-contact{color:var(--text);font-size:15px;text-decoration:none}nav a:hover,.text-link:hover{color:var(--highlight)}.header-contact{font-weight:600}.header-contact span{color:var(--highlight);padding-left:6px}.hero{grid-template-columns:1.05fr .95fr;align-items:center;min-height:630px;padding:56px 0 80px;display:grid;position:relative}.eyebrow,.section-label,.card-kicker,.card-bottom{font-family:var(--mono);letter-spacing:1.4px;font-size:13px}.eyebrow{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px;display:flex}.status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #6dd6a71f}.hero h1,.page-heading h1{letter-spacing:-4.8px;margin:30px 0 25px;font-size:clamp(48px,6.1vw,82px);font-weight:500;line-height:.99}.hero h1 em,.intro-content h2 em,.writing-heading h2 em{font-family:var(--serif);color:var(--accent-soft);font-weight:500}.hero-lead{max-width:490px;color:var(--muted);font-size:18px;line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:center;gap:28px;margin-top:36px;display:flex}.button{align-items:center;gap:30px;padding:15px 19px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.button-dark{background:var(--accent);color:var(--on-accent)}.button-dark:hover{background:#97e6c3}.button span{color:currentColor;font-size:18px}.text-link{color:var(--text);font-size:15px;font-weight:600;text-decoration:none}.text-link span{color:var(--highlight);margin-left:7px}.hero-art{place-items:center;height:430px;display:grid;position:relative;overflow:hidden}.hero-art:before{content:"";background:radial-gradient(circle,#25483c 0%,#192925 55%,#111518 75%);border-radius:50%;width:350px;height:350px;position:absolute;top:39px;left:50%;transform:translate(-50%)}.art-orbit{border:1px solid #36574b;border-radius:50%;position:absolute;transform:rotate(-28deg)}.orbit-one{width:450px;height:210px}.orbit-two{width:490px;height:280px;transform:rotate(34deg)}.art-card{border-radius:5px;width:260px;height:180px;position:absolute;box-shadow:0 25px 60px #0006}.card-back{color:#b6d7c8;font:13px var(--mono);background:#1c4334;border:1px solid #3b6855;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex;transform:translate(37px,-20px)rotate(8deg)}.card-front{background:var(--surface-raised);border:1px solid #41594d;padding:24px;transform:translate(-12px,33px)rotate(-5deg)}.card-kicker,.card-bottom{color:#b1c3bb;font-size:12px}.code-lines{gap:10px;margin-top:28px;display:grid}.code-lines i{background:#57786b;border-radius:4px;width:72%;height:5px}.code-lines i:nth-child(2){background:var(--accent);width:55%}.code-lines i:nth-child(3){width:86%}.code-lines i:nth-child(4){background:#97e6c3;width:40%}.card-bottom{position:absolute;bottom:20px}.art-spark{color:var(--highlight);font-size:28px;position:absolute}.spark-a{top:72px;right:9%}.spark-b{color:var(--accent-soft);font-size:18px;bottom:55px;left:10%}.hero-index{font:13px var(--mono);color:var(--muted);align-items:center;gap:12px;display:flex;position:absolute;bottom:27px;left:0}.hero-index span:first-child{color:var(--accent)}.index-line{background:var(--line);width:65px;height:1px}.intro-section,.focus-section,.writing-section,.resume-section,.blog-list{border-top:1px solid var(--line);padding:56px 0 74px}.section-label{color:var(--muted);align-items:center;gap:10px;display:flex}.section-label span{color:var(--highlight)}.intro-content{grid-template-columns:1.2fr .8fr;gap:11%;padding:52px 4% 0;display:grid}.intro-content h2,.writing-heading h2{letter-spacing:-2px;max-width:620px;margin:0;font-size:clamp(34px,4.1vw,54px);font-weight:500;line-height:1.16}.intro-aside{max-width:340px;padding-top:4px}.intro-aside p{color:var(--muted);margin:0 0 24px;font-size:16px;line-height:1.8}.focus-grid{grid-template-columns:repeat(3,1fr);gap:0;margin-top:42px;display:grid}.focus-card{min-height:215px;padding:5px 32px 0 0;position:relative}.focus-card+.focus-card{border-left:1px solid var(--line);padding-left:31px}.focus-number{font:13px var(--mono);color:var(--highlight)}.focus-icon{width:24px;height:24px;color:var(--accent);align-items:center;margin:20px 0 17px;display:flex}.focus-card h3{margin:0 0 11px;font-size:17px;font-weight:600}.focus-card p{color:var(--muted);max-width:275px;margin:0;font-size:15px;line-height:1.75}.writing-section{padding-bottom:75px}.writing-heading{justify-content:space-between;align-items:end;margin-bottom:34px;display:flex}.writing-heading h2{margin-top:21px;font-size:42px}.post-list{border-top:1px solid var(--line)}.post-row{border-bottom:1px solid var(--line);color:var(--text);grid-template-columns:160px 1fr 25px;align-items:center;gap:12px;padding:22px 5px;text-decoration:none;display:grid}.post-date{font:13px var(--mono);color:var(--muted)}.post-title{font-size:17px;font-weight:500}.post-arrow{color:var(--highlight);text-align:right}.empty-posts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:17px;padding:27px 0;display:flex}.empty-posts>span{color:var(--highlight);font-size:23px}.empty-posts strong{font-size:16px}.empty-posts p{color:var(--muted);margin:7px 0 0;font-size:15px}.empty-posts code{font:13px var(--mono);color:var(--accent)}.closing-note{background:var(--surface);color:var(--text);border:1px solid #36574b;justify-content:space-between;align-items:center;margin-bottom:70px;padding:32px 38px;display:flex}.closing-note p{font:italic 20px var(--serif);margin:0}.closing-note a{color:var(--accent);font-size:15px;font-weight:600;text-decoration:none}.closing-note a span{color:currentColor;margin-left:8px}.site-footer{border-top:1px solid var(--line);min-height:84px;color:var(--muted);font:12px var(--mono);letter-spacing:.2px;justify-content:space-between;align-items:center;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.page-heading{border-bottom:1px solid var(--line);padding:85px 0 78px}.page-heading h1{margin:23px 0 16px;font-size:68px}.page-heading>p:not(.eyebrow){color:var(--muted);margin:0 0 25px;font-size:17px}.page-heading .button{margin-top:12px}.resume-section{grid-template-columns:.32fr .68fr;padding:48px 0;display:grid}.timeline{border-left:1px solid var(--line);margin-left:3px}.timeline-item{grid-template-columns:48px 1fr;padding:0 0 37px 22px;display:grid;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:var(--highlight);border-radius:50%;width:7px;height:7px;position:absolute;top:5px;left:-4px}.timeline-index{font:13px var(--mono);color:var(--highlight);padding-top:5px}.timeline-item h2,.education-row h2{margin:0 0 8px;font-size:18px;font-weight:600}.timeline-company{color:var(--accent-soft);margin:0 0 11px;font-size:15px}.timeline-company span{color:var(--highlight);padding:0 4px}.timeline-description{color:var(--muted);max-width:510px;margin:0;font-size:15px;line-height:1.75}.skills-wrap{flex-wrap:wrap;gap:9px;display:flex}.skill-chip{background:var(--surface);font:13px var(--mono);border:1px solid var(--line);color:var(--accent);padding:11px 13px}.education-row h2{font-size:17px}.blog-heading{padding-bottom:63px}.blog-list{padding-top:0}.blog-card{border-bottom:1px solid var(--line);color:var(--text);padding:28px 0;text-decoration:none;display:block}.blog-card-meta{font:13px var(--mono);text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:18px;display:flex}.blog-card-meta span+span{color:var(--accent-soft)}.blog-card h2{margin:15px 0 8px;font-size:25px;font-weight:500}.blog-card h2 span{color:var(--highlight);font-size:18px}.blog-card p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.article-page{max-width:760px;margin:0 auto;padding:60px 0 100px}.back-link{color:var(--accent-soft);font-size:15px;text-decoration:none}.article-header{border-bottom:1px solid var(--line);padding:55px 0 40px}.article-header h1{letter-spacing:-2px;margin:20px 0;font-size:clamp(38px,5vw,58px);font-weight:500;line-height:1.08}.article-deck{color:var(--muted);max-width:620px;font-size:17px;line-height:1.65}.prose{color:#c4ceca;padding-top:32px;font-size:18px;line-height:1.85}.prose h2,.prose h3{font-family:var(--serif);color:var(--text);margin-top:1.8em;font-weight:500;line-height:1.2}.prose a{color:var(--accent-soft)}.prose blockquote{border-left:2px solid var(--highlight);color:var(--accent-soft);font-family:var(--serif);margin-left:0;padding-left:20px;font-size:20px}.prose code{font:14px var(--mono);background:var(--surface-raised);padding:3px 5px}.prose pre{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;padding:20px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{max-width:100%;height:auto}.prose ul,.prose ol{padding-left:22px}@media (width<=850px){.site-shell{padding:0 5%}.hero{grid-template-columns:1fr;min-height:auto;padding:75px 0 80px}.hero-art{height:360px;margin-top:30px}.hero-index{bottom:20px}.intro-content{gap:6%;padding-left:0;padding-right:0}.focus-grid{gap:22px}.focus-card,.focus-card+.focus-card{padding-left:0;padding-right:16px}.resume-section{grid-template-columns:.27fr .73fr}}@media (width<=600px){.site-shell{padding:0 6%}.site-header{height:72px}.wordmark-logo{width:56px;height:28px}nav{gap:17px}nav a,.header-contact{font-size:14px}.header-contact{display:none}.hero{padding-top:59px}.hero h1{letter-spacing:-3px;font-size:51px}.hero-lead{font-size:16px}.hero-art{height:310px}.hero-art:before{width:270px;height:270px}.art-card{width:220px;height:155px}.orbit-one{width:330px;height:180px}.orbit-two{width:350px;height:230px}.intro-section,.focus-section,.writing-section,.resume-section{padding:39px 0 48px}.intro-content{grid-template-columns:1fr;gap:24px;padding-top:34px}.intro-content h2{font-size:36px}.focus-grid{grid-template-columns:1fr;gap:0}.focus-card,.focus-card+.focus-card{border-left:0;border-top:1px solid var(--line);min-height:0;padding:20px 0}.focus-card:first-child{border-top:0}.focus-icon{margin:12px 0}.writing-heading{flex-direction:column;align-items:start;gap:15px}.writing-heading h2{font-size:36px}.post-row{grid-template-columns:100px minmax(0,1fr) 20px;gap:9px}.post-date{font-size:12px}.post-title{font-size:16px}.closing-note{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:48px;padding:24px}.site-footer{flex-wrap:wrap;gap:12px;padding:19px 0;font-size:12px}.page-heading{padding:62px 0 55px}.page-heading h1{font-size:54px}.page-heading>p:not(.eyebrow){font-size:16px}.resume-section{grid-template-columns:1fr;gap:26px}.timeline-item{grid-template-columns:38px 1fr;padding-left:17px}.timeline-item h2{font-size:18px}.blog-card h2{font-size:21px}.article-page{padding-top:38px}.article-header{padding:40px 0 25px}.article-header h1{font-size:39px}.article-deck,.prose{font-size:17px}}.skip-link{background:var(--accent);color:var(--on-accent);z-index:10;padding:12px 18px;position:absolute;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--accent-soft);outline-offset:4px}.footer-links{flex-wrap:wrap;gap:16px;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}::selection{color:#10231b;background:#6dd6a7}.site-footer a:hover,.header-contact:hover,.back-link:hover{color:var(--accent)}.post-row:hover,.blog-card:hover{background:var(--surface)}.timeline-highlights{max-width:620px;color:var(--muted);margin:0;padding-left:1.2em;font-size:16px;line-height:1.75}.timeline-highlights li+li{margin-top:10px}.skill-groups{gap:28px;min-width:0;display:grid}.skill-group h2{margin:0 0 14px;font-size:17px;font-weight:600}.projects-section{border-top:1px solid var(--line);padding:56px 0 74px;scroll-margin-top:24px}.projects-intro{max-width:660px;color:var(--muted);margin:0 0 32px;font-size:17px;line-height:1.75}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:20px;display:grid}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:26px}.project-meta{font:12px var(--mono);color:var(--muted);flex-wrap:wrap;gap:12px;line-height:1.6;display:flex}.project-meta>span:first-child{color:var(--accent)}.project-card h3{margin:24px 0 14px;font-size:23px;font-weight:600;line-height:1.3}.project-summary,.project-detail-content p{color:var(--muted);margin:0;font-size:16px;line-height:1.75}.project-tags{flex-wrap:wrap;gap:8px;margin:24px 0;padding:0;list-style:none;display:flex}.project-tags li{color:var(--accent-soft);border:1px solid var(--line);font:12px var(--mono);border-radius:4px;padding:6px 9px;line-height:1.5}.project-details{border-top:1px solid var(--line)}.project-details summary{cursor:pointer;color:var(--accent);padding:18px 0 0;font-size:15px;font-weight:600}.project-toggle{float:right;font-size:20px;line-height:1}.project-details[open] .project-toggle{transform:rotate(45deg)}.project-detail-content{padding-top:20px}.project-detail-content h4{margin:20px 0 8px;font-size:16px;font-weight:600}.project-detail-content h4:first-child{margin-top:0}@media (width<=1000px){.projects-grid{grid-template-columns:1fr}}@media (width<=600px){.projects-section{padding:39px 0 48px}.project-card{padding:22px}.site-header{flex-wrap:wrap;gap:16px;height:auto;min-height:72px;padding:20px 0}.site-header nav{flex-wrap:wrap;gap:16px}}.resume-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:24px;display:flex}.page-heading .resume-actions .button{margin-top:0}
