@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color-scheme:dark;--bg:#111512;--panel:#191e19;--ink:#f0f1e9;--muted:#a5ada2;--accent:#d1f878;--line:#343c32;--mono:ui-monospace, SFMono-Regular, Consolas, monospace;--display:"Space Grotesk", sans-serif;--body:"DM Sans", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--accent);outline-offset:7px;border-radius:2px}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.045em;font-weight:500;line-height:1.1}h1{font-size:clamp(3.3rem,6.7vw,6.4rem)}h2{font-size:clamp(2rem,3.3vw,3rem)}h3{font-size:1.65rem}em{color:var(--accent);font-style:normal}p{color:var(--muted)}.shell{max-width:1440px;margin:auto;padding:0 64px}.eyebrow{font:11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;height:112px;display:flex}.brand{align-items:center;gap:16px;font-size:15px;font-weight:600;line-height:1.3;display:flex}.monogram{font:600 31px var(--display);letter-spacing:-.08em}.monogram span{color:var(--accent)}.brand-sub{font:9px/1.5 var(--mono);letter-spacing:.1em;color:var(--muted);margin-top:5px;display:block}nav{align-items:center;gap:30px;font-size:13px;display:flex}nav a{color:var(--muted);padding:6px 0}nav a:hover,nav a[aria-current=page]{color:var(--ink)}nav a[aria-current=page]{box-shadow:0 1px var(--accent)}nav .nav-contact{color:var(--ink);margin-left:15px}.nav-contact span{color:var(--accent);margin-left:9px}.skip-link{background:var(--accent);color:var(--bg);z-index:10;padding:12px 20px;position:fixed;top:-100px;left:24px}.skip-link:focus{top:12px}.hero{grid-template-columns:1.25fr 1fr;align-items:center;gap:50px;min-height:650px;padding:90px 0 78px;display:grid}.hero h1{letter-spacing:-.065em;margin:24px 0;font-size:clamp(3.6rem,6.3vw,6rem)}.status-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:9px;display:inline-block}.hero-intro{color:#d6d9d0;max-width:470px;font-size:19px;line-height:1.6}.hero-detail{margin-top:17px;font-size:14px;line-height:1.8}.hero-actions{align-items:center;gap:28px;margin-top:32px;display:flex}.button{background:var(--accent);color:#18200c;border:1px solid var(--accent);justify-content:space-between;align-items:center;gap:30px;padding:14px 21px;font-size:13px;font-weight:600;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:#e0ff9e;transform:translateY(-2px)}.text-link{color:var(--ink);align-items:center;gap:15px;font-size:13px;display:inline-flex}.text-link:hover{color:var(--accent)}.text-link span{color:var(--accent);font-size:18px}.system-art{place-self:center end;width:100%;max-width:490px;position:relative}.art-topline,.art-bottomline{font:9px var(--mono);letter-spacing:.12em;color:#9ba68f;border-top:1px solid var(--line);justify-content:space-between;padding:15px 5px;display:flex}.art-bottomline{border-top:0;border-bottom:1px solid var(--line)}.cross{color:var(--accent);font-size:19px;line-height:9px}.system-grid{aspect-ratio:1;background-image:linear-gradient(#28302355 1px,#0000 1px),linear-gradient(90deg,#28302355 1px,#0000 1px);background-size:32px 32px;position:relative;overflow:hidden;mask-image:radial-gradient(#000 45%,#0008 85%)}.axis{background:#53644366;position:absolute}.horizontal{width:100%;height:1px;top:50%}.vertical{width:1px;height:100%;left:50%}.system-ring{border:1px solid #90ae6277;border-radius:50%;animation:60s linear infinite orbit;position:absolute;inset:11%;transform:rotate(-32deg)}.ring-one{border-style:dashed}.ring-two{border-color:#d1f87899;animation:none;inset:24% 4%;transform:rotate(-38deg)}.ring-three{border-color:#d1f87899;animation:none;inset:4% 24%;transform:rotate(-38deg)}.system-core{font:500 58px var(--display);letter-spacing:-.1em;background:radial-gradient(circle at 35% 30%,#445330,#192315 70%);border:1px solid #9cbd66;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:35%;box-shadow:0 0 80px #b7ed4311}.system-core span{color:var(--accent)}.node{background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;box-shadow:0 0 20px #d1f87888}.node-one{top:19%;left:24%}.node-two{width:7px;height:7px;bottom:20%;right:22%}.node-three{border:1px solid var(--accent);background:#111512;top:35%;right:10%}.diagram-label{font:9px var(--mono);letter-spacing:.15em;color:#d1f878;position:absolute}.label-one{top:18%;left:31%}.label-two{bottom:19%;right:30%}.label-three{top:34%;right:14%}@keyframes orbit{to{transform:rotate(328deg)}}.skills-ribbon{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding:24px 0;display:flex}.skills-ribbon p{font:14px var(--display);color:#c8cfc1;flex-wrap:wrap;gap:20px;display:flex}.skills-ribbon p span{color:#64715c}.section{padding:78px 0}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:35px;display:flex}.section-heading h2{margin-top:14px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;display:grid}.project-card{min-width:0}.project-art{aspect-ratio:1.3;background:#1e2c23;border:1px solid #354739;position:relative;overflow:hidden}.art-index{font:9px var(--mono);letter-spacing:.1em;color:#b1c3ac;position:absolute;top:18px;left:18px}.art-caption{font:9px var(--mono);letter-spacing:.04em;color:#b1c3ac;position:absolute;bottom:18px;left:18px}.art-arrow{color:#ccdfb5;font-size:23px;transition:transform .2s;position:absolute;bottom:14px;right:17px}.project-card:hover .art-arrow{transform:translate(3px,-3px)}.project-card:hover h3{color:var(--accent)}.project-info{padding:22px 0}.project-info .eyebrow{font-size:9px}.project-info h3{margin:9px 0 12px;transition:color .2s}.project-info>p:not(.eyebrow){font-size:13px;line-height:1.8}.project-link{margin-top:17px;font-size:12px;display:inline-block}.project-link span{color:var(--accent);margin-left:8px}.civic-art{filter:drop-shadow(0 10px 30px #b2db4722);width:46%;height:47%;position:absolute;top:26%;left:27%}.civic-roof{clip-path:polygon(50% 0,100% 100%,0 100%);background:#bbd8a8;height:24%;margin-bottom:8%;display:block}.columns{justify-content:space-between;height:56%;padding:0 7%;display:flex}.columns i{background:linear-gradient(90deg,#6e9160,#c4dcb4);width:12%}.civic-base{border-block:2px solid #b4cca3;height:7%;margin-top:7%;display:block}.ingrav .project-art{background:#20202a;border-color:#3f3d50}.ingrav .art-index,.ingrav .art-caption{color:#b3b0c4}.orbit-art{width:55%;height:66%;position:absolute;top:18%;left:23%;transform:rotate(-30deg)}.orbit-art i{border:1px solid #aaa2e3;border-radius:50%;position:absolute;inset:4%}.orbit-art i:nth-child(2){inset:4% 30%}.orbit-art i:nth-child(3){inset:30% 4%}.orbit-art b{background:#c7bfff;border-radius:50%;width:14%;height:14%;position:absolute;top:43%;left:43%;box-shadow:0 0 40px #b7a7ff77}.dotnet-crud .project-art{background:#24271d;border-color:#414732}.code-art{font:clamp(10px, 1.15vw, 16px) / 1.6 var(--mono);color:#a0ad8a;position:absolute;top:25%;left:22%}.code-art span{display:block}.code-art b,.code-art strong{color:#d1f878;font-weight:400}.code-art strong{position:absolute;bottom:-4px;left:22px}.about-teaser{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:45px;padding:66px 0 85px;display:grid}.about-teaser>div{max-width:650px}.about-teaser p:not(.eyebrow){margin:24px 0;font-size:16px}.contact-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding:44px 0;display:flex}.contact-strip h2{margin-top:12px;font-size:clamp(1.7rem,3vw,2.5rem)}footer{justify-content:space-between;align-items:center;gap:25px;padding:30px 0 40px;font-size:12px;display:flex}.footer-name{font-size:12px}.footer-name span{color:var(--muted);margin-left:12px}.socials{gap:25px;display:flex}.socials a{color:#c7cfbf}.socials a:hover{color:var(--accent)}.socials span{color:#7b8871;margin-left:4px}.footer-note{font:10px var(--mono);color:var(--muted)}.page-intro{max-width:1000px;padding:80px 0 50px}.page-intro h1{margin:24px 0 30px}.page-intro>p:not(.eyebrow){max-width:610px;font-size:18px}.projects-section{padding-top:20px;padding-bottom:100px}.back-link{color:var(--muted);margin-bottom:40px;font-size:13px;display:inline-block}.back-link:hover{color:var(--accent)}.project-intro h1{font-size:clamp(4rem,8vw,7rem)}.accent{color:var(--accent)}.tags{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.tags span{border:1px solid var(--line);font:11px/1.7 var(--mono);color:#c3ceb9;padding:6px 12px}.project-body{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:70px;padding:55px 0 70px;display:grid}.project-facts>div{margin-bottom:30px}.project-facts>div>p:not(.eyebrow){color:var(--ink);margin-top:9px;font-size:14px}.project-facts .text-link{color:var(--accent)}.prose section{margin-bottom:40px}.prose h2{margin-bottom:18px;font-size:1.8rem}.prose p,.prose li{color:var(--muted);font-size:17px;line-height:1.85}.prose ul{padding-left:20px}.prose li{margin-bottom:10px;padding-left:5px}.prose li::marker{color:var(--accent)}.next-project{border-top:1px solid var(--line);padding:35px 0 70px}.next-project>a{border-bottom:1px solid var(--line);font:500 30px var(--display);justify-content:space-between;padding:24px 0;display:flex}.next-project>a:hover,.next-project>a>span{color:var(--accent)}.about-hero{grid-template-columns:1.3fr 1fr;align-items:center;gap:70px;padding:70px 0;display:grid}.about-hero .page-intro{padding:0}.about-hero .about-description{margin-top:24px;font-size:15px!important}.portrait{border:1px solid var(--line);background:#242b22;justify-self:end;width:100%;max-width:400px;padding:15px 15px 0;transform:rotate(2deg)}.portrait img{aspect-ratio:1;object-fit:cover;filter:grayscale();width:100%;height:auto;display:block}.portrait figcaption{font:8px/1.6 var(--mono);letter-spacing:.08em;color:#bdc8b3;justify-content:space-between;gap:10px;padding:18px 0;display:flex}.experience-row{border-top:1px solid var(--line);grid-template-columns:1fr 1.3fr 1.7fr;gap:35px;padding:30px 0;display:grid}.experience-row h3{font-size:1.4rem}.experience-row>p:last-child{font-size:14px}.experience-row .role{margin-top:8px;font-size:13px}.toolkit{padding-bottom:85px}.toolkit h2{margin-top:16px}.page-intro .button{margin-top:30px}@media (width>=1600px){.hero{padding-block:110px}.system-art{max-width:500px}}@media (width<=1100px){.shell{padding-inline:36px}.hero{gap:25px;padding:65px 0}.hero h1{font-size:5.8vw}.hero-intro{font-size:17px}.hero-actions{gap:18px}.system-core{font-size:45px}.skills-ribbon p{gap:12px}.project-grid{gap:20px}.about-hero{gap:40px}}@media (width<=760px){.shell{padding-inline:24px}.header{height:96px}.brand{gap:10px}.brand-sub{font-size:8px}.monogram{font-size:27px}nav{gap:18px;font-size:12px}.nav-contact{display:none}.hero{grid-template-columns:1fr;gap:35px;padding:55px 0 36px}.hero h1{font-size:clamp(3.5rem,10vw,5rem)}.hero-copy{max-width:590px}.hero-intro{font-size:18px}.system-art{justify-self:center;max-width:420px}.system-core{font-size:56px}.skills-ribbon{display:block}.skills-ribbon p{gap:12px;margin-top:14px;line-height:2}.section{padding:55px 0}.section-heading{align-items:start}.section-heading .text-link{white-space:nowrap;margin-top:25px}.project-grid{grid-template-columns:1fr;gap:30px}.project-art{aspect-ratio:1.65}.project-info{padding:20px 0}.project-info>p:not(.eyebrow){max-width:560px;font-size:15px}.project-info h3{font-size:1.9rem}.code-art{font-size:18px}.about-teaser{grid-template-columns:1fr;gap:25px;padding:45px 0 60px}.contact-strip{padding:32px 0}.contact-strip .eyebrow{font-size:9px}footer{flex-wrap:wrap;gap:20px}.footer-note{width:100%}.page-intro{padding:55px 0 35px}.page-intro h1{font-size:clamp(3.2rem,9vw,4.8rem)}.projects-section{padding-top:15px}.project-body{grid-template-columns:1fr;gap:40px;padding-block:35px}.project-facts{grid-template-columns:1fr 1fr;gap:20px;display:grid}.project-facts>div{margin:0}.project-facts>a{grid-column:1/-1}.about-hero{grid-template-columns:1fr;gap:35px;padding:50px 0}.portrait{justify-self:center;max-width:360px}.experience-row{grid-template-columns:1fr;gap:14px;padding:25px 0}.toolkit{padding-bottom:55px}}@media (width<=400px){.shell{padding-inline:18px}.brand-sub{display:none}.brand{font-size:12px}.monogram{font-size:24px}nav{gap:13px}.hero h1{font-size:3.3rem}.hero .eyebrow{letter-spacing:.08em;font-size:9px}.hero-actions{gap:16px}.button{gap:18px;padding:12px 16px}.hero-actions .text-link{gap:7px;font-size:12px}.section-heading{display:block}.section-heading .text-link{margin-top:15px}.contact-strip{align-items:start}.socials{gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
