@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');
:root{--bg:#090d10;--panel:#10171b;--line:#263238;--muted:#8c9b9e;--mint:#b4f995;--white:#eef2e9;--mono:'Space Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--white);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:6px}#field{position:absolute;inset:0;width:100%;height:930px;z-index:-1;opacity:.55;pointer-events:none}.grain{position:fixed;inset:0;pointer-events:none;z-index:8;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}header{max-width:1500px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:30px 5%;border-bottom:1px solid var(--line)}.brand{font:600 14px 'Space Grotesk',sans-serif;letter-spacing:1px;display:flex;align-items:center;gap:4px}.brand-mark{font-size:27px;color:var(--mint);margin-right:9px}.muted{color:var(--muted)}nav{display:flex;align-items:center;gap:32px;font-size:13px}nav a:hover,.text-link:hover{color:var(--mint)}.github{border:1px solid var(--line);padding:12px 18px;border-radius:5px}.hero{max-width:1500px;margin:auto;padding:64px 5% 0}.eyebrow,.mono,.hero-bottom,.card-number,.tag,.reactor-caption,footer>span{font:10px var(--mono);letter-spacing:1.5px}.eyebrow{color:var(--mint);display:flex;align-items:center;gap:12px}.pulse{height:6px;width:6px;background:var(--mint);box-shadow:0 0 12px var(--mint);border-radius:50%;animation:pulse 3s infinite}.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;min-height:580px;gap:20px}h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:500}h1{font-size:clamp(44px,5.9vw,91px);line-height:1.05;letter-spacing:-5px;margin:28px 0 32px}.outline{color:transparent;-webkit-text-stroke:1px #9ba6a4}.intro{font-size:20px;line-height:1.6;color:#b5bdbc}.mint{color:var(--mint)}.actions{display:flex;align-items:center;gap:30px;margin-top:38px}.button{padding:18px 22px;border-radius:4px;font-size:13px;font-weight:600;display:inline-flex;gap:35px;align-items:center}.primary{background:var(--mint);color:#132319;box-shadow:0 0 35px #b4f99510;transition:box-shadow .3s,transform .3s}.primary:hover{transform:translateY(-3px);box-shadow:0 0 35px #b4f99535}.text-link{font-size:13px}.text-link span{margin-left:18px}.reactor{height:450px;position:relative;display:grid;place-items:center;background:radial-gradient(ellipse,#a7f4a311,transparent 65%)}.orbit{position:absolute;border:1px solid #50604e;border-radius:50%;width:320px;height:320px;transform:rotateX(60deg) rotateZ(-30deg);animation:orbit 25s linear infinite}.o2{width:400px;height:400px;border-style:dashed;border-color:#43513d;animation-duration:35s;animation-direction:reverse}.o3{width:240px;height:240px;border-color:#b4f99588;animation-duration:20s}.orbit:after{content:'';position:absolute;top:25%;left:6%;width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 18px var(--mint)}.core{width:130px;height:130px;border:1px solid #b4f99555;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-9deg);background:linear-gradient(145deg,#273a2c,#101b17);box-shadow:0 0 90px #a3ff8730,inset 0 0 30px #a3ff8710}.core>span{font:500 50px 'Space Grotesk';letter-spacing:-4px}.core small{font:6px var(--mono);letter-spacing:1px;margin-top:8px;color:var(--mint)}.node{position:absolute;font:8px var(--mono);letter-spacing:1px;border:1px solid var(--line);padding:11px;background:#0a1112;box-shadow:0 5px 30px #0005}.n1{top:70px;right:20px}.n2{bottom:120px;left:0}.n3{bottom:60px;right:20px}.reactor-caption{position:absolute;bottom:0;color:var(--muted);font-size:8px}.cross{position:absolute;background:#b4f99520}.c1{width:100%;height:1px}.c2{width:1px;height:90%}.hero-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:23px 0;color:var(--muted);font-size:9px}.ticker{border-block:1px solid var(--line);overflow:hidden;background:#111a14;padding:22px 0;color:#b8c8b5;font:12px var(--mono);letter-spacing:2px}.ticker>div{white-space:nowrap;width:max-content;animation:marquee 45s linear infinite}.ticker i{color:var(--mint);font-style:normal;margin:0 40px}.section{max-width:1400px;margin:auto;padding:90px 5%}.section-top{display:flex;justify-content:space-between}h2{font-size:clamp(32px,3.7vw,53px);line-height:1.15;letter-spacing:-2px;margin:30px 0 45px}.craft-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.craft{padding:28px;background:linear-gradient(150deg,#15201e,#0d1318);border:1px solid var(--line);border-radius:7px;transition:transform .3s,border-color .3s;overflow:hidden}.craft:hover{transform:translateY(-6px);border-color:#738f68}.card-number{color:var(--muted);font-size:8px}.craft h3{font-size:23px;letter-spacing:-.5px}.craft p{font-size:14px;color:#a4b0ad;line-height:1.8;min-height:75px}.tag{font-size:8px;display:inline-block;margin:12px 5px 0 0;border:1px solid var(--line);border-radius:3px;padding:7px;letter-spacing:.5px}.rack,.code-art,.wave{height:125px;margin:30px 0}.rack{padding:0 15px;transform:perspective(450px) rotateY(-12deg) rotateX(12deg)}.rack>div{height:33px;border:1px solid #5d7160;border-radius:4px;margin-bottom:5px;background:linear-gradient(90deg,#293a2b,#14201c);display:flex;align-items:center;padding:0 12px;gap:5px}.rack b{height:4px;width:4px;background:var(--mint);box-shadow:0 0 8px var(--mint);border-radius:50%}.rack em{margin-left:auto;width:60px;height:12px;background:repeating-linear-gradient(90deg,#536154 0 2px,transparent 2px 5px)}.code-art{font:11px/2.4 var(--mono);padding-top:15px;color:#adbbb4}.code-art>span:first-child,.code-art b{color:var(--mint);font-weight:400}.cursor{animation:pulse 1s infinite}.wave{display:flex;align-items:center}.wave svg{width:100%;overflow:visible}.wave path{fill:none;stroke:var(--mint);stroke-width:2;filter:drop-shadow(0 0 6px #b4f99588);stroke-dasharray:800;animation:trace 5s ease-in-out infinite}.philosophy{display:grid;grid-template-columns:1fr 1fr;gap:8%;border-top:1px solid var(--line)}.principles article{display:flex;gap:25px;padding:23px 0;border-bottom:1px solid var(--line)}.principles article>span{font:10px var(--mono);color:var(--mint);padding-top:5px}.principles h3{margin:0;font-size:23px}.principles p{color:var(--muted);font-size:14px;line-height:1.8}.terminal-section{padding:20px 5% 100px;max-width:1400px;margin:auto}.terminal{border:1px solid #40503f;border-radius:8px;overflow:hidden;background:radial-gradient(ellipse at 90% 90%,#b4f9950d,transparent 70%),#0c1412}.terminal-bar{display:flex;justify-content:space-between;font:9px var(--mono);padding:18px 25px;background:#17201a;color:var(--muted);border-bottom:1px solid var(--line)}.terminal-bar span:first-child{color:#819578}.terminal-body{padding:40px 50px 55px}.terminal-body>p:first-child{font:12px var(--mono)}.terminal-body h2{margin:30px 0;font-size:45px}.terminal-note{font-size:14px;color:var(--muted)}.terminal-body>a{display:inline-block;margin-top:20px;font:12px var(--mono);color:var(--mint);border-bottom:1px solid #b4f99566;padding-bottom:10px}footer{max-width:1400px;margin:auto;padding:30px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}footer .brand{font-size:11px}footer>span{font-size:7px;color:var(--muted)}footer button{background:none;border:0;color:var(--muted);font:9px var(--mono);cursor:pointer}.paused *{animation-play-state:paused!important}@keyframes orbit{from{transform:rotateX(60deg) rotateZ(0)}to{transform:rotateX(60deg) rotateZ(360deg)}}@keyframes pulse{50%{opacity:.3}}@keyframes trace{0%,100%{stroke-dashoffset:800}60%{stroke-dashoffset:0}}@keyframes marquee{to{transform:translateX(-35%)}}@media(max-width:900px){h1{letter-spacing:-3px}.hero-grid{min-height:520px}.reactor{transform:scale(.8);transform-origin:center}.craft-grid{grid-template-columns:1fr 1fr}.craft.wide{grid-column:1/-1}.philosophy{gap:30px}.terminal-body h2{font-size:36px}nav{gap:18px}}@media(max-width:600px){header{padding:20px 6%}.brand{font-size:10px}nav a:not(.github){display:none}.github{font-size:10px;padding:10px}.hero{padding:35px 6% 0}.eyebrow{font-size:8px;letter-spacing:1px}.hero-grid{display:block}.hero h1{font-size:49px;margin-top:40px}.intro{font-size:18px}.reactor{height:330px;margin:0 -20px;transform:scale(.85)}.n1{right:0;top:20px}.n2{left:0;bottom:90px}.n3{bottom:30px}.hero-bottom span:first-child{max-width:55%;line-height:1.8}.hero-bottom{font-size:7px}.section{padding:65px 6%}.section-top>.mono{display:none}.craft-grid{grid-template-columns:1fr}.craft.wide{grid-column:auto}.craft p{min-height:0}.philosophy{grid-template-columns:1fr}.philosophy h2{margin-bottom:10px}.terminal-section{padding-inline:6%}.terminal-body{padding:25px}.terminal-body h2{font-size:32px}.terminal-bar{padding:15px}.terminal-bar span:last-child{display:none}footer{flex-wrap:wrap}footer>span{order:3;width:100%;line-height:1.8}.actions{gap:20px}.button{gap:20px;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}#field{display:none}}
/* Engineering field notes and browser-only workbench. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.work-section,.architecture-section,.playground{border-top:1px solid var(--line)}.work-heading{display:flex;justify-content:space-between;gap:50px;align-items:center}.work-heading>p{max-width:390px;color:var(--muted);line-height:1.9;font-size:15px}.filters,.architecture-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 30px}.filters button,.architecture-tabs button,.command-trigger{font:10px var(--mono);background:#111a19;border:1px solid var(--line);color:#a9b9ad;border-radius:4px;padding:12px 15px;cursor:pointer}.filters button.active,.architecture-tabs button.active{color:var(--mint);border-color:#b4f99577;background:#b4f9950c}.filters button span{margin-left:10px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-card{padding:30px;border:1px solid var(--line);background:linear-gradient(140deg,#131e1a,#0d1418);border-radius:6px;min-width:0;align-self:start}.project-card:hover{border-color:#52664e}.project-top{display:flex;justify-content:space-between;align-items:center;font:9px var(--mono);color:var(--muted);letter-spacing:1px}.project-number{color:var(--mint);font-size:12px}.project-card h3{font-size:28px;letter-spacing:-.8px;margin:28px 0 15px;max-width:420px}.project-summary{font-size:14px;line-height:1.9;color:#a6b2ae;min-height:55px}.project-tags{min-height:45px}.project-card details{margin-top:20px;border-top:1px solid var(--line)}.project-card summary{padding:19px 0 0;cursor:pointer;font:11px var(--mono);color:var(--mint);list-style-position:inside}.project-detail{padding:15px 0 0}.project-detail h4{font:9px var(--mono);color:var(--muted);letter-spacing:1px}.project-detail p{font-size:14px;line-height:1.9;color:#bbc5bd}.architecture-board{background:radial-gradient(ellipse at 80% 20%,#b4f9950b,transparent),#101717;border:1px solid var(--line);border-radius:6px;padding:35px}.architecture-nodes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.architecture-node{padding:25px 18px;border:1px solid #35463a;background:#142019;border-radius:5px;color:#dbe7d8;display:grid;grid-template-columns:1fr auto;text-align:left;gap:15px;cursor:pointer;min-width:0}.architecture-node small{font:9px var(--mono);color:var(--muted);grid-column:1/-1}.architecture-node strong{font:500 20px 'Space Grotesk';overflow-wrap:anywhere}.architecture-node>span{color:var(--mint)}.architecture-node.selected{border-color:var(--mint);box-shadow:0 0 25px #b4f99510;background:#203122}.architecture-detail{margin-top:30px;border-top:1px solid var(--line);padding:30px 0 5px;min-height:215px}.architecture-detail h3{font-size:30px;margin:18px 0}.architecture-detail p{max-width:800px;color:#a5b7aa;font-size:15px;line-height:1.9}.architecture-detail>div:last-child{font:11px var(--mono);color:var(--mint);line-height:1.9}.demo-note{font:10px/1.9 var(--mono);color:var(--muted);margin-top:20px}.release-lab{border:1px solid var(--line);border-radius:6px;background:#101715;overflow:hidden}.release-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 25px;border-bottom:1px solid var(--line);background:#16201a}.lab-label{display:flex;align-items:center;gap:12px;font:10px var(--mono);color:var(--mint)}.failure-toggle{display:flex;align-items:center;gap:10px;font:10px var(--mono);color:#b4bfb6;cursor:pointer}.failure-toggle input{accent-color:var(--mint);width:15px;height:15px}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:30px 25px;margin:0;list-style:none}.pipeline li{border:1px solid #344339;border-radius:4px;padding:20px 15px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s,background .2s;min-width:0}.pipeline li>span{font:9px var(--mono);color:var(--muted)}.pipeline li b{font:500 20px 'Space Grotesk'}.pipeline li small{font:9px/1.8 var(--mono);color:var(--muted)}.pipeline .running{border-color:#e6d99b;background:#e6d99b0b}.pipeline .passed,.pipeline .recovered{border-color:#7ba168;background:#b4f9950b}.pipeline .failed{border-color:#e99483;background:#e9948310}.release-controls{display:flex;flex-wrap:wrap;align-items:center;gap:15px;padding:0 25px 25px}.button:disabled{opacity:.4;cursor:not-allowed;transform:none}.secondary{background:#1c2920;border:1px solid #4b6150;color:#d9e3d6}.plain-action{border:0;background:none;font:11px var(--mono);color:var(--muted);padding:12px;cursor:pointer}.status-pill{font:8px var(--mono);letter-spacing:1px;color:#b6c1b6;border:1px solid var(--line);padding:10px;margin-left:auto;line-height:1.7}.status-pill.good{color:var(--mint);border-color:#7ba168}.status-pill.bad{color:#ffc2b6;border-color:#b56c5f}.release-log{margin:0;padding:25px;border-top:1px solid var(--line);background:#0a100d;min-height:200px;font:11px/2 var(--mono);color:#b0c0ad;white-space:pre-wrap;overflow-wrap:anywhere}.terminal-output{max-height:350px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.9 var(--mono);color:#c1d0bd;border-top:1px solid var(--line);padding:25px 0 10px;min-height:130px}.terminal-input{display:flex;align-items:center;gap:12px;border-top:1px solid #3a503b;padding-top:20px}.terminal-input label{color:var(--mint)}.terminal-input input{min-width:0;flex:1;background:none;border:0;padding:10px 0;color:#deebd6;font:13px var(--mono);outline-offset:3px}.terminal-input button{background:#1b2b1d;border:1px solid #3b533c;border-radius:3px;padding:10px 15px;color:var(--mint);font:10px var(--mono);cursor:pointer}.terminal-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.terminal-shortcuts button{border:1px solid var(--line);background:none;color:var(--muted);font:9px var(--mono);padding:7px 10px;cursor:pointer}.terminal-shortcuts button:hover{color:var(--mint)}.resume-invite{padding-top:0;display:flex;justify-content:space-between;align-items:center;gap:30px}.resume-invite p{font-size:15px;color:var(--muted)}.command-trigger{padding:8px 10px}.command-trigger:hover{border-color:var(--mint)}dialog{background:#101a15;color:var(--white);border:1px solid #60765b;border-radius:9px;width:min(600px,90vw);padding:25px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#020805b8;backdrop-filter:blur(8px)}.command-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.command-top h2{font-size:25px;margin:0}.command-top button{background:none;color:var(--muted);border:0;font:10px var(--mono);cursor:pointer}#command-search{width:100%;border:1px solid #3d5240;border-radius:4px;background:#0b120e;padding:15px;color:var(--white);font:13px var(--mono)}#command-results{margin-top:15px}#command-results a{display:block;padding:15px;font-size:13px;border-radius:3px}#command-results a.highlight,#command-results a:hover{background:#b4f99514;color:var(--mint)}nav{gap:24px}code{font-family:var(--mono);color:#b4f995}.resume-page #field{height:600px}.resume-hero{padding-top:65px}.resume-hero h1{margin-bottom:18px}.resume-role{font:14px var(--mono);color:var(--mint);letter-spacing:2px;line-height:1.8}.resume-lede{font-size:19px;line-height:1.8;max-width:780px;color:#b4c0b5}.resume-actions{display:flex;gap:15px;flex-wrap:wrap;margin:30px 0}.resume-layout{display:grid;grid-template-columns:260px 1fr;gap:70px;padding-top:60px}.resume-sidebar{border-right:1px solid var(--line);padding-right:30px}.resume-sidebar h2{font:10px var(--mono);color:var(--mint);letter-spacing:1px;margin:0 0 18px}.resume-sidebar p{font-size:13px;line-height:1.9;color:#b7c4b7}.resume-sidebar section{margin-bottom:35px}.resume-main section{margin-bottom:55px}.resume-main h2{font-size:30px;margin:0 0 25px}.resume-main h3{font-size:21px;margin:0 0 10px}.resume-main p,.resume-main li{font-size:14px;line-height:1.9;color:#b4c0b5}.resume-main ul{padding-left:19px}.resume-main li{margin-bottom:10px}.resume-entry{border-top:1px solid var(--line);padding-top:25px;margin-bottom:30px}.resume-entry .tag{margin-bottom:15px}.resume-topline{display:flex;justify-content:space-between;gap:20px;align-items:center}.resume-note{font:10px/1.8 var(--mono);color:var(--muted);padding:20px;border:1px solid var(--line);border-radius:4px}.resume-links a{display:block;font-size:12px;color:var(--mint);margin-bottom:12px;overflow-wrap:anywhere}
@media(max-width:1000px){nav{gap:15px}.pipeline li{padding:18px 10px}.pipeline li b{font-size:18px}.pipeline{padding:25px 18px}.architecture-nodes{gap:12px}.architecture-node{padding:20px 12px}.resume-layout{gap:35px;grid-template-columns:210px 1fr}.resume-hero h1{font-size:65px}}
@media(max-width:700px){.work-heading{display:block}.work-heading>p{max-width:none;margin:-15px 0 30px}.project-grid{grid-template-columns:1fr}.project-card{padding:25px}.project-card h3{font-size:26px}.architecture-board{padding:20px}.architecture-nodes{grid-template-columns:1fr 1fr}.architecture-node{padding:18px}.architecture-detail{min-height:280px}.architecture-detail h3{font-size:26px}.release-toolbar{flex-wrap:wrap;padding:20px}.pipeline{grid-template-columns:1fr;padding:20px;gap:8px}.pipeline li{display:grid;grid-template-columns:25px 75px 1fr;gap:10px;padding:15px;align-items:center}.pipeline li b{font-size:18px}.pipeline li small{font-size:8px}.release-controls{padding:0 20px 20px;gap:10px}.release-controls .button{font-size:11px;padding:15px;gap:10px}.status-pill{margin:0;width:100%}.release-log{padding:20px;font-size:10px;min-height:250px}.terminal-output{font-size:10px}.terminal-input input{font-size:11px}.terminal-input button{font-size:9px;padding:10px}.resume-invite{align-items:flex-start;flex-direction:column}.resume-layout{grid-template-columns:1fr;padding-top:40px;gap:20px}.resume-sidebar{border-right:0;border-bottom:1px solid var(--line);padding-right:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.resume-sidebar section{margin-bottom:15px}.resume-hero h1{font-size:55px}.resume-role{font-size:11px}.resume-lede{font-size:16px}.resume-topline{display:block}.resume-main h2{font-size:27px}}
@media(max-width:600px){nav a:not(.github){display:none}nav a[href='/resume.html']{display:block;font-size:11px}.command-trigger{font-size:9px;padding:8px}header .brand{font-size:9px;letter-spacing:.5px}.brand-mark{font-size:23px;margin-right:4px}nav{gap:10px}.hero .eyebrow{font-size:7px;line-height:1.8}.resume-page nav .github{display:none}}
@media print{@page{margin:16mm;size:A4}html,body{background:white!important;color:#18231d!important;font-family:Arial,sans-serif;font-size:10pt}header,footer,#field,.grain,.resume-actions,dialog,.resume-note,.skip{display:none!important}.section,.hero{padding:0!important;max-width:none!important}.resume-hero h1{font-size:34pt;letter-spacing:-1px;margin:0 0 8px}.resume-role{font-size:11pt;letter-spacing:1px}.resume-lede{font-size:10pt;line-height:1.6;max-width:none}.eyebrow{font-size:8pt}.resume-layout{display:block;padding-top:15px!important}.resume-sidebar{display:grid;grid-template-columns:1fr 1fr 1fr;border:0;gap:20px;padding:0;margin:20px 0}.resume-sidebar section{margin:0}.resume-sidebar p,.resume-main p,.resume-main li{font-size:9pt;color:#24372b;line-height:1.55}.resume-sidebar h2{font-size:9pt;color:#24372b;margin-bottom:8px}.resume-main h2{font-size:17pt;color:#18231d;letter-spacing:-.5px;margin:18px 0 12px}.resume-main h3{font-size:12pt}.resume-main section{margin-bottom:22px}.resume-entry{break-inside:avoid;padding-top:13px;margin-bottom:15px;border-color:#ddd}.resume-main li{margin-bottom:5px}.tag{border-color:#ccc;color:#24372b;font-size:7pt;padding:4px;margin:4px 3px 5px 0}.resume-links a{font-size:8pt;color:#24372b}.mint,.muted,.resume-role{color:#24372b!important}.resume-main h2{break-after:avoid}.resume-lede{margin:10px 0}}
/* Keep the animated orbit inside its illustration on narrow viewports. */
.reactor{overflow:clip}

.resume-contact-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:0;line-height:1.8}.resume-links .resume-contact-links a{display:inline;margin:0}.resume-contact-links>span{color:var(--muted)}
/* Hardware, self-hosting, and the game shipping pipeline. */
.homelab-section,.games-section{border-top:1px solid var(--line)}.lab-capacity{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #3c503c;border-radius:6px;background:radial-gradient(ellipse at 5% 10%,#b4f99513,transparent 65%),#111a14;overflow:hidden;margin-top:20px}.lab-capacity article{padding:30px;min-width:0}.lab-capacity article+article{border-left:1px solid #344437}.capacity-kicker{font:9px var(--mono);letter-spacing:2px;color:#9caf99}.lab-capacity article>p{display:flex;align-items:baseline;gap:12px;margin:20px 0}.lab-capacity strong{font:500 clamp(48px,5vw,78px) 'Space Grotesk';letter-spacing:-4px;color:var(--mint);line-height:1}.lab-capacity article>p>span{font:12px var(--mono);color:#b6c6b0}.capacity-detail{font-size:13px;line-height:1.8;color:var(--muted);display:block;max-width:290px}.hardware-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:40px}.hardware-card{padding:25px;background:linear-gradient(155deg,#142019,#0d1418);border:1px solid var(--line);border-radius:6px;overflow:hidden}.hardware-card .eyebrow{font-size:8px;letter-spacing:1px}.hardware-card h3{font-size:26px;letter-spacing:-.6px;line-height:1.2;margin:20px 0}.hardware-card p{font-size:13px;line-height:1.9;color:var(--muted)}.hardware-card .hardware-spec{font:10px/2 var(--mono);color:#c0d6b4;padding-bottom:15px;border-bottom:1px solid var(--line)}.hardware-art{height:150px;position:relative;margin:0 0 30px}.server-art{padding:12px 10px;transform:perspective(500px) rotateY(-10deg)}.server-art>div{height:25px;border:1px solid #60725c;background:linear-gradient(90deg,#2a3b29,#16241c);border-radius:3px;margin:4px 0;display:flex;align-items:center;gap:5px;padding:0 10px}.server-art i{display:block;width:4px;height:4px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px #b4f99577}.server-art div>span{margin-left:auto;width:50%;height:13px;background:repeating-linear-gradient(90deg,#80917a55 0 4px,transparent 4px 9px)}.vm-art{display:grid;grid-template-columns:repeat(3,1fr);align-content:center;gap:10px;padding:10px}.vm-art>span{display:grid;place-items:center;height:65px;border:1px solid #6c815f;border-radius:5px;font:15px var(--mono);color:var(--mint);background:#213320}.vm-art>div{grid-column:1/-1;text-align:center;border-top:1px solid #60725c;padding-top:13px;margin-top:6px;font:8px var(--mono);letter-spacing:2px;color:var(--muted)}.mini-art{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:23px}.mini-box{height:85px;width:85px;border:1px solid #718c65;border-radius:16px;background:linear-gradient(135deg,#30472b,#16271b);box-shadow:12px 12px 0 #07110c;transform:rotate(-8deg);display:grid;place-items:center;position:relative}.mini-box b{font:500 37px 'Space Grotesk';color:var(--mint)}.mini-box i{width:4px;height:4px;background:var(--mint);border-radius:50%;position:absolute;right:15px;bottom:13px;box-shadow:0 0 9px var(--mint)}.mini-art>span{font:7px var(--mono);color:var(--muted);letter-spacing:2px}.lab-services{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:6px;margin-top:30px;background:#101916}.lab-service-intro{padding:35px;border-right:1px solid var(--line)}.lab-service-intro h3,.lab-service-detail h3{font-size:28px;letter-spacing:-.8px;line-height:1.2;margin:20px 0}.lab-service-intro p,.lab-service-detail p{font-size:14px;line-height:1.9;color:var(--muted)}.lab-service-tabs,.game-track-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.lab-service-tabs button,.game-track-tabs button{font:9px var(--mono);border:1px solid #3d4f3e;background:#152119;color:#b2c5ad;padding:11px;border-radius:4px;cursor:pointer}.lab-service-tabs button.active,.game-track-tabs button.active{border-color:var(--mint);color:var(--mint);background:#b4f9950b}.lab-service-detail{padding:35px;min-height:340px;background:radial-gradient(ellipse at 90% 90%,#b4f99509,transparent 70%)}.lab-service-detail>.text-link{color:var(--mint);display:inline-block;margin-top:20px;font-size:11px}.automation-motto{display:flex;align-items:center;gap:28px;margin:55px 0 0;padding:32px 0 0;border-top:1px solid var(--line)}.automation-motto>span{font:38px var(--mono);color:var(--mint)}.automation-motto p{font:400 clamp(24px,3.2vw,42px)/1.35 'Space Grotesk';letter-spacing:-1px;margin:0}.automation-motto strong{font-weight:500;color:var(--mint)}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.game-card{--game:#b4f995;min-width:0;padding:25px 20px;border:1px solid var(--line);border-radius:6px;background:linear-gradient(145deg,#141c1a,#101416)}.mushroom-game{--game:#f2bbdc;background:radial-gradient(ellipse at 50% 0,#ea8dc216,transparent 70%),#14161a}.forest-game{--game:#b4f995;background:radial-gradient(ellipse at 50% 0,#b4f99513,transparent 70%),#111a13}.arc-game{--game:#c4b2fc;background:radial-gradient(ellipse at 50% 0,#a887f31a,transparent 70%),#16141e}.echo-game{--game:#9ce4e8;background:radial-gradient(ellipse at 50% 0,#63d9e315,transparent 70%),#10191d}.game-emblem{height:120px;display:grid;place-items:center;margin-bottom:25px;border-bottom:1px solid #ffffff12;padding-bottom:15px}.game-emblem svg{width:140px;max-width:100%;height:105px;fill:none;stroke:var(--game);stroke-width:2;filter:drop-shadow(0 0 15px color-mix(in srgb,var(--game),transparent 70%))}.mushroom-game .game-emblem circle{fill:var(--game);stroke:none}.game-phase{font:7px/1.8 var(--mono);letter-spacing:1px;color:var(--game)}.game-card h3{font-size:27px;letter-spacing:-.7px;margin:16px 0}.game-card>p{font-size:13px;line-height:1.9;color:#acb9b1;min-height:100px}.game-card .text-link,.game-footnote{font:9px/1.9 var(--mono);color:var(--game);display:inline-block}.game-delivery{margin-top:30px;padding:30px;border:1px solid var(--line);border-radius:6px;background:radial-gradient(ellipse at 90% 0,#a887f30b,transparent),#111818}.game-delivery-head{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.game-delivery-head h3{font-size:26px;letter-spacing:-.6px;margin:20px 0}.game-track-tabs{margin-top:0;flex-shrink:0}.game-delivery-flow{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:15px 0 25px;gap:12px}.game-delivery-flow li{display:flex;flex-direction:column;gap:15px;padding:22px 17px;border:1px solid #3b4d3b;border-radius:4px;background:#17241b;min-width:0;position:relative}.game-delivery-flow li:not(:last-child):after{content:'→';position:absolute;right:-10px;top:45%;color:var(--mint);background:#111818;z-index:1}.game-delivery-flow li>span{font:9px var(--mono);color:var(--muted)}.game-delivery-flow strong{font:500 22px 'Space Grotesk'}.game-delivery-flow small{font:9px/1.8 var(--mono);color:#b7ccb0;overflow-wrap:anywhere}.game-delivery>p:not(.demo-note){font-size:14px;line-height:1.9;color:var(--muted);max-width:900px}nav{gap:18px}header nav a{font-size:12px}
@media(max-width:1000px){.lab-capacity article{padding:24px 20px}.lab-capacity strong{font-size:60px}.hardware-grid{gap:12px}.hardware-card{padding:20px}.hardware-card h3{font-size:23px}.hardware-card .hardware-spec{font-size:9px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-card>p{min-height:65px}.game-delivery-head{display:block}.game-track-tabs{margin-bottom:25px}.lab-service-detail,.lab-service-intro{padding:25px}header nav{gap:12px}header nav a{font-size:11px}}
@media(max-width:700px){.lab-capacity{grid-template-columns:1fr}.lab-capacity article{padding:25px}.lab-capacity article+article{border-left:0;border-top:1px solid #344437}.lab-capacity article>p{margin:15px 0}.lab-capacity strong{font-size:64px}.capacity-detail{max-width:none}.hardware-grid{grid-template-columns:1fr}.hardware-card{padding:25px}.hardware-art{height:130px;max-width:300px;margin:0 auto 25px;width:100%}.hardware-card .hardware-spec{font-size:11px}.hardware-card h3{font-size:28px}.lab-services{grid-template-columns:1fr}.lab-service-intro{border-right:0;border-bottom:1px solid var(--line)}.lab-service-detail{min-height:365px}.automation-motto{gap:18px;margin-top:35px}.automation-motto>span{font-size:25px}.automation-motto p{font-size:27px}.game-grid{grid-template-columns:1fr 1fr;gap:12px}.game-card{padding:20px 15px}.game-card h3{font-size:24px}.game-card>p{min-height:145px;font-size:12px}.game-phase{font-size:6px}.game-delivery{padding:22px}.game-delivery-flow{grid-template-columns:1fr 1fr}.game-delivery-flow li{padding:18px 13px}.game-delivery-flow li:after{display:none}.game-delivery-flow strong{font-size:21px}header nav{gap:10px}}
@media(max-width:600px){header nav a[href='#homelab']{display:block}header nav .github{display:none}header nav a[href='/resume.html']{font-size:10px}.game-card>p{min-height:145px}.game-delivery-head h3{font-size:24px}.game-delivery .eyebrow{font-size:7px;letter-spacing:.7px}}
@media(max-width:370px){.game-grid{grid-template-columns:1fr}.game-card>p{min-height:0}.game-emblem{height:100px}.game-card h3{font-size:26px}header .brand{font-size:8px}.brand-mark{font-size:20px}}
.hero-studio-link{display:inline-block;margin-top:23px;color:#b4c7af;font:10px/1.8 var(--mono);border-bottom:1px solid #46633f;padding-bottom:6px}.hero-studio-link:hover{color:var(--mint)}.hero-studio-link>span{margin-left:10px}.toolbox-section{border-top:1px solid var(--line)}.toolbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.toolbox-card{padding:27px;border:1px solid var(--line);border-radius:6px;background:linear-gradient(145deg,#152119,#101619);min-width:0}.toolbox-index{font:8px/1.8 var(--mono);letter-spacing:1px;color:var(--mint)}.toolbox-card h3{font-size:27px;letter-spacing:-.7px;line-height:1.2;margin:22px 0 15px}.toolbox-card>p{font-size:14px;line-height:1.9;color:var(--muted)}.toolbox-card .tag{font-size:7px}.toolbox-resume-link{display:inline-block;margin-top:27px;font:11px/1.8 var(--mono);color:var(--mint);border-bottom:1px solid #46633f;padding-bottom:7px}.studio-strip{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:0 0 30px;padding:25px 30px;border:1px solid #6e5374;border-radius:6px;background:linear-gradient(100deg,#291e2a,#132118)}.studio-strip .eyebrow{color:#f2bbdc}.studio-strip p{font-size:16px;margin:12px 0 0;color:#c8c0c9}.studio-strip .button{white-space:nowrap}.game-source-link{display:block;margin-top:12px;font:9px/1.8 var(--mono);color:var(--muted)}
@media(max-width:1000px){.toolbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbox-card{padding:25px}.studio-strip{padding:24px}.studio-strip .button{font-size:11px;gap:20px}}
@media(max-width:600px){.hero-studio-link{max-width:100%;font-size:9px}.toolbox-grid{grid-template-columns:1fr}.toolbox-card h3{font-size:28px}.studio-strip{flex-direction:column;align-items:flex-start;padding:25px}.studio-strip .button{white-space:normal;font-size:12px}.studio-strip .eyebrow{font-size:8px}.studio-strip p{font-size:15px}}

.systems-summary{max-width:850px;margin:-20px 0 35px;font-size:16px;line-height:1.9;color:var(--muted)}@media(max-width:600px){.systems-summary{font-size:14px;margin-top:-15px}.resume-role{letter-spacing:1px}}

.radio-section{padding-top:0}.radio-console{display:grid;grid-template-columns:1fr 1.2fr;border:1px solid #50674d;border-radius:7px;background:radial-gradient(ellipse at 10% 60%,#b4f99510,transparent 60%),#101916;overflow:hidden}.radio-visual{padding:38px 35px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.radio-visual>.eyebrow{font-size:8px}.radio-callsign{font:500 clamp(45px,5.5vw,76px) 'Space Grotesk';letter-spacing:-3px;margin-top:30px;color:#dfeada}.radio-license{font:10px var(--mono);letter-spacing:4px;color:var(--mint);margin:14px 0}.radio-antenna{width:100%;height:200px;stroke:#b4f995;stroke-width:2;fill:none;margin-top:10px}.radio-wave{opacity:.5;animation:radio-pulse 4s ease-in-out infinite}.wave-two{animation-delay:.7s}.wave-three{animation-delay:1.4s}.radio-labels{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:20px;font:8px var(--mono);letter-spacing:2px;color:var(--muted)}.radio-copy{padding:45px}.radio-copy>.eyebrow{font-size:8px;line-height:1.9}.radio-copy h2{margin:25px 0;font-size:43px}.radio-copy>p{font-size:15px;line-height:1.9;color:#acbcae}.radio-copy strong{font-weight:500;color:#e4eadd}.radio-copy .radio-note{font:10px/1.9 var(--mono);color:var(--mint);margin-top:25px}@keyframes radio-pulse{0%,100%{opacity:.18}50%{opacity:.7}}@media(max-width:800px){.radio-console{grid-template-columns:1fr}.radio-visual{border-right:0;border-bottom:1px solid var(--line)}.radio-copy{padding:30px}.radio-copy h2{font-size:36px}.radio-antenna{height:170px}.radio-callsign{font-size:65px}}@media(max-width:600px){.radio-visual{padding:30px 25px}.radio-copy{padding:30px 25px}.radio-copy h2{font-size:32px}.radio-callsign{font-size:58px}.radio-labels{font-size:7px;letter-spacing:1px}}

/* Share each pair's content rows so card edges, tags, and expanders align. */
.project-grid{align-items:stretch}
.project-grid>.project-card{display:grid;grid-template-rows:subgrid;grid-row:span 5;align-self:stretch;row-gap:0}

/* Echyøn: hardware, hands, and another kind of signal. */
.music-section{border-top:1px solid var(--line)}
.music-station{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid #50674d;border-radius:7px;overflow:hidden;background:radial-gradient(ellipse at 0 20%,#b4f99512,transparent 60%),#101916}
.music-artist{padding:40px;border-right:1px solid var(--line);min-width:0}
.music-artist>.eyebrow,.music-setup>.eyebrow{font-size:8px;line-height:1.9}
.music-wordmark{font:500 clamp(54px,6vw,86px)/1.2 'Space Grotesk',sans-serif;letter-spacing:-4px;margin-top:35px}
.music-wordmark>span{color:var(--mint)}
.music-signal{width:100%;height:135px;fill:none;stroke-linecap:round;margin-top:12px}
.music-baseline{stroke:#364c40;stroke-width:1}
.music-waveform{stroke:url(#music-gradient);stroke-width:2;filter:drop-shadow(0 0 7px #b4f99535)}
.music-output{display:flex;justify-content:space-between;gap:15px;padding:15px 0 30px;border-top:1px solid var(--line);font:7px/1.8 var(--mono);letter-spacing:.5px;color:var(--muted)}
.music-platforms{font:10px/1.9 var(--mono);color:#a8b7ad;max-width:340px;margin:20px 0 0}
.music-setup{padding:40px;min-width:0;display:flex;flex-direction:column}
.music-setup-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:25px 0 30px}
.music-setup-buttons button{font:10px/1.8 var(--mono);text-align:left;background:#101a17;border:1px solid #35483b;border-radius:4px;padding:12px;color:#b9c7ba;cursor:pointer}
.music-setup-buttons button:hover,.music-setup-buttons button.active{border-color:#b4f99588;color:var(--mint);background:#b4f9950c}
.music-detail-label{font:8px/1.8 var(--mono);letter-spacing:1.5px;color:var(--mint)}
.music-setup-detail{min-height:245px}
.music-setup-detail h3{font-size:30px;line-height:1.2;letter-spacing:-.8px;margin:18px 0}
.music-setup-detail>p{font-size:14px;line-height:1.9;color:#acbcae}
.music-setup-detail .music-kit{font:9px/2 var(--mono);color:var(--mint);margin-top:23px;letter-spacing:.5px}
.music-footnote{font:10px/1.9 var(--mono);color:var(--muted);padding-top:20px;border-top:1px solid var(--line);margin:auto 0 0}
@media(max-width:1000px){.music-artist,.music-setup{padding:30px}.music-wordmark{font-size:65px}.music-setup-detail{min-height:290px}.music-setup-buttons button{font-size:9px;padding:10px}.music-output{flex-wrap:wrap}}
@media(max-width:800px){.music-station{grid-template-columns:1fr}.music-artist{border-right:0;border-bottom:1px solid var(--line)}.music-wordmark{font-size:78px}.music-signal{height:115px}.music-setup-detail{min-height:230px}.music-output{flex-wrap:nowrap}.music-setup-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.music-setup-buttons button{font-size:8px}}
@media(max-width:600px){.music-artist,.music-setup{padding:28px 24px}.music-wordmark{font-size:65px}.music-output{flex-wrap:wrap}.music-setup-buttons{grid-template-columns:1fr 1fr}.music-setup-buttons button{font-size:9px}.music-setup-detail{min-height:290px}.music-setup-detail h3{font-size:28px}}
