html{font-size:100%;scroll-behavior:smooth;scrollbar-gutter:stable;overflow-y:scroll;background-color:var(--bg-color);transition:background-color .22s ease}html.theme-changing,html.theme-changing body,html.theme-changing .main-nav,html.theme-changing .card,html.theme-changing .project-card,html.theme-changing .proj-item,html.theme-changing .proj-grid,html.theme-changing .featured-item,html.theme-changing .status-inner,html.theme-changing .modal-card,html.theme-changing .proj-modal-panel,html.theme-changing .proj-modal-header,html.theme-changing .proj-modal-close,html.theme-changing .proj-modal-toc-inner,html.theme-changing .toc-container,html.theme-changing pre,html.theme-changing code,html.theme-changing .copy-button,html.theme-changing .dark-toggle,html.theme-changing .entry{transition:background-color .22s ease,color .22s ease,border-color .22s ease!important}html.theme-changing .nav-logo img{transition:filter .22s ease!important}:root{--font-mono:Consolas, "SF Mono", Menlo, ui-monospace, "Courier New", monospace;--font-serif:"Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-main:var(--font-mono);--bg-color:#fbfaf6;--text-color:#24251f;--muted-color:#5c5e55;--nav-border:#e2e0d8;--comment-color:#8d8f86;--accent:#3d7a3a;--highlight-bg:#dcedc8;--highlight-text:#1b381d;--row-hover-bg:#f0efe8;--overlay-bg:rgba(40,40,40,0.5);--modal-shadow:rgba(0,0,0,0.12);--scope-bezel:#f1efe7;--scope-edge:#dedcd2;--scope-text:#74766d;--scope-text-strong:#2b2c27;--scope-screen:#f8f7f1;--scope-screen-edge:#e4e2d8;--scope-trace-dim:#d3ddcc;--scope-trace-mid:#5f9a5a;--scope-trace-hot:#1d5a23;--scope-grid:#e0ded3;--scope-axis:#cbc9bc;--scope-trig:#d97757;--scope-ok:#3d7a3a;--scope-badge-text:#fbfaf6;--scope-glow-opacity:0.22;--scope-glow-blend:multiply;--scope-scanline:rgba(0,0,0,0.025);--scope-vignette:rgba(0,0,0,0.04)}[data-theme=dark]{--bg-color:#1f2020;--text-color:#dcdad1;--muted-color:#9a9c93;--nav-border:#333634;--comment-color:#7a7f78;--accent:#8fcb8a;--highlight-bg:#2a4630;--highlight-text:#c9ecb6;--row-hover-bg:#272928;--overlay-bg:rgba(0,0,0,0.65);--modal-shadow:rgba(0,0,0,0.5);--scope-bezel:#252626;--scope-edge:#383a3a;--scope-text:#9a9c93;--scope-text-strong:#dcdad1;--scope-screen:#191a1a;--scope-screen-edge:#333535;--scope-trace-dim:#2a3f2c;--scope-trace-mid:#8fcb8a;--scope-trace-hot:#e6ffd9;--scope-grid:#2b2d2d;--scope-axis:#3a3d3d;--scope-trig:#d97757;--scope-ok:#8fcb8a;--scope-badge-text:#1f2020;--scope-glow-opacity:0.75;--scope-glow-blend:screen;--scope-scanline:rgba(0,0,0,0.18);--scope-vignette:rgba(0,0,0,0.45)}body{background-color:initial;color:var(--text-color);font-family:var(--font-main);margin:0;line-height:1.6;padding-top:80px}::selection{background:var(--highlight-bg);color:var(--highlight-text)}::-moz-selection{background:var(--highlight-bg);color:var(--highlight-text)}main{max-width:850px;margin:40px auto;padding:0 20px;box-sizing:border-box}.content img,.content video{max-width:100%;height:auto;display:block;margin:20px auto}h1,h2,h3,h4{color:var(--text-color);font-weight:700}h1::before{content:"// ";color:var(--comment-color)}.bio-box h1::before{content:none}h2::before{content:"// ";color:var(--comment-color)}h3::before{content:"/* ";color:var(--comment-color)}h3::after{content:" */";color:var(--comment-color)}.scroll-anchor{scroll-margin-top:100px}.main-nav{position:fixed;top:0;left:0;z-index:2000;width:100%;border-bottom:2px solid var(--nav-border);background-color:var(--bg-color)}.nav-container{max-width:850px;margin:0 auto;padding:10px 20px;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.nav-logo{display:flex;border:none}.nav-logo img{height:40px;width:auto;display:block;transition:filter .25s}[data-theme=dark] .nav-logo img{filter:invert(1)}.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:30px}.main-nav li{font-size:1.1rem;font-weight:700}a{color:var(--text-color);text-decoration:none;transition:color .2s ease,background-color .2s ease,border-bottom-color .2s ease}main a:not(.card):not(.project-card):not(.back-arrow):not(.fixed-side-arrow),.modal-content a{border-bottom:4px solid var(--highlight-bg);color:var(--highlight-text)}a:not(.card):not(.nav-logo):not(.project-card):not(.back-arrow):not(.fixed-side-arrow):not(.toc-link):not(.proj-item):not(.featured-item):hover,.modal-content a:hover{background-color:var(--highlight-bg);color:var(--highlight-text);border-bottom:none;padding:0 4px;margin:0 -4px}.card{position:relative;display:block;border:1px solid var(--nav-border);border-radius:0;padding:25px;margin-bottom:30px;overflow:hidden;background-color:var(--bg-color);color:var(--text-color);text-decoration:none;transition:border-color .2s}.card::before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background-color:var(--highlight-bg);transition:width .15s cubic-bezier(0,0,.2,1);z-index:0}.card h2,.card p,.card div{position:relative;z-index:1}.card:hover{border-color:var(--highlight-text)}.card:hover::before{width:5px}.card h2{margin-top:0}a.card:hover h2,a.card:hover p,a.card:hover span{color:var(--text-color)}.card.no-hover:hover{border-color:var(--nav-border)}.card.no-hover:hover::before{width:0}.status-inner{position:relative;border:1px solid var(--nav-border);border-radius:0;padding:20px 20px 20px 28px;background:var(--bg-color);overflow:hidden}.status-inner::before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background-color:var(--highlight-text);z-index:0}.status-inner p{position:relative;z-index:1}.project-card{position:relative;border:1px solid var(--nav-border);border-radius:0;overflow:hidden;margin-bottom:40px;display:block;text-decoration:none;color:var(--text-color);transition:border-color .2s,background .15s;background:var(--bg-color)}.project-card:hover{border-color:var(--highlight-text);background:var(--row-hover-bg)}.project-info{padding:20px}.project-card img{width:100%;height:250px;object-fit:cover;display:block;border-bottom:1px solid var(--nav-border)}.project-grid{display:grid;grid-template-columns:1fr;gap:30px;margin-top:20px}.card .project-grid{margin-top:0}.card .project-card.inner-card,.card .project-card.featured-card{margin-bottom:0;border:1px solid var(--nav-border);transition:border-color .2s,background .15s}.card .project-card.inner-card:hover,.card .project-card.featured-card:hover{border-color:var(--highlight-text);background:var(--row-hover-bg)}.project-card.featured-card{display:flex;flex-direction:row;height:220px;align-items:stretch;margin-bottom:30px}.featured-image-container{flex:0 0 40%;min-width:200px;border-right:1px solid var(--nav-border)}.project-card.featured-card img{width:100%;height:100%;object-fit:cover;border-bottom:none}.project-card.featured-card .project-info{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:3000;display:none;justify-content:center;align-items:flex-end;padding:0;background:rgba(255,255,255,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background .5s ease,backdrop-filter .5s ease}.modal-overlay.visible{background:rgba(255,255,255,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-wrapper{position:relative;max-width:650px;width:100%;display:flex;flex-direction:column;margin-bottom:0;padding-bottom:0}.modal-card{width:100%;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);height:85vh;height:85dvh;margin-bottom:0;overflow-y:auto;background:#fff;padding:40px;position:relative;border-color:var(--nav-border);box-shadow:0 -10px 40px rgba(0,0,0,.15)!important;border:1px solid var(--nav-border);border-radius:0;border-bottom:none;transform:translateY(100vh);transition:transform .5s cubic-bezier(.19,1,.22,1)}.modal-overlay.visible .modal-card{transform:translateY(0)}.modal-card:hover{transform:none!important;box-shadow:0 -10px 40px rgba(0,0,0,.15)!important;border-color:var(--nav-border)!important}.modal-card::before{width:0!important}.back-arrow-modal{position:absolute;left:-80px;top:0;z-index:3001;font-size:2rem;color:var(--comment-color);background:0 0;border:none;line-height:1;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .5s ease .1s,transform .2s ease,color .2s ease}.modal-overlay.visible .back-arrow-modal{opacity:1}.back-arrow-modal:hover{color:var(--highlight-text);background-color:rgba(0,0,0,3%);transform:translateX(-5px)}.toc-sidebar{position:fixed;top:100px;right:50px;left:auto;width:200px;z-index:10}.toc-container{font-size:.85rem;font-family:var(--font-main);border-left:2px solid #eee;padding-left:15px}.toc-container h4{margin-top:0;margin-bottom:15px;color:var(--comment-color);font-size:.8rem}.toc-container nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.toc-container nav ul ul{margin-top:6px;padding-left:12px;display:flex;flex-direction:column;gap:4px}.toc-container li{display:block;line-height:1.3}.toc-container a{text-decoration:none;color:#888;transition:all .2s;display:block;border-bottom:none!important}.toc-container a:hover{color:var(--text-color);transform:translateX(-3px)}.toc-container a.active{color:var(--highlight-text);font-weight:700}.fixed-side-arrow{position:fixed;top:100px;left:calc(50vw - 480px);font-size:2rem;color:var(--comment-color);text-decoration:none;line-height:1;width:60px;height:60px;display:flex;align-items:center;justify-content:center;transition:color .2s,transform .2s;z-index:100}.fixed-side-arrow:hover{color:var(--highlight-text);background-color:rgba(0,0,0,3%);transform:translateX(-5px)}pre{background-color:var(--row-hover-bg);padding:15px;border-radius:0;border:1px solid var(--nav-border);overflow-x:auto;font-size:.9rem;margin-bottom:30px}code{font-family:var(--font-mono);background-color:var(--row-hover-bg);padding:2px 5px;border-radius:0}pre code{background-color:initial;padding:0}.copy-button{position:absolute;top:10px;right:10px;background-color:var(--bg-color);border:1px solid var(--nav-border);border-radius:0;color:var(--comment-color);font-family:var(--font-main);font-size:.75rem;padding:4px 8px;cursor:pointer;transition:all .2s;opacity:.7}.copy-button:hover{opacity:1;color:var(--text-color);border-color:var(--comment-color)}.copy-button.success{border-color:var(--highlight-text);color:var(--highlight-text);background-color:var(--highlight-bg)}.dark-toggle{background:0 0;border:1px solid var(--nav-border);color:var(--comment-color);font-family:var(--font-main);font-size:.72rem;padding:3px 8px;cursor:pointer;letter-spacing:.06em;transition:border-color .2s,color .2s;line-height:1.6}.dark-toggle:hover{border-color:var(--highlight-text);color:var(--highlight-text)}.ascii-wash{position:fixed;inset:0;z-index:9000;display:grid;place-items:stretch;pointer-events:none;opacity:0;visibility:hidden;background:0 0;transition:opacity 320ms ease,visibility 0s linear 320ms}[data-ascii-wash=pending] .ascii-wash,[data-theme=dark] .ascii-wash{background:0 0}[data-ascii-wash=pending] .ascii-wash{opacity:1;visibility:visible;transition:none}.ascii-wash.is-visible{opacity:1;visibility:visible;transition:opacity 140ms ease}.ascii-wash.is-exiting{opacity:0}.ascii-wash__blur{position:absolute;inset:0;background:color-mix(in srgb,var(--bg-color) 26%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);will-change:clip-path}.ascii-wash__pre{margin:0;padding:14px 16px;width:100%;height:100%;box-sizing:border-box;overflow:hidden;white-space:pre;user-select:none;background:0 0;border:0;font-family:var(--font-mono);font-size:clamp(8px,.78vw,12px);line-height:1;letter-spacing:0;color:var(--text-color)}.ascii-wash__canvas{position:relative;z-index:1;width:100%;height:100%;display:block}@media(max-width:600px){.ascii-wash__canvas{width:100%;height:100%}}@media(prefers-reduced-motion:reduce){.ascii-wash{display:none}}.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background-color:var(--nav-border);border:1px solid var(--nav-border);margin-bottom:40px}.proj-item{background:var(--bg-color);display:flex;flex-direction:column;text-decoration:none;color:var(--text-color);transition:background .15s;cursor:pointer}.proj-item img{width:100%;height:170px;object-fit:cover;display:block;border-bottom:1px solid var(--nav-border)}.proj-item:hover{background:var(--highlight-bg)}.proj-info{padding:14px 16px;display:flex;flex-direction:column;gap:4px;flex:1}.proj-title{font-weight:700;font-size:.9rem;color:var(--text-color)}.proj-summary{font-size:.78rem;color:var(--comment-color);line-height:1.5}.proj-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.proj-tag{font-size:.67rem;color:var(--comment-color);border:1px solid var(--nav-border);padding:1px 5px;letter-spacing:.03em;transition:border-color .15s ease,color .15s ease}.proj-item:hover .proj-tag{border-color:var(--comment-color);color:var(--text-color)}.proj-title::after{content:' →';opacity:0;transition:opacity .15s ease;font-weight:400;color:var(--comment-color)}.proj-item:hover .proj-title::after{opacity:1}.scroll-anchor{--trace-dur:0.5s;--resolve-dur:0.3s}.section-header{position:relative}.section-header::after{content:'';position:absolute;bottom:-1px;left:0;height:1px;width:0;background:var(--highlight-text);opacity:.45;transition:width var(--trace-dur)cubic-bezier(.19,1,.22,1)}.scroll-anchor.sig-visible .section-header::after{width:100%}.scroll-anchor>*:not(.section-header){opacity:0;transform:translateY(5px);transition:opacity var(--resolve-dur)ease var(--trace-dur),transform var(--resolve-dur)ease var(--trace-dur)}.scroll-anchor.sig-visible>*:not(.section-header){opacity:1;transform:translateY(0)}.scroll-anchor.sig-instant>*:not(.section-header),.scroll-anchor.sig-instant .section-header::after{transition:none}.featured-item{display:flex;border:1px solid var(--nav-border);text-decoration:none;color:var(--text-color);transition:border-color .2s,background .15s;margin-bottom:40px;cursor:pointer}.featured-item:hover{border-color:var(--highlight-text);background:var(--highlight-bg)}.featured-item .fi-img{flex:0 0 42%}.featured-item .fi-img img{width:100%;height:200px;object-fit:cover;display:block;border-right:1px solid var(--nav-border)}.featured-item .fi-info{padding:22px;display:flex;flex-direction:column;justify-content:center;gap:6px}.featured-item .fi-info h3{margin:0;font-size:1rem}.featured-item .fi-info p{margin:0;font-size:.85rem;color:var(--comment-color)}.proj-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:4000;display:none;justify-content:center;align-items:flex-end;background:0 0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background .5s ease,backdrop-filter .5s ease}.proj-modal-overlay.visible{background:0 0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.proj-modal-panel{width:100%;max-width:700px;height:calc(100vh - 48px);height:calc(100dvh - 48px);max-height:calc(100% - 48px);background:var(--bg-color);border:1px solid var(--nav-border);border-bottom:none;display:flex;flex-direction:column;transform:translateY(100vh);transition:transform .5s cubic-bezier(.19,1,.22,1)}.proj-modal-overlay.visible .proj-modal-panel{transform:translateY(0)}.proj-modal-header{background:var(--bg-color);border-bottom:1px solid var(--nav-border);padding:10px 20px;display:flex;align-items:center;gap:14px;flex-shrink:0}.proj-modal-close{background:0 0;border:1px solid var(--nav-border);color:var(--comment-color);font-family:var(--font-main);font-size:.8rem;padding:3px 10px;cursor:pointer;transition:border-color .2s,color .2s}.proj-modal-close:hover{border-color:var(--highlight-text);color:var(--highlight-text)}.proj-modal-filename{font-size:.78rem;color:var(--comment-color);font-style:italic}.proj-modal-article{flex:1;min-width:0;padding:30px 30px 80px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.proj-modal-article::-webkit-scrollbar{display:none}.proj-modal-toc-outer{position:absolute;left:calc(50% + 350px + 20px);bottom:0;width:190px;height:calc(100vh - 48px);height:calc(100dvh - 48px);padding-top:24px;overflow-y:auto;transform:translateY(100vh);transition:transform .5s cubic-bezier(.19,1,.22,1);pointer-events:none}.proj-modal-overlay.visible .proj-modal-toc-outer{transform:translateY(0);pointer-events:auto}.proj-modal-toc-inner{border-left:2px solid var(--nav-border);padding-left:14px}.proj-modal-toc-inner h4{margin:0 0 10px;color:var(--comment-color);font-size:.76rem}.proj-modal-toc-inner ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.proj-modal-toc-inner ul ul{margin-top:4px;padding-left:10px}.proj-modal-toc-inner a{color:var(--comment-color);text-decoration:none;border-bottom:none!important;display:block;font-size:.76rem;line-height:1.4;transition:color .15s;padding:0!important;margin:0!important}.proj-modal-toc-inner a:hover{color:var(--text-color);background:0 0!important}.proj-modal-toc-inner a.toc-active{color:var(--highlight-text);font-weight:700}@media(max-width:600px){.proj-grid{grid-template-columns:1fr}.featured-item{flex-direction:column}.featured-item .fi-img img{border-right:none;border-bottom:1px solid var(--nav-border);height:180px}.proj-modal-toc-outer{display:none}}footer{text-align:center;margin-top:50px;margin-bottom:20px;color:var(--comment-color);font-size:.8rem;width:100%}.bento-gallery{--bento-gap:10px;--bento-fade-ms:280ms;container-type:inline-size;display:flex;flex-direction:column;gap:14px}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:calc((100cqw - 3 * var(--bento-gap))/4 * .85);gap:var(--bento-gap)}.bento-tile{position:relative;overflow:hidden;background:var(--row-hover-bg);border:1px solid var(--nav-border);text-decoration:none;color:inherit;cursor:pointer;opacity:0;animation:bento-fade-in var(--bento-fade-ms)ease forwards}@keyframes bento-fade-in{to{opacity:1}}.bento-tile.size-big{grid-column:span 2;grid-row:span 2}.bento-tile.size-wide{grid-column:span 2;grid-row:span 1}.bento-tile.size-tall{grid-column:span 1;grid-row:span 2}.bento-tile.size-small{grid-column:span 1;grid-row:span 1}.bento-tile img,.bento-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.19,1,.22,1)}.bento-tile:hover img,.bento-tile:focus-visible img,.bento-tile:hover video,.bento-tile:focus-visible video{transform:scale(1.04)}.bento-tile .bento-title{position:absolute;left:0;bottom:0;max-width:100%;box-sizing:border-box;padding:3px 8px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:var(--text-color);background:color-mix(in srgb,var(--bg-color) 86%,transparent);border-top:1px solid var(--nav-border);border-right:1px solid var(--nav-border);z-index:2;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bento-controls{display:flex;align-items:center;gap:16px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;color:var(--comment-color);user-select:none}.bento-counter{min-width:7ch;text-align:center}.bento-nav{background:0 0;border:0;padding:2px 0;color:var(--muted-color);font-family:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer;transition:color .15s ease}.bento-nav:hover:not(:disabled){color:var(--accent)}.bento-nav:disabled{opacity:.35;cursor:default}@media(max-width:600px){.bento-gallery{--bento-gap:8px}.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:calc((100cqw - var(--bento-gap))/2 * .85)}.bento-tile.size-big{grid-column:span 2;grid-row:span 2}.bento-tile.size-wide{grid-column:span 2;grid-row:span 1}.bento-tile.size-tall{grid-column:span 1;grid-row:span 2}.bento-tile.size-small{grid-column:span 1;grid-row:span 1}}@media(prefers-reduced-motion:reduce){.bento-tile{animation:none;opacity:1}.bento-tile img,.bento-tile video{transition:none}}@media(max-width:768px){.fixed-side-arrow,.toc-sidebar{display:none!important}.back-arrow-modal{left:10px;top:10px;z-index:3005;background:color-mix(in srgb,var(--bg-color) 85%,transparent);border:1px solid var(--nav-border)}.proj-modal-close{padding:8px 16px;font-size:.9rem}body{padding-top:140px}.content img{max-width:100%;height:auto;display:block;margin:20px auto;border-radius:12px;box-shadow:0 5px 15px rgba(0,0,0,5%)}.nav-container{flex-direction:column;padding:15px 20px;gap:15px;height:auto}.nav-logo{margin-right:0;justify-content:center}.main-nav ul{gap:15px;flex-wrap:wrap;justify-content:center;width:100%}main{margin-top:20px;padding:0 15px}.project-card.featured-card{flex-direction:column;height:auto}.featured-image-container{width:100%;height:200px;border-right:none;border-bottom:1px solid var(--nav-border)}}.zoom-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:0 0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);z-index:5000;pointer-events:none;transition:background .5s ease,backdrop-filter .5s ease;display:flex;align-items:center;justify-content:center}.zoom-overlay.visible{background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto;cursor:zoom-out}.zoom-clone{position:fixed;z-index:5001;cursor:zoom-out;border-radius:0;transform-origin:top left;transition:transform .5s cubic-bezier(.19,1,.22,1)}.content img.zoomable{cursor:zoom-in;transition:opacity .3s}.content img.zoomable.hidden{opacity:0}:root{--sc-0:#c8c8c8;--sc-1:#efefef;--sc-2:#1f1f1f;--sc-3:#d7d7d7;--sc-4:#747474;--sc-5:#181818;--sc-6:#3d3d3d;--sc-7:#8a8a8a;--sc-8:var(--scope-accent, #7c9f55);--sc-9:var(--scope-accent-strong, #56743a)}[data-theme=dark]{--sc-0:#6f6f6f;--sc-1:#f2f2f2;--sc-2:#d0d0d0;--sc-3:#8b8b8b;--sc-4:#bababa;--sc-5:#d7d7d7;--sc-6:#f5f5f5;--sc-7:#9a9a9a;--sc-8:var(--scope-accent, #8fcb8a);--sc-9:var(--scope-accent-strong, #b7ef9e)}#schematic-bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}@media(prefers-reduced-motion:reduce){#schematic-bg{display:none}}main,footer{text-shadow:0 0 6px var(--bg-color),0 0 10px var(--bg-color)}.featured-item{background-color:var(--bg-color)}.card,.proj-item,.featured-item,.proj-modal-panel,.modal-card,.modal-wrapper,.bio-box,.project-card,.scope{text-shadow:none}body{font-family:var(--font-serif);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;font-optical-sizing:auto}h1,h2,h3,h4,.main-nav,.dark-toggle,.copy-button,footer,.toc-container,.proj-modal-header,.proj-modal-toc-inner,.fixed-side-arrow,.back-arrow-modal,pre,code{font-family:var(--font-mono)}h1,h2,h3{font-weight:600;letter-spacing:-.01em}.content{font-family:var(--font-serif)}.content p,.content li{line-height:1.65}.content h1,.content h2,.content h3,.content h4{font-family:var(--font-mono)}.main-nav{background-color:color-mix(in srgb,var(--bg-color) 80%,transparent);-webkit-backdrop-filter:blur(10px)saturate(1.2);backdrop-filter:blur(10px)saturate(1.2);border-bottom:1px solid var(--nav-border)}body.is-home .nav-container{max-width:1240px;padding-left:32px;padding-right:32px}.nav-logo img{height:34px}.main-nav ul{gap:26px;align-items:center}.main-nav li{font-size:.8rem;font-weight:500;letter-spacing:.02em}.dark-toggle{font-size:.8rem}body.is-home main{max-width:1240px;padding:0 32px;margin:0 auto}.home-split{--hero-top:clamp(40px, 9vh, 96px);display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.08fr);grid-template-areas:"hero  scope" "body  scope";grid-template-rows:auto 1fr;column-gap:clamp(40px,6vw,88px)}.home-hero{grid-area:hero;max-width:600px;padding:var(--hero-top)0 56px}.home-body{grid-area:body;max-width:600px;min-width:0}.home-scope{grid-area:scope;min-width:0}.scope-sticky{position:sticky;top:64px;padding-top:var(--hero-top)}.hero-kicker{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:22px}.home-hero .hero-name{font-family:var(--font-mono);font-weight:700;font-size:2.15rem;line-height:1.15;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px}.home-hero .hero-name::before{content:none}.hero-blurb{font-size:1.2rem;line-height:1.6;color:var(--text-color)}.hero-blurb p{margin:0}.home-section{margin-bottom:72px;scroll-margin-top:80px}body.is-home .scroll-anchor>*:not(.section-header){opacity:1;transform:none;transition:none}.home-section .section-header{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:8px;margin-bottom:10px}.home-section .section-header h3{margin:0;font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--comment-color)}.home-section .section-header h3::before{content:"//"}.home-section .section-header h3::after{content:none}.home-section .section-header::before,.home-section .section-header::after{content:"";position:absolute;left:0;right:0;bottom:-6.5px;width:auto;height:12px;opacity:1;transition:none}.home-section .section-header::before{background:var(--nav-border);-webkit-mask:linear-gradient(transparent 5.5px,#000 5.5px,#000 6.5px,transparent 6.5px)left/calc(50% - 24px)100% no-repeat,linear-gradient(transparent 5.5px,#000 5.5px,#000 6.5px,transparent 6.5px)right/calc(50% - 24px)100% no-repeat;mask:linear-gradient(transparent 5.5px,#000 5.5px,#000 6.5px,transparent 6.5px)left/calc(50% - 24px)100% no-repeat,linear-gradient(transparent 5.5px,#000 5.5px,#000 6.5px,transparent 6.5px)right/calc(50% - 24px)100% no-repeat}.home-section .section-header::after{background:var(--nav-border);-webkit-mask:var(--part)center/48px 12px no-repeat;mask:var(--part)center/48px 12px no-repeat}.section-header[data-part=resistor]{--part:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1' stroke-linejoin='round'><path d='M0 6H13L15 2L18.5 10L22 2L25.5 10L29 2L32.5 10L35 6H48'/></svg>")}.section-header[data-part=capacitor]{--part:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1' stroke-linejoin='round'><path d='M0 6H22M22 1V11M26 1V11M26 6H48'/></svg>")}.section-header[data-part=inductor]{--part:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1' stroke-linejoin='round'><path d='M0 6H12a3 3 0 0 1 6 0a3 3 0 0 1 6 0a3 3 0 0 1 6 0a3 3 0 0 1 6 0H48'/></svg>")}.section-header[data-part=diode]{--part:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1' stroke-linejoin='round'><path d='M0 6H19M19 1.5L28 6L19 10.5ZM28 1.5V10.5M28 6H48'/></svg>")}.section-count{font-family:var(--font-mono);font-size:.72rem;color:var(--comment-color)}.entry{display:grid;grid-template-columns:minmax(0,1fr)168px;gap:28px;align-items:start;padding:24px 0;border-bottom:1px solid var(--nav-border);cursor:pointer;position:relative}.entry:last-child{border-bottom:0}.entry-meta{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;color:var(--accent);margin-bottom:6px}.home-body{position:relative}.scope-marker{position:absolute;left:-32px;top:0;width:26px;height:22px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 24' fill='none' stroke='black' stroke-width='1.5'><path d='M28 12H18.5M18.5 5V19M13 3V21M13 6H6V0M13 18H6V24'/><path d='M6.5 18L11.5 15V21Z' fill='black' stroke='none'/></svg>")center/contain no-repeat;mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 24' fill='none' stroke='black' stroke-width='1.5'><path d='M28 12H18.5M18.5 5V19M13 3V21M13 6H6V0M13 18H6V24'/><path d='M6.5 18L11.5 15V21Z' fill='black' stroke='none'/></svg>")center/contain no-repeat;pointer-events:none;opacity:0}.scope-marker.is-placed{opacity:1;transition:opacity .4s ease;will-change:transform}.entry-wip{color:#c9962f}[data-theme=dark] .entry-wip{color:#e3b65c}.entry .entry-title{font-family:var(--font-serif);font-size:1.4rem;font-weight:500;line-height:1.22;letter-spacing:-.01em;margin:0 0 8px;transition:color .15s ease}.entry-summary{margin:0;font-size:1.02rem;line-height:1.55;color:var(--muted-color)}.entry-tags{margin-top:10px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.03em;color:var(--comment-color)}.entry-thumb{border:1px solid var(--nav-border);overflow:hidden;background:var(--row-hover-bg)}.entry-thumb img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:transform .4s cubic-bezier(.19,1,.22,1)}.entry:hover .entry-title{color:var(--accent)}.entry:hover .entry-thumb img{transform:scale(1.04)}.entry--featured{grid-template-columns:1fr;gap:18px;border-bottom:0}.entry--featured .entry-thumb img{aspect-ratio:16/9}.entry--featured .entry-title{font-size:1.75rem}.entry-empty{color:var(--comment-color);font-style:italic;font-size:.95rem}.scope{position:relative;background:var(--scope-bezel);border:1px solid var(--scope-edge);padding:10px 12px 12px;font-family:var(--font-mono);color:var(--scope-text);user-select:none;transition:background-color .3s ease,border-color .3s ease}[data-theme=dark] .scope{box-shadow:0 1px rgba(255,255,255,3%)inset,0 24px 60px -24px rgba(0,0,0,.55)}.scope-bar{display:flex;justify-content:space-between;gap:10px;font-size:.7rem;letter-spacing:.04em;line-height:1.2;padding:2px 2px 9px;white-space:nowrap;overflow:hidden}.scope-bar--bottom{padding:9px 2px 0}.scope-run,.scope-ch{color:var(--scope-badge-text);background:var(--scope-ok);padding:1px 6px;font-weight:700}.scope.is-stopped .scope-run{background:#d9645a}.scope-src{color:var(--scope-text-strong);overflow:hidden;text-overflow:ellipsis}.scope-trig{color:var(--scope-ok)}.scope.is-auto .scope-trig{color:var(--scope-trig)}.scope.is-stopped .scope-trig{color:#d9645a}.scope-screen{position:relative;overflow:hidden;cursor:crosshair;background:var(--scope-screen);box-shadow:0 0 0 1px var(--scope-screen-edge)inset;min-height:120px}.scope-canvas,.scope-glow{position:absolute;top:0;left:0;display:block}.scope-glow{filter:blur(4px)brightness(1.3);opacity:var(--scope-glow-opacity);mix-blend-mode:var(--scope-glow-blend);pointer-events:none}.scope-view{position:absolute;inset:0;pointer-events:none;background:var(--scope-screen);opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1).1s}.scope.is-viewing .scope-view{opacity:1;pointer-events:auto;cursor:pointer;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.scope-view-layer{position:absolute;inset:0;opacity:0;transform:scale(1.03);filter:blur(10px)brightness(1.3)saturate(.6);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform 1.1s cubic-bezier(.19,1,.22,1),filter .9s cubic-bezier(.19,1,.22,1)}.scope-view-layer.is-in{opacity:1;transform:none;filter:none}.scope-view-layer.is-out{opacity:0;transform:scale(.99);filter:blur(4px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s ease,filter .6s ease}.scope-view img,.scope-view video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.scope-view-title{position:absolute;left:0;bottom:0;padding:3px 8px;font-size:.7rem;letter-spacing:.02em;color:var(--scope-text-strong);background:color-mix(in srgb,var(--scope-bezel) 86%,transparent);border-top:1px solid var(--scope-screen-edge);border-right:1px solid var(--scope-screen-edge);opacity:0;transform:translateY(6px);transition:opacity .5s ease .35s,transform .7s cubic-bezier(.19,1,.22,1).35s}.scope-view-layer.is-in .scope-view-title{opacity:1;transform:none}.scope-view-layer.is-out .scope-view-title{transition-delay:0s}@media(prefers-reduced-motion:reduce){.scope-view,.scope-view-layer,.scope-view-title{transition-duration:.01s!important;transition-delay:0s!important}.scope-view-layer{transform:none;filter:none}}.scope-screen::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,var(--scope-scanline) 3px),radial-gradient(130% 100% at 50% 50%,transparent 60%,var(--scope-vignette) 100%)}@media(max-width:1000px){body.is-home main{padding:0 20px}body.is-home .nav-container{padding-left:20px;padding-right:20px}.home-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "scope" "body";grid-template-rows:auto}.home-hero{padding:32px 0 28px;max-width:680px}.home-body{max-width:680px}.scope-marker{left:-20px;width:18px;height:16px}.scope-sticky{position:static;height:auto;padding-top:0;margin-bottom:56px}}@media(max-width:768px){body{padding-top:60px}.nav-container{flex-direction:row;padding:10px 16px;gap:12px}.nav-logo img{height:28px}.main-nav ul{gap:14px;width:auto;flex-wrap:nowrap;justify-content:flex-end}.main-nav li{font-size:.74rem}.dark-toggle{font-size:.74rem}body.is-home main{padding:0 16px}.scope-marker{left:-16px;width:15px;height:13px}}@media(max-width:600px){body{font-size:1rem}.hero-blurb{font-size:1.08rem}.entry{grid-template-columns:minmax(0,1fr)96px;gap:16px;padding:20px 0}.entry .entry-title{font-size:1.2rem}.entry-summary{font-size:.96rem}.entry--featured{grid-template-columns:1fr}.entry--featured .entry-title{font-size:1.4rem}.scope{padding:8px 8px 10px}.scope-bar{font-size:.6rem;gap:6px}[data-scope-rate]{display:none}}