@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");:root{--paper:#eef1f6;--paper-line:#d4dce9;--blueprint:#2451b0;--blueprint-soft:#5c7fc4;--ink:#0f1b2d;--ink-soft:#4a5568;--copper:#b5652c;--trace:#1f7a5c;--white:#ffffff;--mono:"IBM Plex Mono",monospace;--sans:"IBM Plex Sans",sans-serif}[data-theme=dark]{--paper:#0e1420;--paper-line:#22304a;--blueprint:#6c93e6;--blueprint-soft:#3e5c93;--ink:#e8edf7;--ink-soft:#8fa0bc;--copper:#e0925a;--trace:#3fce9b;--white:#151e30}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px),linear-gradient(90deg,var(--paper-line) 1px,transparent 1px);background-size:32px 32px;color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}a{color:inherit}.wrap{max-width:920px;margin:0 auto;padding:0 20px}.sheet-header{border-bottom:2px solid var(--ink);padding:24px 0 14px}.sheet-header .row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px}.part-no{font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--blueprint);text-transform:uppercase}.rev{font-size:12px}.rev,.theme-toggle{font-family:var(--mono);color:var(--ink-soft)}.theme-toggle{font-size:11px;letter-spacing:.05em;text-transform:uppercase;background:none;border:1px solid var(--paper-line);padding:5px 10px;cursor:pointer}.theme-toggle:hover{border-color:var(--copper);color:var(--copper)}.hero{padding:28px 0 32px;border-bottom:1px solid var(--paper-line)}.hero-grid{display:grid;grid-template-columns:200px 1fr;grid-gap:28px;gap:28px;align-items:start}@media (max-width:640px){.hero-grid{grid-template-columns:1fr}}.photo-box{position:relative;border:1.5px dashed var(--blueprint-soft);background:var(--white);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-box img{width:100%;height:100%;object-fit:cover}.avatar-fallback{font-size:52px;font-weight:600;color:var(--blueprint)}.avatar-fallback,.name{font-family:var(--mono)}.name{font-weight:700;font-size:clamp(26px,5vw,38px);color:var(--ink);margin-bottom:6px}.tagline{font-size:15.5px;color:var(--ink-soft);margin-bottom:16px}.status-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--trace);border:1px solid var(--trace);padding:4px 10px;margin-bottom:18px}.status-pill:before{content:"";width:6px;height:6px;background:var(--trace);border-radius:50%}.spec-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:18px}.spec-table tr{border-top:1px solid var(--paper-line)}.spec-table tr:first-child{border-top:none}.spec-table td{padding:7px 6px}.spec-table td:first-child{font-family:var(--mono);color:var(--ink-soft);width:42%;text-transform:uppercase;font-size:11px}.spec-table td:last-child{font-weight:500}.resume-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--white);background:var(--ink);border:1.5px solid var(--ink);padding:9px 16px;text-decoration:none;cursor:pointer}.resume-btn[data-disabled=true]{opacity:.45;pointer-events:none}.resume-note{font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:8px}.section{padding:32px 0;border-bottom:1px solid var(--paper-line)}.section:last-of-type{border-bottom:none}.section-label{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--blueprint);margin-bottom:14px;display:flex;align-items:center;gap:10px}.section-label:after{content:"";flex:1 1;height:1px;background:var(--paper-line)}.lang-toggle{font-family:var(--mono);font-size:11px;color:var(--ink-soft);background:none;border:1px solid var(--paper-line);padding:4px 9px;cursor:pointer;flex-shrink:0}.lang-toggle:hover{border-color:var(--copper);color:var(--copper)}.section p{max-width:640px;font-size:15px}.notes{list-style:none;display:grid;grid-gap:8px;gap:8px;max-width:640px;margin-top:16px}.notes li{display:flex;gap:10px;font-size:14.5px}.notes li:before{content:"→";font-family:var(--mono);color:var(--copper);flex-shrink:0}.tag-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.tag{font-family:var(--mono);font-size:12px;border:1px solid var(--paper-line);background:var(--white);padding:6px 12px}.repo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.repo-card{border:1px solid var(--paper-line);background:var(--white);padding:14px;text-decoration:none;color:var(--ink);display:block}.repo-card:hover{border-color:var(--copper)}.repo-name{font-family:var(--mono);font-weight:600;font-size:13.5px;margin-bottom:5px;color:var(--blueprint)}.repo-desc{font-size:12.5px;color:var(--ink-soft);margin-bottom:8px}.repo-meta{display:flex;gap:12px;font-size:11px}.repo-meta,.repo-status{font-family:var(--mono);color:var(--ink-soft)}.repo-status{font-size:13px}.pinout{display:flex;justify-content:center;padding:16px 0 8px}.pinout-svg{width:100%;max-width:680px;height:auto}.pin-label{font-size:12px;fill:var(--ink);transition:fill .18s}.pin-label,.pin-name{font-family:var(--mono)}.pin-name{font-size:10px;fill:var(--ink-soft)}.pin-line{stroke:var(--blueprint-soft);stroke-width:1.5;transition:stroke .18s,stroke-width .18s}.pin-dot{fill:var(--copper);transition:r .18s}.chip-body{fill:var(--white);stroke:var(--ink);stroke-width:1.5}.chip-text{font-family:var(--mono);font-weight:700;font-size:14px;fill:var(--ink)}.pin-link{cursor:pointer}.pin-link:hover .pin-line{stroke:var(--copper);stroke-width:2}.pin-link:hover .pin-label{fill:var(--copper)}.pin-link:hover .pin-dot{r:5.5}.pin-key{display:flex;flex-wrap:wrap;gap:14px 20px;margin-top:8px;font-family:var(--mono);font-size:12px}.pin-key a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--paper-line);padding-bottom:2px}.pin-key a:hover{color:var(--copper);border-color:var(--copper)}footer{padding:28px 0 40px}.order-box{border:1.5px solid var(--ink);padding:20px;background:var(--white)}.order-box h3{font-family:var(--mono);font-size:13px;text-transform:uppercase;margin-bottom:12px;color:var(--blueprint)}.order-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px}.order-item{font-size:14px}.order-item .k{font-family:var(--mono);font-size:10px;color:var(--ink-soft);text-transform:uppercase;display:block;margin-bottom:4px}.order-item a{color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--paper-line)}.qr-row{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--paper-line)}.qr-row img{border:1px solid var(--paper-line);padding:4px;background:var(--white)}.fine-print{text-align:center;font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:24px}.admin-shell{min-height:100vh;background:var(--paper);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px),linear-gradient(90deg,var(--paper-line) 1px,transparent 1px);background-size:32px 32px}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:2px solid var(--ink);background:var(--paper);position:-webkit-sticky;position:sticky;top:0;z-index:10}.admin-header .title{font-family:var(--mono);font-weight:700;font-size:15px;color:var(--ink)}.admin-logout{font-family:var(--mono);font-size:12px;color:var(--ink-soft);background:none;border:1px solid var(--paper-line);padding:7px 12px;cursor:pointer}.admin-logout:hover{border-color:var(--copper);color:var(--copper)}.admin-form{max-width:640px;margin:0 auto;padding:20px 20px 100px}.admin-section{margin-bottom:28px}.admin-section h2{font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--blueprint);border-bottom:1px solid var(--paper-line);padding-bottom:8px;margin-bottom:14px}.field{margin-bottom:16px}.field label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}.field input[type=email],.field input[type=text],.field input[type=url],.field textarea{width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);background:var(--white);border:1px solid var(--paper-line);padding:12px;border-radius:2px}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field textarea:focus{outline:none;border-color:var(--blueprint);box-shadow:0 0 0 3px rgba(36,81,176,.12)}.field .hint{font-size:12px;color:var(--ink-soft);margin-top:4px}.upload-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.upload-btn{font-family:var(--mono);font-size:12px;text-transform:uppercase;background:var(--white);border:1px solid var(--ink);padding:10px 14px;cursor:pointer}.upload-btn:hover{border-color:var(--copper);color:var(--copper)}.upload-preview{width:56px;height:56px;border:1px solid var(--paper-line);object-fit:cover;background:var(--white)}.save-bar{position:fixed;bottom:0;left:0;right:0;background:var(--paper);border-top:2px solid var(--ink);padding:14px 20px;display:flex;justify-content:center;z-index:20}.save-btn{width:100%;max-width:600px;font-family:var(--mono);font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--white);background:var(--trace);border:none;padding:14px;cursor:pointer;border-radius:2px}.save-btn:disabled{opacity:.6;cursor:default}.save-msg{text-align:center;font-family:var(--mono);font-size:12px;color:var(--trace);margin-top:8px}.save-msg.error{color:#c0392b}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px),linear-gradient(90deg,var(--paper-line) 1px,transparent 1px);background-size:32px 32px;padding:20px}.login-card{width:100%;max-width:360px;border:1.5px solid var(--ink);background:var(--white);padding:32px 28px}.login-card .code{font-family:var(--mono);font-size:12px;color:var(--blueprint);text-transform:uppercase;margin-bottom:10px}.login-card h1{font-family:var(--mono);font-size:20px;margin-bottom:20px;color:var(--ink)}.login-card .field input{width:100%;font-size:16px;padding:12px;border:1px solid var(--paper-line);background:var(--paper)}.login-btn{width:100%;font-family:var(--mono);font-size:13px;text-transform:uppercase;color:var(--white);background:var(--ink);border:none;padding:13px;cursor:pointer;margin-top:6px}.login-btn:disabled{opacity:.6}.login-error{font-family:var(--mono);font-size:12px;color:#c0392b;margin-top:12px}