/* Revision 2: supplied documentation, explicit themes and a flow-based hero. */
:root{color-scheme:light;--surface:#f9f9f4;--sage:#e0e8d3;--soft:#e8eddf;--accent:#526f43;--dark-ink:#20372e}
:root[data-theme=dark]{color-scheme:dark;--paper:#14231e;--ink:#e7eee4;--muted:#b0bdb1;--line:#3c5145;--green:#b5cda1;--orange:#bfd59d;--surface:#1b2e25;--sage:#283d2e;--soft:#23382b;--accent:#b1ce91;--dark-ink:#13251b}
html,body{max-width:100%;overflow-x:clip}
body{background:var(--paper);color:var(--ink)}
.site-header{gap:22px}.brand{flex-shrink:0}.profile-avatar{object-fit:cover;object-position:50% 25%;border-radius:50%;border:1px solid var(--line);flex-shrink:0;width:49px;height:49px;background:#1528db;padding:0;letter-spacing:0}
.identity-mark.profile-avatar{width:76px;height:76px;object-position:50% 25%}
.header-actions{display:flex;align-items:center;gap:18px;order:3}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:30px;padding:8px 13px;font-size:11px;min-height:42px;white-space:nowrap}.theme-toggle:hover{border-color:var(--green)}#theme-icon{font-size:19px;line-height:1}.menu-toggle{padding-left:0}
.site-header nav{margin-left:auto;gap:25px}.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.primary:hover{background:var(--green);color:var(--paper)}
.hero-art{height:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:15px;margin-left:16px;padding-block:22px 6px;align-content:center}
.hero-art:before{inset:12px 0 0;border-color:var(--line);background:none}.art-coordinate{position:static;justify-self:end;font-size:8px}
.project-window{position:relative;top:auto;left:auto;width:100%;transform:none;margin:0;border-color:var(--surface);outline-color:var(--line);box-shadow:0 10px 28px #10271c15}.window-top,.window-caption{background:var(--surface);color:var(--muted)}.window-caption{font-size:10px;line-height:1.7;padding:10px 12px}
.mini-board{position:relative;bottom:auto;right:auto;transform:none;justify-self:end;width:230px;display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 12px;align-items:center;padding:14px;background:var(--sage);border-color:var(--line)}.mini-board:hover{transform:translateY(-3px)}.mini-board-top{grid-column:1/-1;font-size:7px}.mini-circuit{transform:scale(.48);transform-origin:left center;width:180px;height:70px;margin-block:-10px}.mini-board-bottom{min-width:0}.mini-board-bottom strong{font-size:15px}.mini-board-bottom>span{font-size:9px;color:var(--muted);line-height:1.7}.art-note{position:static;transform:none;font:500 11px/1.6 var(--sans);color:var(--muted);max-width:none;justify-self:start;left:auto;bottom:auto;margin:0}
.featured-project,.project-card,.award-card{background:var(--surface)}.featured-visual{background:var(--sage)}.project-brand{display:flex;align-items:center;gap:10px}.project-brand>img{width:42px;height:42px;object-fit:contain;border-radius:10px}.project-brand>span{font:inherit}.screenshot-frame{background:var(--surface);border-color:var(--line)}.screenshot-action,.achievement-note{color:var(--green)}.strip-items>span{color:var(--muted)}.pill{border-color:var(--line)}.amber{color:#936529;border-color:#bba17b}.role-block{border-color:var(--accent)}
.project-documentation{margin-top:35px;padding:28px;border:1px solid var(--line);background:var(--surface)}.documentation-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:23px}.documentation-heading h3{font-size:25px;margin-top:10px;letter-spacing:-.8px}.documentation-heading>p{font-size:11px;max-width:190px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}.gallery-card{margin:0;min-width:0}.image-zoom{display:block;width:100%;padding:0;background:var(--soft);border:1px solid var(--line);text-align:left;color:var(--ink);overflow:hidden}.image-zoom>img{width:100%;height:auto;object-fit:contain}.image-zoom>span{display:block;padding:8px 12px;font-size:10px;border-top:1px solid var(--line)}.image-zoom:hover{border-color:var(--green)}.gallery-card figcaption{padding-top:13px}.gallery-card .tiny-label{font-size:8px}.gallery-card h4{font:600 16px/1.5 var(--sans);letter-spacing:-.3px;margin:5px 0}.gallery-card p{font-size:12px;line-height:1.8}.documentation-note{font-size:11px;line-height:1.9;border-top:1px solid var(--line);padding-top:18px;margin-top:25px}
.project-preview{display:block;width:calc(100% - 48px);margin:0 24px;padding:0;border:1px solid var(--line);background:var(--soft);text-align:left}.project-preview img{width:100%;height:188px;object-fit:contain;background:#fff7ec}.project-preview>span{display:block;font-size:9px;padding:9px 12px;color:var(--muted)}.card-links{display:flex;flex-wrap:wrap;gap:16px 22px}.lamp-demo{background:var(--soft)}.diagram-label{color:var(--muted)}.lamp-switch>span{background:#80917c}.lamp-switch input:checked+span{background:#4d7545}.cv-link{margin-top:15px}
.event-documentation{margin:30px 0 0;display:grid;grid-template-columns:minmax(180px,280px) minmax(0,1fr);align-items:center;gap:40px;padding:28px;border:1px solid var(--line);background:var(--surface)}.event-documentation .image-zoom>img{max-height:340px;object-fit:contain;background:#0f1b16}.event-documentation h3{font-size:29px;margin-top:12px}.event-documentation p{font-size:13px;line-height:1.9;max-width:550px;margin-top:16px}.event-documentation .text-link{margin-top:24px}
.contact-section{background:var(--sage)}.contact-main p{color:var(--muted)}.email-row{border-color:var(--line)}.email-row>button{border-color:var(--line)}.contact-actions{flex-wrap:wrap}
.button.secondary:hover{background:var(--soft);border-color:var(--accent)}
.lab-controls{background:var(--surface);color:var(--ink)}.sensor-readout{background:var(--soft);border-color:var(--line)}.adc-row{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:10px;color:var(--muted)}.adc-row strong{white-space:nowrap;font-size:11px;color:var(--ink);font-weight:600}.cycle-phase{display:block;min-height:20px;font-size:10px;margin-top:6px;color:var(--muted)}.light-presets button{border-color:var(--line);color:var(--ink)}.light-presets button:hover,.light-presets button[aria-pressed=true]{background:var(--sage);border-color:var(--accent)}.simulation-note,.sound-help{color:var(--muted)}.code-button{color:var(--ink);border-color:var(--line)}.code-button:hover{background:var(--soft)}.sound-toggle[data-audio-state=muted]{color:var(--ink);border-color:var(--accent)}.sensor-readout .buzzer-status strong{font-size:25px}.is-dark .sensor-readout{background:#ebddc3;border-color:#c4a477;color:#273a28}.is-dark .sensor-readout p,.is-dark .sensor-readout .tiny-label,.is-dark .cycle-phase,.is-dark .adc-row{color:#556045}.is-dark .adc-row strong{color:#273a28}.is-dark .sound-bars i{animation:none;background:#9e7d40}.is-dark.is-beeping .sound-bars i{animation:bars .45s ease-in-out infinite alternate}.is-dark.is-beeping .sound-bars i:nth-child(2){animation-delay:-.2s}.is-dark.is-beeping .sound-bars i:nth-child(3){animation-delay:-.1s}.is-dark.is-beeping .sound-bars i:nth-child(4){animation-delay:-.3s}.is-dark .buzzer-status .status-dot{background:#a98237}
#dialog-content .detail-note{background:var(--soft);border-color:var(--accent)}#dialog-content .image-zoom>img{margin:0;border:0}#dialog-content figure{margin-block:20px}#dialog-content figcaption{font-size:11px;line-height:1.8;margin-top:8px}#dialog-content .image-zoom>img[src$="oscar-event.webp"]{max-height:620px}.detail-brand{display:flex;align-items:center;gap:16px;margin-bottom:18px}#dialog-content .detail-brand img{margin:0;border:0;width:64px;height:64px;object-fit:contain;border-radius:12px}#dialog-content .detail-brand h2{margin:0}.source-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.source-actions .button{font-size:12px;padding:10px 16px}.copy-code-status{font-size:11px;min-height:22px;margin-top:8px}#dialog-content pre{margin-top:10px;border:1px solid #506644;border-radius:4px;tab-size:2;max-height:56dvh;font:12px/1.8 Consolas,monospace;background:#12261d;color:#e1efd7}#dialog-content code{overflow-wrap:anywhere}.learning-link{display:flex;align-items:center;gap:18px;border:1px solid var(--line);background:var(--soft);padding:19px;margin-top:25px}.video-play{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:var(--ink);color:var(--paper)}.learning-link strong{display:block;font-size:13px}.learning-link small{display:block;font-size:11px;color:var(--muted);margin-top:6px}
#image-dialog{width:min(1300px,calc(100vw - 24px));max-height:94dvh}#image-dialog figure{margin:0;padding:20px}#expanded-image{max-height:72dvh;width:100%;height:auto;object-fit:contain}#image-caption{font-size:12px;line-height:1.8;color:var(--muted);margin-top:15px}.noscript-message{background:var(--soft);color:var(--ink)}
:root[data-theme=dark] .award-image{background:var(--soft);border-color:var(--line)}:root[data-theme=dark] .award-image>span{color:var(--muted)}:root[data-theme=dark] .award-copy h3 small{color:var(--muted)}:root[data-theme=dark] footer{color:var(--muted)}:root[data-theme=dark] .contact-help{color:var(--muted)}:root[data-theme=dark] .sound-toggle{background:#b6cc9c;color:#1d3322;border-color:#b6cc9c}:root[data-theme=dark] .sound-toggle[data-audio-state=muted]{background:transparent;color:var(--ink)}:root[data-theme=dark] .sound-toggle:hover{background:#cedfba;color:#1d3322}:root[data-theme=dark] .sound-toggle[data-audio-state=unavailable]{background:#ebddc3;color:#4e452f}:root[data-theme=dark] .control-icon{color:var(--green)}:root[data-theme=dark] input[type=range]{accent-color:#b6cc9c}
@media(max-width:1100px){.site-header{gap:16px}.site-header nav{gap:18px;font-size:11px}.nav-contact{margin-left:0}.nav-contact span{margin-left:5px}.header-actions{gap:12px}.theme-toggle{padding:8px 10px}.theme-toggle #theme-label{display:none}}
@media(max-width:850px){.site-header{gap:12px}.site-header nav{gap:14px;font-size:10px}.hero{gap:25px}.hero-art{margin-left:0}.mini-board{width:200px;grid-template-columns:75px minmax(0,1fr);gap:6px;padding:12px}.mini-circuit{transform:scale(.4)}.mini-board-bottom strong{font-size:13px}.mini-board-bottom>span{font-size:8px}.gallery-grid{gap:25px 18px}.project-documentation{padding:24px}.event-documentation{grid-template-columns:220px minmax(0,1fr);gap:28px}.event-documentation h3{font-size:26px}.project-preview{width:calc(100% - 32px);margin-inline:16px}.project-preview img{height:150px}.project-brand{gap:8px}.project-brand>img{width:35px;height:35px}.simulation-note{padding-top:75px}.adc-row{flex-wrap:wrap;gap:2px}.sensor-readout .buzzer-status strong{font-size:23px}}
@media(max-width:700px) and (min-width:621px){.site-header{padding-inline:18px}.brand{font-size:11px;gap:8px}.brand-sub{font-size:7px;letter-spacing:1px}.profile-avatar{width:40px;height:40px}.site-header nav{gap:10px;font-size:10px}.nav-contact span{display:none}}
@media(max-width:620px){.site-header{height:78px;padding-inline:20px;gap:10px}.brand{gap:10px;font-size:12px}.profile-avatar{width:43px;height:43px}.brand-sub{font-size:7px;letter-spacing:1.4px}.header-actions{gap:12px;margin-left:auto}.theme-toggle{width:38px;min-height:38px;padding:6px}.site-header nav{margin-left:0}.menu-toggle{gap:6px;font-size:11px}.menu-toggle>span{font-size:20px}.hero-art{display:grid;grid-template-columns:minmax(0,1fr);height:auto;max-width:100%;gap:16px;padding-block:0;margin:0;width:100%}.hero-art:before{display:none}.art-coordinate{position:static;font-size:7px;margin-top:8px}.project-window{position:relative;top:auto;left:auto;width:100%;border-width:4px;transform:none}.window-caption{font-size:10px;line-height:1.8;padding:10px}.window-top{font-size:7px;padding:9px}.mini-board{position:relative;bottom:auto;right:auto;transform:none;width:100%;justify-self:stretch;padding:13px 18px;grid-template-columns:100px minmax(0,1fr);gap:6px 14px}.mini-board-top{font-size:7px;letter-spacing:.7px}.mini-circuit{height:76px;transform:scale(.51);margin-block:-8px}.mini-board-bottom strong{font-size:16px}.mini-board-bottom>span{font-size:10px}.art-note{position:static;max-width:none;font-size:11px;line-height:1.8;margin:0;left:auto;bottom:auto}.project-documentation{padding:20px;margin-top:20px}.documentation-heading{display:block;margin-bottom:21px}.documentation-heading h3{font-size:23px}.documentation-heading>p{margin-top:11px;max-width:none}.gallery-grid{grid-template-columns:minmax(0,1fr);gap:27px}.gallery-card h4{font-size:16px}.gallery-card p{font-size:12px}.gallery-card .tiny-label{font-size:9px}.documentation-note{font-size:11px}.project-brand{font-size:27px;gap:9px}.project-brand>img{width:35px;height:35px}.project-preview{width:calc(100% - 40px);margin-inline:20px}.project-preview img{height:auto}.project-preview>span{font-size:9px;line-height:1.7}.identity-mark.profile-avatar{width:70px;height:70px}.event-documentation{grid-template-columns:minmax(0,1fr);padding:22px;gap:25px}.event-documentation .image-zoom{max-width:280px;margin:auto}.event-documentation .image-zoom>img{max-height:380px}.event-documentation h3{font-size:27px}.event-documentation p{font-size:12px}.source-actions .button{font-size:11px}.simulation-note{padding:0}.adc-row{flex-wrap:nowrap;gap:10px;font-size:10px}.cycle-phase{font-size:11px}.sensor-readout .buzzer-status strong{font-size:27px}.detail-brand{gap:12px}#dialog-content .detail-brand img{width:50px;height:50px}#dialog-content .detail-brand h2{font-size:30px}.learning-link{padding:15px;gap:12px}.learning-link strong{font-size:12px}.learning-link small{font-size:10px}#dialog-content pre{font-size:11px;padding:14px}#image-dialog figure{padding:14px}#image-caption{font-size:11px}.contact-actions .button{gap:14px}}
@media(max-width:360px){.site-header{padding-inline:15px}.brand{font-size:11px;gap:8px}.brand-sub{font-size:6px}.profile-avatar{width:38px;height:38px}.header-actions{gap:8px}.menu-toggle{font-size:10px;gap:3px}.theme-toggle{width:34px;min-height:36px}.feature-bottom{align-items:start;gap:10px;flex-wrap:wrap}.feature-small{font-size:8px;text-align:left;letter-spacing:.3px}.project-brand{font-size:27px}.adc-row{flex-wrap:wrap;gap:4px}.mini-board{grid-template-columns:85px minmax(0,1fr);padding:12px}.mini-circuit{transform:scale(.44)}}
@media(prefers-reduced-motion:reduce){.is-dark.is-beeping .sound-bars i{animation:none!important}.hero-art .mini-board:hover{transform:none}}
