/* FRS / SIGNAL LAB — intentionally plain CSS, no framework. */
@import url('./studio.css');
:root{color-scheme:light;--bg:#f4f5ee;--surface:#e9ede3;--paper:#fcfdf8;--ink:#193c32;--muted:#56665d;--line:#cbd3c5;--accent:#ddf478;--accent-ink:#193c32;--focus:#9c4711;--radius:8px;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:Inter,"Helvetica Neue",Arial,sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#101d18;--surface:#192b23;--paper:#21372c;--ink:#eaf0e4;--muted:#b0bdaf;--line:#3e5244;--accent:#ddf478;--accent-ink:#193c32;--focus:#ddf478}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-bottom:50px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration-color:currentColor}button{border:0;background:none}img{max-width:100%;height:auto;display:block}svg{display:block}p,h1,h2,h3{margin:0}ul{margin:0;padding:0}h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(3rem,5.7vw,6rem)}h2{font-size:clamp(2rem,3.6vw,3.7rem)}h3{font-size:1.55rem}p{overflow-wrap:break-word}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:5px}::selection{background:var(--accent);color:var(--accent-ink)}[hidden]{display:none!important}.js-only{display:none!important}.js .js-only{display:revert!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:10px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 20px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.section{max-width:1440px;margin-inline:auto;padding:90px 64px}.eyebrow,.mono{font-family:var(--mono);font-size:.69rem;line-height:1.6;letter-spacing:.06em}.eyebrow{text-transform:uppercase;letter-spacing:.13em}.muted{color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;background:#4d8153;border-radius:50%;vertical-align:middle;margin-right:6px}[data-theme=dark] .status-dot{background:var(--accent)}.text-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid currentColor;padding:10px 0 6px;font-size:.85rem;font-weight:500;line-height:1.4;text-align:left}.text-link:hover{border-color:transparent}.button{min-height:48px;padding:13px 21px;display:inline-flex;align-items:center;justify-content:center;gap:30px;border:1px solid transparent;border-radius:3px;font-size:.86rem;font-weight:500;line-height:1.5;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:var(--bg)}.button-dark:hover{opacity:.9}.button-accent{background:var(--accent);color:var(--accent-ink)}.button-outline{border-color:var(--line);background:transparent}.button-outline:hover{background:var(--surface);border-color:var(--ink)}
.site-header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}.header-inner{max-width:1440px;margin:auto;padding:17px 64px;display:flex;align-items:center;gap:36px;min-height:88px}.brand{display:flex;align-items:center;gap:14px;margin-right:auto;flex-shrink:0}.brand-symbol{font-weight:700;font-size:2.7rem;line-height:1;letter-spacing:-.12em}.brand-symbol span{font-weight:400}.brand-text{border-left:1px solid var(--line);padding-left:13px;font:10px/1.35 var(--mono);letter-spacing:.12em;position:relative}.brand-dot{position:absolute;right:-12px;top:-4px;font-size:9px}#site-nav{display:flex;gap:26px;align-items:center;font-size:.8rem}#site-nav a{padding:10px 0;position:relative;white-space:nowrap}#site-nav a:after{content:"";position:absolute;bottom:4px;height:2px;left:0;width:0;background:var(--ink);transition:width .2s}#site-nav a:hover:after,#site-nav a[aria-current=page]:after{width:100%}.header-tools{display:flex;gap:6px;align-items:center}.icon-button{min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:3px;font-size:1.4rem;padding:8px}.icon-button:hover{border-color:var(--line);background:var(--surface)}.language-nav{display:flex;align-items:center;border-left:1px solid var(--line);padding-left:10px;margin-left:4px;gap:0}.language-nav a{font:10px/1.4 var(--mono);padding:12px 6px;color:var(--muted);min-height:40px;display:flex;align-items:center}.language-nav a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}.menu-toggle{font-size:.8rem;min-height:44px;padding:6px 0}.js .menu-toggle{display:none!important}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center;min-height:690px;padding-top:65px;padding-bottom:70px}.hero-copy>.eyebrow{margin-bottom:30px}.hero h1{font-size:clamp(3rem,5.1vw,5.2rem);letter-spacing:-.065em;line-height:1.06}.hero h1>span{font-family:Georgia,"Times New Roman",serif;font-style:italic;letter-spacing:-.055em;font-weight:400}.hero-intro{font-size:1.03rem;line-height:1.85;max-width:430px;color:var(--muted);margin-top:28px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px;margin-top:30px}.hero-signature{display:flex;gap:13px;align-items:center;margin-top:49px}.hero-signature img{width:44px;height:44px;object-fit:cover;object-position:50% 20%;border-radius:50%;filter:grayscale(1);border:1px solid var(--line)}.hero-signature strong{font-weight:500;font-size:.8rem;display:block}.hero-signature .mono{font-size:.62rem;display:block;color:var(--muted);margin-top:4px}.system-console{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative}.console-top{display:flex;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);font-size:.62rem}.signal-map{height:280px;position:relative;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:16px 16px}.signal-lines{position:absolute;inset:0;height:100%;width:100%;stroke:var(--line);stroke-width:1;fill:none}.signal-lines path{stroke:#759274;stroke-dasharray:4 5}.signal-map[data-active] .signal-lines path{animation:signal-flow .7s linear 1}@keyframes signal-flow{to{stroke-dashoffset:-54}}.signal-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:92px;width:92px;border:1px solid var(--ink);border-radius:50%;background:var(--ink);color:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 7px var(--surface),0 0 0 8px var(--line)}.signal-core>span{font-size:25px;letter-spacing:-.06em}.signal-core>small{font:7px var(--mono);letter-spacing:.12em;margin-top:6px}.signal-node{position:absolute;min-height:53px;width:145px;display:grid;grid-template-columns:20px 1fr 6px;gap:7px;align-items:center;border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:10px;text-align:left;font-size:.72rem;line-height:1.3}.signal-node .mono{font-size:.58rem;color:var(--muted)}.signal-node[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-ink)}.signal-node:hover{border-color:var(--ink)}.node-led{height:5px;width:5px;border-radius:50%;background:var(--line)}.signal-node[aria-pressed=true] .node-led{background:var(--accent-ink)}.node-0{left:17px;top:30px}.node-1{right:17px;top:30px}.node-2{left:17px;bottom:30px}.node-3{right:17px;bottom:30px}.map-cross{position:absolute;font:14px var(--mono);color:var(--muted);top:50%;transform:translateY(-50%)}.cross-one{left:20px}.cross-two{right:20px}.signal-panels{margin:0 20px;border-top:1px solid var(--line);min-height:228px;padding-top:17px}.signal-label{color:var(--muted);font-size:.58rem}.signal-panel h3{font-size:1.3rem;margin:5px 0 8px;letter-spacing:-.025em}.signal-panel>p:not(.signal-label){font-size:.8rem;color:var(--muted);line-height:1.65;min-height:42px;max-width:350px}.signal-panel ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:13px}.signal-panel li a{display:inline-flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:.7rem}.signal-panel li a:hover{border-color:var(--ink)}.console-hint{font-size:.57rem;padding:14px 20px;color:var(--muted)}.discipline-strip{border-block:1px solid var(--line);padding:22px 40px;display:flex;align-items:center;justify-content:space-evenly;gap:20px;font:10px/1.4 var(--mono);letter-spacing:.1em;flex-wrap:wrap}.discipline-strip span:nth-child(even){font-size:19px}
.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:42px}.section-heading .eyebrow{margin-bottom:16px}.section-heading p:not(.eyebrow){color:var(--muted);margin-top:13px;font-size:.92rem}.section-heading>.text-link{flex-shrink:0}.featured-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:45px 50px;align-items:start}.featured-card:nth-child(even){margin-top:65px}.project-card{min-width:0}.project-link{display:block}.project-image{aspect-ratio:1.42;overflow:hidden;position:relative;background:var(--surface);border-radius:4px;border:1px solid var(--line)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project-link:hover .project-image img{transform:scale(1.035)}.image-index{position:absolute;top:14px;left:14px;background:var(--bg);color:var(--ink);padding:4px 9px;border:1px solid var(--line);font:9px/1.6 var(--mono);border-radius:2px}.image-arrow{position:absolute;bottom:14px;right:14px;width:39px;height:39px;background:var(--bg);border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:20px;transition:background .2s}.project-link:hover .image-arrow{background:var(--accent);color:var(--accent-ink)}.project-caption{padding:20px 0 18px;border-bottom:1px solid var(--line)}.project-caption .mono{font-size:.61rem;margin-bottom:9px}.project-caption h3{font-size:1.45rem;line-height:1.25}.project-excerpt{font-size:.85rem;line-height:1.75;color:var(--muted);margin-top:12px;max-width:530px}.inspect-detail{display:none}.inspect .inspect-detail{display:block;padding:13px;margin-top:10px;background:var(--surface);border:1px dashed var(--ink);font-size:.75rem}.inspect-detail p{margin-top:6px}.inspect .project-image{outline:1px dashed var(--ink);outline-offset:4px}.inspect .project-card{position:relative}.about-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px;align-items:center;border-block:1px solid var(--line);margin-top:10px}.about-portrait{background:#dfe5d5;position:relative;max-width:380px;border:1px solid var(--line);border-radius:3px;overflow:hidden;transform:rotate(-2deg)}.about-portrait img{width:100%;height:auto;max-height:510px;object-fit:cover;object-position:top;filter:grayscale(1)}.photo-label{position:absolute;bottom:16px;left:16px;padding:8px 13px;background:var(--bg);border:1px solid var(--line);font-size:.6rem}.about-copy>.eyebrow{margin-bottom:20px}.about-copy h2{max-width:650px}.prose{font-size:.94rem;line-height:1.9;color:var(--muted);margin:25px 0}.prose strong{color:var(--ink);font-weight:500}.notes-list{border-top:1px solid var(--line)}.note-row{display:grid;grid-template-columns:95px 1fr 48px;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.note-row>span{color:var(--muted);font-size:.6rem}.note-row h3{font-size:clamp(1.2rem,2.3vw,2rem);margin-top:7px}.note-row h3 a:hover{text-decoration:underline;text-underline-offset:6px}.note-arrow{width:44px;height:44px;display:grid;place-items:center;font-size:1.7rem;border-radius:50%;border:1px solid var(--line)}.note-arrow:hover{background:var(--accent);color:var(--accent-ink)}.notes-more{margin-top:35px}.contact-section{background:var(--ink);color:var(--bg);max-width:none}.contact-section>.eyebrow,.contact-grid{max-width:1312px;margin-inline:auto}.contact-section>.eyebrow{opacity:.75;margin-bottom:30px}.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:70px}.contact-grid h2{max-width:730px;font-size:clamp(2.5rem,4.8vw,4.7rem);line-height:1.15}.contact-grid h2 span{font-family:Georgia,serif;font-style:italic;opacity:.75}.contact-actions{display:flex;align-items:start;flex-direction:column}.email-link{font-size:clamp(1rem,1.7vw,1.3rem);margin-top:20px;overflow-wrap:anywhere}.contact-actions .copy-email{font-size:.74rem;margin-top:2px}.contact-actions>.mono{margin-top:25px;margin-bottom:6px;opacity:.75;font-size:.6rem}.social-links{display:flex;flex-wrap:wrap;gap:24px;font-size:.8rem;margin-top:24px}.social-links a:hover{text-decoration:underline}.contact-section :focus-visible{outline-color:var(--bg)}.site-footer{max-width:1440px;padding:48px 64px;display:flex;align-items:center;gap:36px;margin:auto;font-size:.78rem}.footer-brand{font-size:1.15rem;font-weight:600;letter-spacing:-.04em;margin-right:auto;display:flex;gap:30px}.site-footer p.mono{margin-top:6px;font-size:.6rem;color:var(--muted)}.site-footer>a:last-child{font-size:.76rem}.inspect-bar{position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--bg);border-top:1px solid var(--line);padding:5px 24px;min-height:44px}.js .inspect-bar{display:flex!important;justify-content:space-between;align-items:center;gap:20px}.inspect-bar>.mono{font-size:.6rem}.inspect-toggle{display:flex;align-items:center;gap:10px;font:10px/1.4 var(--mono);min-height:36px}.switch{width:26px;height:15px;border:1px solid var(--muted);border-radius:20px;padding:2px;display:block}.switch:before{content:"";height:9px;width:9px;display:block;background:var(--muted);border-radius:50%;transition:transform .15s}.inspect-toggle[aria-pressed=true] .switch{background:var(--accent)}.inspect-toggle[aria-pressed=true] .switch:before{transform:translateX(10px);background:var(--accent-ink)}.toast{position:fixed;bottom:60px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 20px;border-radius:4px;z-index:50;font-size:.8rem;max-width:90vw;text-align:center}.toast:empty{display:none}
.page-heading{padding-top:70px;padding-bottom:52px}.page-heading .eyebrow{margin-bottom:24px;display:flex;justify-content:space-between;gap:20px}.page-heading h1{max-width:1000px}.page-heading>p:not(.eyebrow){max-width:630px;color:var(--muted);margin-top:24px;line-height:1.8}.page-heading>.button{margin-top:30px}.heading-count{color:var(--muted)}.archive-section{padding-top:0}.filter-bar{border-block:1px solid var(--line);padding:25px 0}.search-field label{display:block;font:10px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:9px}.search-field input{width:100%;background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:15px 16px;border-radius:3px;min-height:52px;font-size:1rem}.search-field input::placeholder{color:var(--muted);opacity:1}.filter-options{display:flex;flex-wrap:wrap;gap:15px;margin-top:17px;align-items:center}.filter-options label{flex:1;min-width:140px}.filter-options select{width:100%;min-height:44px;padding:8px 30px 8px 11px;background:var(--bg);border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:.8rem}.filter-options button{margin-left:auto;font-size:.75rem}.archive-status{display:flex;justify-content:space-between;align-items:center;padding:23px 0}.archive-status .mono{font-size:.65rem;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 25px}.project-grid .project-caption h3{font-size:1.14rem}.project-grid .project-caption{padding-top:16px}.project-grid .project-excerpt{font-size:.8rem}.load-more{text-align:center;margin-top:45px}.empty-state{text-align:center;padding:60px 15px;border:1px dashed var(--line);color:var(--muted)}.project-detail{padding-top:35px;padding-bottom:45px}.back-link{margin-bottom:45px;font-size:.75rem}.detail-heading .eyebrow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:20px}.detail-heading h1{font-size:clamp(2.5rem,5vw,5.2rem);max-width:1000px;margin-bottom:40px}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:60px}.detail-image{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden}.detail-image img{width:100%;height:auto}.project-overview{margin-top:35px}.project-overview .eyebrow{margin-bottom:20px}.project-overview>p:not(.eyebrow){color:var(--muted);font-size:1rem;line-height:1.95;margin-bottom:20px}.project-specs{align-self:start;border-top:1px solid var(--line)}.project-specs section{padding-block:23px;border-bottom:1px solid var(--line)}.project-specs section>.eyebrow{margin-bottom:18px}.tech-tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px}.tech-tags li{font:10px/1.5 var(--mono);padding:7px 10px;background:var(--surface);border:1px solid var(--line);border-radius:2px}.platform-list{list-style:none;font-size:.83rem}.platform-list li{padding:5px 0}.project-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}.project-actions>.button{justify-content:space-between}.project-actions>p{font-size:.85rem;color:var(--muted)}.project-actions>.text-link{align-self:start}.related-section{border-top:1px solid var(--line)}.experience-list{padding-top:0}.experience-row{border-top:1px solid var(--line);padding-block:40px;display:grid;grid-template-columns:220px 1fr 100px;gap:40px}.experience-row:last-child{border-bottom:1px solid var(--line)}.experience-time{color:var(--muted)}.experience-time>span{display:block;margin-bottom:22px}.experience-time p+p{margin-top:8px}.experience-row h2{font-size:1.75rem}.experience-row h3{font-size:1rem;letter-spacing:0;color:var(--muted);margin-top:10px;line-height:1.5}.experience-row ul{padding-left:18px;font-size:.9rem;color:var(--muted);margin-top:23px}.experience-row li+li{margin-top:12px}.experience-row>img{object-fit:contain;background:#fff;padding:8px;border:1px solid var(--line);border-radius:4px;width:100px;height:65px}.skills-section{padding-top:20px}.skills-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.skills-grid li{display:flex;align-items:center;gap:15px;min-height:80px;padding:18px;background:var(--bg);font-size:.83rem}.skills-grid img{height:28px;width:28px;object-fit:contain}.error-page{min-height:70vh}.error-page>.text-link{margin-left:24px}
dialog{color:var(--ink);background:var(--bg);width:min(650px,calc(100vw - 32px));max-height:80dvh;border:1px solid var(--line);border-radius:8px;padding:27px;box-shadow:0 24px 80px #0004}dialog::backdrop{background:#0c2019bb;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:12px}.dialog-heading h2{font-size:1.7rem}#search-help{font-size:.8rem;margin-bottom:18px}#command-search{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:13px;font-size:.9rem;border-radius:3px}#command-status{margin:15px 0;font-size:.65rem;color:var(--muted)}#command-results{list-style:none;max-height:40dvh;overflow-y:auto;margin-bottom:16px}#command-results a{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:12px 8px;font-size:.87rem}#command-results a:hover,#command-results a:focus{background:var(--surface)}#command-results small{display:block;font:9px/1.5 var(--mono);color:var(--muted);margin-top:6px}body.modal-open{overflow:hidden}
@media(min-width:1600px){.hero h1{font-size:5.2rem}}
@media(max-width:1150px){.section{padding:65px 36px}.header-inner{padding-inline:36px;gap:25px}#site-nav{gap:18px}.hero{gap:30px;min-height:620px}.hero h1{font-size:clamp(2.7rem,5vw,4.2rem)}.hero-copy>.eyebrow{font-size:.58rem}.signal-node{width:128px;padding:8px;font-size:.65rem}.node-0,.node-2{left:12px}.node-1,.node-3{right:12px}.about-section{gap:50px}.site-footer{padding-inline:36px}.detail-grid{grid-template-columns:1fr 280px;gap:35px}.experience-row{grid-template-columns:180px 1fr 80px;gap:25px}.experience-row>img{width:80px}.archive-section{padding-top:0}.page-heading{padding-bottom:40px}.skills-section{padding-top:0}}
@media(max-width:900px){.header-inner{gap:16px;padding:12px 24px;flex-wrap:wrap;min-height:80px}.brand{margin-right:auto}.header-tools{order:2}.js .menu-toggle{display:block!important;order:3}.header-tools .search-open{display:none!important}#site-nav{order:4;width:100%;justify-content:space-between;padding-block:8px}.js #site-nav{display:none}.js #site-nav.is-open{display:flex}.section{padding:60px 24px}.hero{grid-template-columns:1fr;gap:45px}.hero h1{font-size:clamp(3.2rem,8vw,5.2rem)}.hero-copy{max-width:700px}.hero-intro{max-width:500px}.hero-signature{margin-top:30px}.system-console{max-width:600px;width:100%;justify-self:center}.signal-node{width:155px;font-size:.75rem}.signal-panels{min-height:200px}.signal-panel>p:not(.signal-label){max-width:100%;min-height:auto}.discipline-strip{padding:20px 24px;font-size:9px;gap:15px}.featured-grid{gap:35px 25px}.featured-card:nth-child(even){margin-top:40px}.project-caption h3{font-size:1.25rem}.about-section{gap:30px;grid-template-columns:.8fr 1.2fr}.about-copy h2{font-size:2rem}.prose{font-size:.86rem}.contact-grid{gap:35px;grid-template-columns:1.2fr 1fr}.contact-grid h2{font-size:2.6rem}.site-footer{padding:35px 24px;flex-wrap:wrap;gap:20px}.site-footer>div{order:3;width:100%}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.archive-section{padding-top:0}.detail-grid{grid-template-columns:minmax(0,1fr)}.project-specs{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.project-specs section:last-of-type{grid-column:1/-1}.project-actions{flex-direction:row;flex-wrap:wrap}.project-specs>.inspect-detail{grid-column:1/-1}.experience-row{grid-template-columns:150px 1fr;gap:25px}.experience-row>img{display:none}.skills-grid{grid-template-columns:repeat(3,1fr)}.skills-section{padding-top:0}.page-heading{padding-bottom:35px}}
@media(max-width:600px){body{font-size:15px}.section{padding:45px 20px}.header-inner{padding:10px 20px;gap:14px;min-height:72px}.brand-symbol{font-size:2.15rem}.brand-text{font-size:8px;padding-left:9px}.brand{gap:11px}.header-tools{gap:0}.language-nav{padding-left:6px;margin-left:0}.language-nav a{padding-inline:5px;font-size:9px}.icon-button{min-width:36px;min-height:40px}.menu-toggle{font-size:0}.menu-toggle span{font-size:19px}.hero h1{font-size:clamp(2.5rem,9.3vw,3.6rem);line-height:1.13}.hero-copy>.eyebrow{margin-bottom:21px;font-size:.55rem}.hero-intro{font-size:.95rem;margin-top:20px}.hero-actions{gap:21px;margin-top:25px}.hero-actions .button{padding-inline:17px;gap:18px}.hero-signature{margin-top:28px}.hero{gap:35px}.signal-map{height:260px}.signal-node{width:calc(50% - 27px);max-width:150px;min-height:50px;font-size:.65rem;grid-template-columns:17px 1fr 4px;gap:4px}.node-0,.node-2{left:12px}.node-1,.node-3{right:12px}.node-0,.node-1{top:20px}.node-2,.node-3{bottom:20px}.signal-core{width:80px;height:80px}.console-top{padding:13px 14px;font-size:.52rem}.signal-panels{margin-inline:14px;min-height:218px}.console-hint{padding-inline:14px;font-size:.52rem}.signal-panel li a{font-size:.68rem}.discipline-strip{justify-content:center;font-size:8px;padding:16px 20px;gap:10px 18px}.discipline-strip span:nth-child(even){display:none}.section-heading{align-items:start;flex-direction:column;gap:18px;margin-bottom:27px}.section-heading .eyebrow{margin-bottom:12px}.section-heading p:not(.eyebrow){font-size:.86rem}.featured-grid{grid-template-columns:1fr;gap:30px}.featured-card:nth-child(even){margin-top:0}.project-caption h3{font-size:1.35rem}.project-image{aspect-ratio:1.42}.about-section{grid-template-columns:1fr;gap:35px}.about-portrait{width:70%;max-width:270px;margin:10px auto}.about-portrait img{max-height:340px}.about-copy h2{font-size:2.2rem}.prose{font-size:.9rem}.note-row{grid-template-columns:1fr 42px;gap:15px;padding:23px 0}.note-row>span{grid-column:1/-1}.note-row h3{font-size:1.4rem}.note-row .mono{font-size:.6rem}.contact-grid{grid-template-columns:1fr;gap:30px}.contact-grid h2{font-size:2.4rem}.contact-actions{max-width:100%}.email-link{font-size:1rem}.contact-section>.eyebrow{margin-bottom:22px}.site-footer{padding:30px 20px}.footer-brand{font-size:1rem;gap:18px}.site-footer>a:last-child{font-size:.7rem}.inspect-bar{padding-inline:16px;gap:12px}.inspect-bar>.mono{font-size:.5rem}.inspect-toggle{font-size:9px;gap:7px}.page-heading{padding-top:43px;padding-bottom:30px}.page-heading h1{font-size:2.8rem;overflow-wrap:break-word}.heading-count{font-size:.58rem}.page-heading>.eyebrow{margin-bottom:20px}.archive-section{padding-top:0}.filter-options{gap:12px}.filter-options label{min-width:calc(50% - 6px)}.filter-options label:nth-child(3){flex:1;min-width:55%}.filter-options button{font-size:.69rem}.search-field input{font-size:.84rem}.project-grid{grid-template-columns:1fr;gap:30px}.project-grid .project-caption h3{font-size:1.3rem}.project-grid .project-excerpt{font-size:.85rem}.archive-marker{display:none}.detail-heading h1{font-size:2.5rem;margin-bottom:25px;overflow-wrap:break-word}.detail-heading .eyebrow{font-size:.6rem}.detail-heading .eyebrow>.mono{font-size:.56rem}.back-link{margin-bottom:30px}.project-specs{grid-template-columns:1fr}.project-actions{flex-direction:column}.project-overview>p:not(.eyebrow){font-size:.9rem}.experience-list{padding-top:0}.experience-row{grid-template-columns:1fr;gap:20px;padding-block:30px}.experience-time{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:.58rem}.experience-time>span{margin:0}.experience-time p+p{margin:0}.experience-row h2{font-size:1.6rem}.experience-row ul{font-size:.85rem}.skills-grid{grid-template-columns:repeat(2,1fr)}.skills-grid li{padding:14px 11px;gap:10px;font-size:.74rem;min-height:68px}.skills-grid img{width:24px;height:24px}.skills-section{padding-top:0}dialog{padding:20px}.dialog-heading h2{font-size:1.5rem}.error-page>.text-link{margin-left:0;margin-top:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.project-link:hover .project-image img{transform:none}}
/* Hidden results must take precedence over progressive-enhancement display rules. */
.js [hidden]{display:none!important}
@media print{body{padding:0;background:white;color:black}.site-header,.site-footer,.inspect-bar,.system-console,.hero-actions,dialog,.js .js-only,.filter-bar,.load-more{display:none!important}.section{padding:24px 0}.js .project-card[hidden]{display:block!important}.project-grid,.featured-grid{display:block}.project-card,.experience-row{break-inside:avoid;margin-bottom:20px}.project-image{max-width:350px}.contact-section{background:white;color:black}.detail-grid{display:block}.project-specs{display:block}.inspect-detail{display:none!important}a{text-decoration:underline}}
