@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
@import url('pcb-base.css');
:root{--paper:#111510;--ink:#eef1e7;--muted:#a0ad98;--accent:#d6ff73;--line:#33402c;--sans:'DM Sans','Segoe UI',sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--mono:'IBM Plex Mono',Consolas,monospace}body{background:var(--paper);color:var(--ink)}.brand{letter-spacing:.1px}.brand:before{content:'s↗';display:inline-block;margin-right:12px;color:var(--accent);font:italic 33px Georgia,serif}.brand>span{margin-left:46px;font:8px var(--mono);letter-spacing:.6px}.site-header{min-height:100px}.site-header nav{font:10px var(--mono)}.hero{grid-template-columns:1.2fr .9fr;padding-block:65px 60px;gap:85px}.hero .eyebrow:before{content:'';display:inline-block;width:6px;height:6px;background:var(--accent);box-shadow:0 0 12px #d6ff7345;border-radius:50%;margin-right:10px}.hero-intro{font-size:17px;color:#c3cfb7;margin-bottom:18px}.hero h1{font:600 clamp(100px,10vw,145px)/.86 var(--display);text-transform:uppercase;letter-spacing:-1px;margin-bottom:28px}.hero h1 em{font:inherit;font-style:normal;letter-spacing:-1px}.hero-lead{color:#becbb5;font-size:16px;line-height:1.8}.hero-support{color:var(--muted);font-size:12px;max-width:520px}.hero .actions{margin-top:27px}.button{background:var(--accent);color:#16210b;border-radius:0}.button:hover{background:#e3ffa2;color:#111b08}.portrait{position:relative;max-width:410px;padding:12px;border:1px solid #53643c;background:linear-gradient(145deg,#334126,#1b2416)}.portrait:before,.portrait:after{content:'+';font:22px var(--mono);color:var(--accent);position:absolute;top:-16px;left:-8px}.portrait:after{top:auto;left:auto;bottom:-13px;right:-8px}.portrait img{height:460px;filter:grayscale(1) brightness(.85);border-radius:0}.portrait figcaption{color:#c4d5ac;font:9px var(--mono);padding:3px 0 0}.experience-strip{font:10px var(--mono);color:#a6ba91}.section-intro .eyebrow,.eyebrow{color:var(--accent)}h2{font-family:var(--display);font-size:49px;font-weight:600;letter-spacing:.1px;text-transform:uppercase}h3{color:var(--ink)}.feature h3{font:600 36px var(--display);letter-spacing:.3px;text-transform:uppercase}.feature-visual,.case-photo{background:#e7ebe0;border-radius:0}.feature p,.work-row p,.body-copy,.student-row p,.section-intro>p:not(.eyebrow),.skills-grid p,.detailed-career p,.case-section p,.case-section li,.page-intro>p:not(.eyebrow){color:var(--muted)}.case-section h2,.archive-section>h2{font-size:31px}.case-hero h1,.page-intro h1{font-family:var(--display);text-transform:uppercase;letter-spacing:.4px}.system-art{background:linear-gradient(145deg,#27391b,#1b2614);border:1px solid #425b2f;color:var(--accent);border-radius:0}.system-art>span,.system-art small{color:#a9bd91}.system-art i{color:#6a8c49}.system-art b{font-family:var(--mono);font-size:14px}.contact{background:#d6ff73;color:#152009}.contact .eyebrow,.contact-links{color:#3e5526}.contact h2{color:#152009;font-family:var(--display);font-size:64px}.contact a:hover{color:#3e5526}.contact-email{border-color:#6c8849}.career-list small,.feature-meta,.status{color:var(--muted)}.play-module{margin-top:25px}.play-disclosure{border:1px solid #4e6835;background:#192411}.play-disclosure>summary{padding:25px 28px;list-style:none;cursor:pointer;display:flex;gap:28px;align-items:center;position:relative;overflow:hidden}.play-disclosure>summary::-webkit-details-marker{display:none}.play-disclosure>summary small{display:block;font:8px var(--mono);letter-spacing:1px;color:#9bb480;margin-bottom:8px}.play-disclosure>summary strong{display:block;font:600 29px var(--display);color:var(--ink)}.play-disclosure>summary em{display:block;font-size:11px;font-style:normal;color:var(--muted);margin-top:6px}.play-action{margin-left:auto;white-space:nowrap;color:var(--accent);font:10px var(--mono);padding-left:20px}.play-action b{margin-left:16px;font-size:19px}.pixel-circuit{font:29px var(--mono);color:#76984d;position:relative;min-width:110px;white-space:nowrap;overflow:hidden;line-height:2}.pixel-circuit>span{display:inline-block;position:absolute;left:32px;top:-3px;color:var(--accent);animation:robot-hop 2s ease-in-out infinite}.inline-game{padding:22px;margin:0;border-top:1px solid #4e6835}.standalone-game{display:inline-block;margin-top:15px;color:var(--accent);font-size:10px}.play-disclosure[open] .play-action b{display:inline-block;transform:rotate(90deg)}.home-board{padding-top:75px}.home-board .section-top{display:flex;gap:25px;justify-content:space-between;margin-bottom:24px}.kicker{font:10px/1.8 var(--mono);color:var(--accent)}.section-note{font:8px/1.8 var(--mono);color:var(--muted)}.home-board .section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:32px}.home-board h2{margin-bottom:0}.home-board h2 span{color:#96aa7d}.home-board .section-heading>p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}.console-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 20px;border-bottom:1px solid #3b512a;font:8px var(--mono);color:#a1b88b}.console-toolbar .live-dot{display:inline-block;width:5px;height:5px;margin-right:6px;background:var(--accent);border-radius:50%}.pcb-part{color:var(--ink);border-radius:0}.pcb-part:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.probe-readout h3{font-family:var(--display);letter-spacing:.4px}.probe-symbol{display:block}.probe-readout p{color:#b3c59f}.section{padding-block:80px}.play-disclosure summary:hover{background:#223017}.play-disclosure summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@keyframes robot-hop{0%,50%,100%{transform:translateY(0)}25%{transform:translateY(-8px)}}@media(max-width:1000px){.hero{gap:40px}.hero h1{font-size:110px}.portrait img{height:390px}.brand:before{font-size:27px}.brand>span{margin-left:40px}.site-header nav{gap:20px}}@media(max-width:700px){.site-header{gap:15px;min-height:90px}.brand{font-size:15px}.brand:before{font-size:23px;margin-right:8px}.brand>span{font-size:6px;line-height:1.7;max-width:150px;margin-left:30px}.site-header nav{font-size:9px;gap:13px}.hero{grid-template-columns:1fr;gap:30px;padding-top:42px;padding-bottom:38px}.hero h1{font-size:106px}.hero-intro{font-size:14px;margin-bottom:16px}.hero .eyebrow{font-size:9px}.hero-lead{font-size:15px}.hero-support{font-size:12px}.portrait{display:block;max-width:none;padding:10px}.portrait img{width:100%;height:320px;object-position:50% 28%}.portrait figcaption{font-size:8px;margin-top:12px;max-width:none}.experience-strip{font-size:9px}.play-disclosure>summary{padding:20px;gap:15px;flex-wrap:wrap}.pixel-circuit{font-size:24px;min-width:90px}.play-disclosure>summary strong{font-size:26px}.play-disclosure>summary em{font-size:10px}.play-action{padding:0;margin:0 0 0 auto;font-size:9px}.inline-game{padding:12px}.home-board .section-heading{flex-direction:column;gap:20px;align-items:start}.home-board .section-note{display:none}.home-board h2,h2{font-size:38px}.pcb-layout{grid-template-columns:1fr}.pcb-part{padding:5px 7px}.pcb-part small{font-size:5px;margin-bottom:3px}.pcb-part strong{font-size:9px}.pcb-part i{font-size:9px;right:5px;top:5px}.probe-readout{border-left:0;border-top:1px solid #3b512a;padding:22px}.probe-symbol{font-size:40px;margin:15px 0}.probe-readout p{min-height:0;font-size:12px}.probe-readout h3{font-size:30px}.probe-help{font-size:7px}.layer-controls button{padding:8px;font-size:6px}.console-toolbar{font-size:6px;padding:12px}.feature h3{font-size:31px}.contact h2{font-size:44px}.case-section h2{font-size:28px}.section{padding-block:55px}}@media(prefers-reduced-motion:reduce){.pixel-circuit>span{animation:none}}
/* Project-led UX: concise proof, purposeful interactions. */
.hero .hero-lead{font-size:19px;max-width:520px;line-height:1.7}.hero .hero-support{font-size:13px;max-width:510px}.career-strip{justify-content:space-between;gap:30px}.career-strip small{display:block;font:8px/1.8 var(--mono);color:#8da17b;margin-bottom:6px}.career-strip strong{font:500 15px var(--sans);color:#cbd8bf}.evidence-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.evidence-project{min-width:0;border-bottom:1px solid var(--line);padding-bottom:26px}.evidence-project-main{display:block;height:100%}.evidence-project .feature-visual{height:230px}.evidence-project img{width:90%;height:88%;object-fit:contain;transition:transform .25s}.evidence-project-main:hover img{transform:scale(1.035)}.evidence-meta{font:8px/1.8 var(--mono);color:#9cb288;margin:20px 0 12px;text-transform:uppercase;letter-spacing:.5px}.evidence-project h3{font:600 32px/1.1 var(--display);text-transform:uppercase;letter-spacing:.3px;display:flex;justify-content:space-between;gap:10px;margin:0 0 12px}.evidence-project h3 span{font:21px var(--sans);color:var(--accent)}.evidence-challenge{font-size:13px;color:#c3cfb8;line-height:1.8;min-height:47px;margin:0 0 19px}.evidence-project dl{margin:0 0 22px}.evidence-project dl>div{padding:11px 0;border-top:1px solid #2b3825}.evidence-project dt{font:8px var(--mono);color:#8da17b;text-transform:uppercase;margin-bottom:8px}.evidence-project dd{margin:0;color:#afbea2;font-size:12px;line-height:1.8}.prototype-art{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#26371d,#1b2615);padding:20px;color:var(--accent)}.prototype-art>span,.prototype-art>small{font:8px/1.8 var(--mono);color:#a3b58f}.prototype-art>div{display:flex;flex-direction:column;gap:5px;text-align:center}.prototype-art b{font:500 12px var(--mono)}.prototype-art i{font-style:normal;font-size:13px;color:#688c47}.work-archive-link{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:28px}.work-archive-link p{font-size:12px;line-height:1.9;color:var(--muted);max-width:620px;margin:0}.work-archive-link a{white-space:nowrap}.home-board .probe-readout{padding:27px}.home-board .probe-symbol{font-size:45px;margin:16px 0}.home-board #probe-copy{min-height:0;margin-bottom:20px;font-size:12px}.probe-case{border-top:1px solid #3a502b;padding-top:17px}.probe-case>span{display:block;color:var(--accent);font:9px/1.8 var(--mono);margin-bottom:13px}.probe-case>strong{display:block;font:8px var(--mono);color:#8ea375;text-transform:uppercase;letter-spacing:.6px}.probe-case #probe-decision{min-height:0;font-size:12px;line-height:1.9;color:#b6c8a4;margin:10px 0 17px}.probe-case>a{display:inline-block;font:10px/1.9 var(--mono);color:var(--accent);text-decoration:underline;text-underline-offset:4px}.probe-help{margin-top:16px;line-height:1.8}.decision-section{background:#182411;padding:28px;margin-top:20px;border:1px solid #3b502c;grid-template-columns:202px 1fr}.decision-section h2{font-size:28px}.decision-section p{color:#c2d0b5}.journey-chapter{display:block;font:9px/1.8 var(--mono);color:var(--accent);margin-bottom:8px;letter-spacing:.4px}.game-page .runner-story .kicker{color:#98ad80}@media(max-width:1000px){.evidence-projects{gap:20px}.evidence-project .feature-visual{height:200px}.evidence-project h3{font-size:28px}.evidence-challenge{min-height:70px}}@media(max-width:760px){.evidence-projects{grid-template-columns:1fr;gap:32px}.evidence-project .feature-visual{height:245px}.evidence-project h3{font-size:32px}.evidence-challenge{min-height:0;font-size:14px;margin-bottom:17px}.evidence-project dd{font-size:13px}.evidence-project .read-link{font-size:12px}.work-archive-link{flex-direction:column;align-items:start;gap:17px}.career-strip{display:grid;grid-template-columns:1fr;gap:18px}.career-strip span{display:flex;justify-content:space-between;align-items:center;gap:20px}.career-strip small{font-size:7px;margin-bottom:0}.career-strip strong{font-size:13px}.decision-section{padding:22px;grid-template-columns:1fr}.hero .hero-lead{font-size:17px}.hero .hero-support{font-size:12px}.home-board .probe-readout{padding:22px}}
/* Square upper-body framing uses the supplied photograph without editing it. */
.portrait .portrait-crop{position:relative;display:block;width:100%;aspect-ratio:1 / 1;overflow:hidden;background:#a3a3a3}
.portrait .portrait-crop>img{position:absolute;display:block;width:170.153846%;max-width:none;height:auto;left:50%;top:-9.230769%;transform:translateX(-50%);object-fit:initial;object-position:initial;filter:none;border-radius:0}

.portrait{padding:8px;background:#182113;border-color:#3b4d2d}.portrait figcaption{padding-top:11px;margin-top:0;color:#a8ba96;text-align:center}