/* Shared homepage additions */
.portfolio-addition-section{padding:80px 0}.addition-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:32px}.addition-heading .section-title{text-align:left;margin-bottom:10px}.addition-heading p,.addition-intro{color:var(--text-muted)}.addition-kicker,.certification-issuer{color:var(--accent-teal);font:600 .75rem 'Fira Code',monospace;letter-spacing:.1em;text-transform:uppercase}.addition-grid{margin-top:28px}.addition-card{cursor:default;overflow:hidden}.addition-card img{width:100%;height:180px;object-fit:cover;border-radius:8px;margin-bottom:18px}.addition-empty{color:var(--text-muted);padding:28px;border:1px dashed var(--accent-navy);border-radius:10px}.certifications-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}.certification-card{display:grid;grid-template-columns:42% 1fr;overflow:hidden;background:var(--bg-card);border:1px solid var(--accent-navy);border-radius:12px}.certification-image-link{min-height:240px;background:var(--input-bg)}.certification-image-link img{width:100%;height:100%;object-fit:cover;display:block}.certification-body{padding:24px;display:flex;flex-direction:column;align-items:flex-start}.certification-body h3{margin:8px 0 12px;font-size:1.05rem}.certification-body p{color:var(--text-muted);font-size:.88rem}.credential-id{margin-top:8px;font-size:.75rem!important;word-break:break-word}.certification-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:auto;padding-top:20px}

/* Hardware portfolio */
.hardware-page{--hw-line:color-mix(in srgb,var(--accent-teal) 28%,transparent);--hw-soft:color-mix(in srgb,var(--accent-teal) 10%,transparent);--hw-ink:var(--text-main);--hw-board:color-mix(in srgb,var(--accent-teal) 8%,var(--bg-page));--hw-chip:color-mix(in srgb,var(--accent-teal) 16%,var(--bg-card));--hw-panel:var(--bg-card);--hw-hero-wash:color-mix(in srgb,var(--bg-page) 82%,transparent);--hw-status-bg:color-mix(in srgb,black 22%,var(--bg-page));overflow:hidden}.hardware-page section{padding:0}.hardware-page .container{max-width:1180px}.hardware-hero{position:relative;padding:96px 0 92px!important;border-bottom:1px solid var(--hw-line);background:radial-gradient(circle at 82% 28%,color-mix(in srgb,var(--accent-teal) 14%,transparent),transparent 31%),linear-gradient(180deg,var(--hw-hero-wash),transparent)}.hardware-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);align-items:center;gap:80px}.hardware-status{display:inline-flex;align-items:center;gap:9px;color:var(--accent-teal);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.hardware-status span{width:7px;height:7px;border-radius:50%;background:var(--accent-teal);box-shadow:0 0 12px var(--accent-teal);animation:hw-pulse 2s ease-in-out infinite}@keyframes hw-pulse{50%{opacity:.35}}.hardware-hero h1{font-size:clamp(3.15rem,6.3vw,5.8rem);line-height:1.01;letter-spacing:-.055em;margin:20px 0 25px;max-width:750px}.hardware-hero h1 em{color:var(--accent-teal);font-style:normal}.hardware-hero-copy>p{max-width:610px;color:var(--text-muted);font-size:1.12rem;line-height:1.75}.hardware-hero-actions{display:flex;align-items:center;gap:28px;margin-top:36px}.hardware-text-link{color:var(--accent-teal);font-size:.8rem;font-weight:600;transition:opacity .2s}.hardware-text-link:hover{opacity:.68}
.circuit-board{position:relative;aspect-ratio:1.25;border:1px solid rgba(78,205,196,.42);border-radius:18px;overflow:hidden;background:var(--hw-board);box-shadow:0 30px 80px rgba(0,0,0,.28),inset 0 0 70px rgba(78,205,196,.05);transform:perspective(900px) rotateY(-7deg) rotateX(3deg)}.circuit-grid{position:absolute;inset:0;opacity:.14;background-image:linear-gradient(var(--accent-teal) 1px,transparent 1px),linear-gradient(90deg,var(--accent-teal) 1px,transparent 1px);background-size:24px 24px}.board-chip{position:absolute;left:35%;top:30%;width:31%;height:40%;border:2px solid var(--accent-teal);border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--hw-chip);box-shadow:0 0 28px rgba(78,205,196,.22);font:600 .8rem 'Fira Code',monospace;color:var(--hw-ink);letter-spacing:.18em}.board-chip:before,.board-chip:after{content:"";position:absolute;left:-14px;right:-14px;height:8px;border-left:8px dotted var(--accent-teal);border-right:8px dotted var(--accent-teal)}.board-chip:before{top:13px}.board-chip:after{bottom:13px}.board-chip small{color:var(--accent-teal);font-size:.55rem;margin-top:8px}.trace{position:absolute;border-color:var(--accent-teal);border-style:solid;opacity:.6}.trace-a{left:7%;top:38%;width:28%;height:19%;border-width:2px 0 0 2px}.trace-b{right:7%;bottom:24%;width:35%;height:27%;border-width:0 2px 2px 0}.trace-c{left:20%;bottom:10%;width:30%;height:20%;border-width:0 0 2px 2px}.board-node{position:absolute;width:11px;height:11px;border:2px solid var(--accent-teal);border-radius:50%;background:var(--hw-board);box-shadow:0 0 10px rgba(78,205,196,.6)}.node-a{left:6%;top:36.5%}.node-b{right:5.5%;bottom:22.5%}.node-c{left:18.7%;bottom:8.5%}.node-d{right:15%;top:16%}.board-label{position:absolute;color:var(--text-muted);font-size:.55rem}.label-a{left:8%;top:29%}.label-b{right:8%;bottom:17%}.label-c{left:21%;bottom:4%}
.hardware-capabilities,.hardware-work{padding:96px 0!important}.hardware-capabilities{background:color-mix(in srgb,var(--accent-teal) 4%,transparent);border-top:1px solid var(--hw-line);border-bottom:0}.hardware-section-heading{display:grid;grid-template-columns:1fr minmax(280px,430px);align-items:end;gap:40px;margin-bottom:45px}.section-index{display:block;color:var(--accent-teal);font-size:.68rem;letter-spacing:.14em;margin-bottom:12px}.hardware-section-heading h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;letter-spacing:-.035em}.hardware-section-heading>p{color:var(--text-muted);line-height:1.7}.hardware-skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--hw-line);border-radius:14px;overflow:hidden;background:var(--bg-card)}.hardware-skill-group{position:relative;min-height:230px;padding:28px;border-right:1px solid var(--hw-line)}.hardware-skill-group:last-child{border-right:0}.skill-number{position:absolute;right:22px;top:20px;color:rgba(78,205,196,.35);font-size:.7rem}.hardware-skill-group h3{font-size:1rem;max-width:150px;margin-bottom:24px;color:var(--hw-ink)}.hardware-skill-group li{display:flex;align-items:center;gap:9px;list-style:none;color:var(--text-muted);font-size:.88rem;margin-top:10px}.hardware-skill-group li span{width:4px;height:4px;border-radius:50%;background:var(--accent-teal)}.capability-placeholder{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--hw-line);border-radius:14px;overflow:hidden;background:var(--bg-card)}.capability-placeholder span{padding:32px 22px;text-align:center;color:var(--text-muted);font-size:.73rem;letter-spacing:.08em;border-right:1px solid var(--hw-line)}.capability-placeholder span:last-child{border-right:0}
.hardware-project-list{display:grid;gap:60px}.hardware-project{padding:0;border:1px solid var(--hw-line);border-radius:18px;overflow:hidden;background:var(--bg-card);box-shadow:0 25px 65px rgba(0,0,0,.12)}.hardware-project-header{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;border-bottom:1px solid var(--hw-line);background:rgba(78,205,196,.035)}.project-number{color:var(--text-muted);font-size:.66rem;letter-spacing:.14em}.project-availability{display:flex;gap:8px}.project-pill{padding:5px 9px;border:1px solid var(--accent-navy);border-radius:20px;color:var(--text-muted);font-size:.58rem;letter-spacing:.08em}.project-pill-live{border-color:rgba(78,205,196,.38);color:var(--accent-teal)}.hardware-project-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);min-height:450px}.hardware-project-media{position:relative;min-width:0;border-right:1px solid var(--hw-line);background:var(--hw-board)}.hardware-cover,.hardware-project-media>a{display:block;width:100%;height:100%}.hardware-cover{min-height:450px;object-fit:cover}.hardware-viewer{position:relative;width:100%;height:100%;min-height:450px;overflow:hidden;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--accent-teal) 16%,transparent),var(--hw-board) 65%)}.hardware-viewer canvas{display:block;width:100%;height:100%}.hardware-viewer-status{position:absolute;left:18px;bottom:16px;padding:7px 10px;border-radius:5px;background:var(--hw-status-bg);color:var(--text-muted);font:600 .65rem 'Fira Code',monospace;pointer-events:none}.hardware-media-placeholder{display:flex;height:100%;min-height:450px;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:rgba(78,205,196,.48);background-image:linear-gradient(rgba(78,205,196,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(78,205,196,.035) 1px,transparent 1px);background-size:28px 28px}.hardware-media-placeholder svg{width:120px;fill:none;stroke:currentColor;stroke-width:2}.hardware-media-placeholder span{font-size:.65rem;letter-spacing:.12em}.hardware-project-story{display:flex;flex-direction:column;padding:46px 42px}.hardware-project-story h3{font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:18px}.project-summary{color:var(--text-muted);font-size:1.02rem;line-height:1.75}.project-specs{margin-top:28px;border-top:1px solid var(--hw-line)}.project-specs>div{display:grid;grid-template-columns:105px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid var(--hw-line)}.project-specs dt{color:var(--accent-teal);font:600 .66rem 'Fira Code',monospace;text-transform:uppercase;letter-spacing:.07em}.project-specs dd{color:var(--text-muted);font-size:.82rem;line-height:1.55}.hardware-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:auto;padding-top:30px}.wokwi-simulation{padding:34px!important;border-top:1px solid var(--hw-line);background:var(--hw-panel)}.wokwi-simulation-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:22px}.wokwi-simulation-heading h4{font-size:1.5rem;margin-bottom:5px}.wokwi-simulation-heading p{color:var(--text-muted);font-size:.9rem}.wokwi-frame-shell{height:clamp(420px,52vh,560px);margin-top:20px;overflow:hidden;border:1px solid var(--hw-line);border-radius:10px;background:var(--hw-board)}.wokwi-frame-shell iframe{display:block;width:100%;height:100%;border:0}.wokwi-external{margin:0 34px 34px}.hardware-empty{padding:70px;border:1px dashed var(--accent-navy);border-radius:16px;text-align:center}.hardware-empty span{color:var(--accent-teal);font-size:.7rem}.hardware-empty h3{font-size:1.8rem;margin:12px 0}.hardware-empty p{color:var(--text-muted)}
.hardware-cta{padding:90px 0!important;border-top:1px solid var(--hw-line);text-align:center;background:radial-gradient(circle at 50% 100%,rgba(78,205,196,.1),transparent 48%)}.hardware-cta h2{max-width:750px;margin:10px auto 28px;font-size:clamp(2rem,5vw,3.7rem);line-height:1.15;letter-spacing:-.04em}
@media(max-width:950px){.hardware-hero-grid{grid-template-columns:1fr;gap:55px}.circuit-board{max-width:620px;width:100%;transform:none}.hardware-skills{grid-template-columns:repeat(2,1fr)}.hardware-skill-group:nth-child(2){border-right:0}.hardware-skill-group:nth-child(-n+2){border-bottom:1px solid var(--hw-line)}.hardware-project-grid{grid-template-columns:1fr}.hardware-project-media{border-right:0;border-bottom:1px solid var(--hw-line)}.hardware-project-story{min-height:390px}}
@media(max-width:680px){.hardware-hero{padding:72px 0 65px!important}.hardware-hero-grid{gap:42px}.hardware-hero h1{font-size:clamp(2.8rem,14vw,4rem)}.hardware-hero-actions,.wokwi-simulation-heading{align-items:flex-start;flex-direction:column}.circuit-board{border-radius:12px}.hardware-capabilities,.hardware-work{padding:72px 0!important}.hardware-section-heading{grid-template-columns:1fr;gap:18px}.hardware-section-heading>p{font-size:.92rem}.hardware-skills,.capability-placeholder{grid-template-columns:1fr}.hardware-skill-group,.capability-placeholder span{min-height:auto;border-right:0!important;border-bottom:1px solid var(--hw-line)}.hardware-skill-group:last-child,.capability-placeholder span:last-child{border-bottom:0}.hardware-project-list{gap:36px}.hardware-project-header{align-items:flex-start;gap:10px}.project-availability{justify-content:flex-end;flex-wrap:wrap}.hardware-viewer,.hardware-cover,.hardware-media-placeholder{min-height:310px}.hardware-project-story{min-height:0;padding:32px 24px}.project-specs>div{grid-template-columns:1fr;gap:5px}.wokwi-simulation{padding:24px 14px 14px!important}.wokwi-frame-shell{height:640px;border-radius:7px}.hardware-empty{padding:48px 20px}.certifications-grid{grid-template-columns:1fr}.certification-card{grid-template-columns:1fr}.addition-heading{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.hardware-status span{animation:none}.circuit-board{transform:none}}

/* Compact credential gallery and detail modal */
.certifications-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px;
    margin-top:34px;
}
.certification-card{
    display:flex;
    min-width:0;
    padding:0;
    flex-direction:column;
    overflow:hidden;
    color:var(--text-main);
    text-align:left;
    background:transparent;
    border:0;
    border-radius:10px;
    font:inherit;
    transition:transform .25s ease,color .25s ease;
}
.certification-card:is(:hover,:focus-visible){transform:translateY(-5px);color:var(--accent-teal)}
.certification-card:focus-visible{outline:2px solid var(--accent-teal);outline-offset:5px}
.certification-image-link{
    display:block;
    width:100%;
    min-height:0;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--input-bg);
    border:1px solid var(--accent-navy);
    border-radius:9px;
}
.certification-image-link img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s ease}
.certification-card:is(:hover,:focus-visible) .certification-image-link img{transform:scale(1.035)}
.certification-card-title{display:block;margin-top:13px;font-family:'Fira Code',monospace;font-size:.9rem;font-weight:600;line-height:1.35}
.certification-card-issuer{display:block;margin-top:5px;color:var(--text-muted);font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}
.certification-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-height:none;
    padding:20px;
    color:var(--text-main);
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(6px);
    opacity:0;
    visibility:hidden;
    transition:opacity .3s,visibility .3s;
}
.certification-modal.open{opacity:1;visibility:visible}
.certification-modal-panel{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);width:min(1080px,100%);max-height:min(90vh,900px);overflow:auto;background:var(--bg-card);border:1px solid var(--preview-line,rgba(78,205,196,.2));border-radius:12px;box-shadow:0 28px 85px rgba(0,0,0,.48);transform:scale(.92) translateY(16px);transition:transform .3s}
.certification-modal.open .certification-modal-panel{transform:scale(1) translateY(0)}
.certification-modal-close{position:absolute;z-index:2;right:18px;top:18px;display:grid;width:38px;height:38px;place-items:center;color:var(--text-muted);background:var(--bg-page);border:1px solid var(--preview-line,rgba(78,205,196,.2));border-radius:8px;font-size:1.5rem;line-height:1;transition:color .2s ease,border-color .2s ease,background-color .2s ease}
.certification-modal-close:is(:hover,:focus-visible){color:var(--accent-teal);border-color:var(--accent-teal)}
.certification-modal-close:focus-visible{outline:2px solid var(--accent-teal);outline-offset:3px}
.certification-modal-image{display:flex;min-height:500px;align-items:center;justify-content:center;padding:36px;background:color-mix(in srgb,var(--bg-page) 85%,var(--bg-card));border-right:1px solid var(--preview-line,rgba(78,205,196,.2))}
.certification-modal-image img{display:block;width:100%;max-height:72vh;object-fit:contain;border-radius:5px;box-shadow:0 16px 42px rgba(0,0,0,.23)}
.certification-modal-details{display:flex;min-width:0;padding:50px 36px 36px;flex-direction:column;align-items:flex-start}
.certification-kicker{color:var(--accent-teal);font:500 .67rem/1.6 'Fira Code',monospace;letter-spacing:.13em}
.certification-modal-details .certification-issuer{margin-top:25px;font-size:.68rem}
.certification-modal-details h3{margin:8px 0 18px;font-family:'Nunito',sans-serif;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;letter-spacing:-.04em;overflow-wrap:anywhere}
.certification-description{color:var(--text-muted);font-size:.94rem;line-height:1.65}
.certification-meta{width:100%;margin:28px 0;border-top:1px solid var(--preview-line,rgba(78,205,196,.2))}
.certification-meta>div{display:grid;grid-template-columns:95px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid var(--preview-line,rgba(78,205,196,.2))}
.certification-meta dt{color:var(--accent-teal);font:500 .66rem 'Fira Code',monospace;text-transform:uppercase}
.certification-meta dd{color:var(--text-muted);font-size:.85rem;overflow-wrap:anywhere}
.certification-modal-details .btn{display:inline-flex;margin-top:auto;align-items:center;min-height:42px;padding:10px 16px;border:1px solid var(--accent-teal);border-radius:6px;background:transparent;color:var(--accent-teal);font:.8rem 'Nunito',sans-serif;font-weight:700;box-shadow:none}
.certification-modal-details .btn:is(:hover,:focus-visible){background:var(--accent-teal);color:var(--bg-page);filter:none}
@media(max-width:900px){.certifications-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.certification-modal-panel{grid-template-columns:minmax(0,1fr) minmax(290px,.8fr)}.certification-modal-image{min-height:420px;padding:22px}.certification-modal-details{padding:42px 25px 26px}}
@media(max-width:760px){.certification-modal-panel{grid-template-columns:1fr}.certification-modal-image{min-height:0;padding:24px;border-right:0;border-bottom:1px solid var(--preview-line,rgba(78,205,196,.2))}.certification-modal-image img{max-height:42vh}.certification-modal-details{padding:28px}.certification-modal-details .certification-issuer{margin-top:18px}}
@media(max-width:620px){.certifications-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.certification-card-title{font-size:.78rem}.certification-modal{padding:10px}.certification-modal-panel{max-height:calc(100dvh - 20px)}.certification-modal-image{padding:14px}.certification-modal-details{padding:24px 20px}.certification-meta>div{grid-template-columns:1fr;gap:4px}.certification-modal-close{right:12px;top:12px}}

/* Make actual hardware controls discoverable without marking static project panels clickable. */
body:has(.hardware-page) *{cursor:auto!important}
body:has(.hardware-page) :is(a,button,summary),body:has(.hardware-page) :is(a,button,summary) *{cursor:pointer!important}
body:has(.hardware-page) .hardware-viewer canvas{cursor:grab!important}
body:has(.hardware-page) .hardware-viewer canvas:active{cursor:grabbing!important}
body:has(.hardware-page) .cursor-trail{display:none}
.hardware-project-media>a{overflow:hidden}
.hardware-project-media>a img{transition:transform .25s ease,filter .25s ease}
.hardware-project-media>a:is(:hover,:focus-visible) img{transform:scale(1.02);filter:brightness(1.08)}
.hardware-page :is(a,button):focus-visible{outline:2px solid var(--accent-teal);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.hardware-project-media>a img,.certification-modal,.certification-modal-panel{transition:none}}

/* Deterministic project/experience media viewer */
.media-lightbox{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:28px;background:rgba(3,7,10,.94);backdrop-filter:blur(6px)}
.media-lightbox.open{display:flex}
.media-lightbox-content{display:flex;width:min(1180px,calc(100vw - 150px));height:min(850px,calc(100vh - 80px));min-width:0;flex-direction:column}
.media-lightbox-stage{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;overflow:hidden}
.media-lightbox-stage img,.media-lightbox-stage video{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:5px}
.media-lightbox-meta{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:20px;padding-top:13px;color:#dceae8;font-size:.86rem}
#media-lightbox-counter{flex:none;color:var(--accent-teal);font-size:.72rem}
.media-lightbox-close,.media-lightbox-nav{position:absolute;color:#fff;background:rgba(13,25,33,.78);border:1px solid rgba(78,205,196,.4);transition:background .2s,border-color .2s}
.media-lightbox-close{right:22px;top:18px;width:44px;height:44px;border-radius:50%;font-size:2rem;line-height:1}
.media-lightbox-nav{top:50%;width:48px;height:64px;border-radius:8px;font-size:2.5rem;line-height:1;transform:translateY(-50%)}
.media-lightbox-prev{left:22px}.media-lightbox-next{right:22px}.media-lightbox-close:hover,.media-lightbox-nav:hover{background:var(--accent-teal);border-color:var(--accent-teal);color:#071012}
@media(max-width:680px){.media-lightbox{padding:60px 12px 20px}.media-lightbox-content{width:100%;height:100%}.media-lightbox-close{right:12px;top:10px}.media-lightbox-nav{top:auto;bottom:16px;width:44px;height:44px;border-radius:50%;font-size:2rem;transform:none}.media-lightbox-prev{left:12px}.media-lightbox-next{right:12px}.media-lightbox-meta{padding:10px 55px 0;align-items:flex-start;font-size:.75rem}}

/* Hardware mode chrome, featured cards, viewer controls, light theme */
html:has(.hardware-page){--preview-line:color-mix(in srgb,var(--text-muted) 18%,transparent)}
body:has(.hardware-page){--bg-page:#101c24;--bg-card:#15242d;--text-main:#edf3ef;--text-muted:#a3b8bb;--accent-teal:#8ee2c0}
html[data-theme="light"] body:has(.hardware-page){--bg-page:#f6f7f2;--bg-card:#fff;--text-main:#172f32;--text-muted:#52696a;--accent-teal:#226a53}
html[data-theme="light"] .hardware-page{
    --hw-line:color-mix(in srgb,var(--accent-teal) 22%,transparent);
    --hw-board:color-mix(in srgb,var(--bg-card) 86%,var(--accent-teal));
    --hw-chip:color-mix(in srgb,var(--accent-teal) 12%,var(--bg-card));
    --hw-panel:var(--bg-page);
    --hw-status-bg:color-mix(in srgb,var(--bg-card) 88%,var(--text-main));
}
body:has(.hardware-page) header{background:var(--bg-page);border-color:var(--preview-line)}
body:has(.hardware-page) .container{max-width:1180px}
body:has(.hardware-page) .logo{text-shadow:none;font-size:1rem;letter-spacing:-.04em}
body:has(.hardware-page) .nav-links{gap:20px}
body:has(.hardware-page) .nav-links a{font-family:'Nunito',sans-serif;font-size:.82rem;color:var(--text-muted)}
body:has(.hardware-page) .btn{background:var(--accent-teal);border:1px solid var(--accent-teal);color:var(--bg-page);box-shadow:none;border-radius:6px;font:700 .88rem 'Nunito',sans-serif;padding:14px 22px;transform:none}
body:has(.hardware-page) .btn:hover{filter:brightness(1.08);box-shadow:none}
body:has(.hardware-page) .quiet-link:is(:hover,:focus-visible){color:var(--accent-teal)}
body:has(.hardware-page) section[id],body:has(.hardware-page) footer[id]{scroll-margin-top:90px}
body:has(.hardware-page) .refined-contact .quiet-link{color:var(--text-main)}
.hardware-project-list{gap:36px}
.hardware-project:not(.is-featured){box-shadow:none}
.hardware-project:not(.is-featured) .hardware-project-grid{min-height:0;grid-template-columns:minmax(0,.85fr) minmax(280px,1.15fr)}
.hardware-project:not(.is-featured) .hardware-viewer,
.hardware-project:not(.is-featured) .hardware-cover,
.hardware-project:not(.is-featured) .hardware-media-placeholder{min-height:240px}
.hardware-project:not(.is-featured) .hardware-project-story{padding:28px}
.hardware-project:not(.is-featured) .hardware-project-story h3{font-size:clamp(1.35rem,2.2vw,1.8rem);margin-bottom:12px}
.hardware-project:not(.is-featured) .wokwi-simulation{padding:22px 24px!important}
.hardware-project:not(.is-featured) .wokwi-frame-shell{height:400px}
.hardware-project-media.has-viewer .hardware-viewer-poster{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:inherit;object-fit:cover}
.hardware-project-media.has-viewer .hardware-viewer{z-index:2;background:transparent}
.hardware-viewer:not(.is-loaded) canvas{opacity:0}
.hardware-viewer.is-loaded{background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--accent-teal) 16%,transparent),var(--hw-board) 65%)}
.hardware-viewer-poster[hidden]{display:none}
.hardware-viewer-controls{position:absolute;right:14px;top:14px;z-index:3;display:flex;gap:8px}
.hardware-viewer-control{padding:7px 10px;border:1px solid var(--hw-line);border-radius:6px;background:color-mix(in srgb,var(--bg-page) 82%,transparent);color:var(--text-main);font:600 .65rem 'Fira Code',monospace}
.hardware-viewer-control:is(:hover,:focus-visible),.hardware-viewer-control[aria-pressed="true"]{border-color:var(--accent-teal);color:var(--accent-teal)}
.wokwi-load-button{margin-top:4px}
.wokwi-frame-shell[hidden]{display:none}
.circuit-board{border-color:color-mix(in srgb,var(--accent-teal) 42%,transparent)}
.hardware-page .skill-number{color:color-mix(in srgb,var(--accent-teal) 45%,transparent)}
@media(max-width:950px){.hardware-project:not(.is-featured) .hardware-project-grid{grid-template-columns:1fr}.hardware-project:not(.is-featured) .hardware-project-story{min-height:0}}
@media(max-width:680px){.hardware-viewer-controls{left:12px;right:auto;top:12px}.wokwi-frame-shell{height:480px}}
