:root{--bg:#101210;--surface:#1b1e1b;--line:#353a32;--ink:#f0f1e9;--muted:#a8afa2;--acid:#d5fc67;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;color-scheme:dark;font-family:var(--sans);background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,a,input{touch-action:manipulation}button,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}img{max-width:100%;display:block}::selection{background:var(--acid);color:var(--bg)}:focus-visible{outline:2px solid var(--acid);outline-offset:5px}button:focus-visible{outline-offset:3px}.wrap{max-width:1440px;width:calc(100% - 104px);margin:auto}.eyebrow{font:400 .75rem/1.5 'Courier New',monospace;letter-spacing:.12em;color:var(--muted)}em{font-family:var(--serif);font-weight:400}h1,h2,h3,p{margin:0}p{font-size:1rem;line-height:1.7}.header{height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 52px;gap:30px}.brand{display:flex;align-items:center;gap:17px}.brand-mark{font-size:2.8rem;letter-spacing:-.11em;font-weight:700;line-height:1}.brand-mark span{color:var(--acid)}.brand-name{font-size:.75rem;line-height:1.4;letter-spacing:.12em}.header nav{display:flex;align-items:center;gap:35px;font-size:.875rem}.header nav a{padding:12px 0}.header nav a:hover{color:var(--acid)}.nav-contact{display:flex;gap:20px;align-items:center}.contact-dot{height:8px;width:8px;border-radius:50%;background:var(--acid)}.hero{padding:50px 0 60px}.hero-top{display:flex;align-items:center;justify-content:space-between}.hero-location{font-size:.75rem;color:var(--muted)}.hero-location span{margin-left:16px;color:var(--ink)}h1{font-size:clamp(3.3rem,7.7vw,7.7rem);line-height:1.03;letter-spacing:-.065em;font-weight:500;margin-top:40px}.hero-second{white-space:nowrap}h1 em{color:var(--acid);letter-spacing:-.07em}.hero-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:42px;gap:32px}.hero-bottom p{line-height:1.6;color:var(--muted)}.hero-bottom p span{color:var(--ink)}.hero-index{font-size:.75rem;line-height:1.55;letter-spacing:.06em;display:grid;text-align:right;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.15;letter-spacing:-.055em;font-weight:400}.section-head h2{margin-top:14px}.section-head p{font-size:.875rem;color:var(--muted);padding-bottom:4px}.work{padding:38px 0 94px;border-top:1px solid var(--line)}.filters{display:flex;gap:9px;margin:32px 0 28px;flex-wrap:wrap}.filter{background:transparent;border:1px solid var(--line);border-radius:30px;font-size:.875rem;padding:11px 19px;transition:background .2s,border-color .2s}.filter span{font-family:'Courier New',monospace;font-size:.75rem;margin-left:8px;opacity:.65}.filter.active{color:var(--bg);background:var(--acid);border-color:var(--acid)}.filter:not(.active):hover{border-color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 22px}.project{padding:0;min-width:0;text-align:left;background:transparent}.project-wide{grid-column:span 2}.project[hidden]{display:none}.project-image{height:345px;position:relative;overflow:hidden;background:var(--surface);border-radius:3px}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.22,1,.36,1)}.project:hover .project-image img{transform:scale(1.035)}.paper{background:#e8e8e2;padding:24px}.paper img{object-fit:contain;mix-blend-mode:multiply}.accessories{padding:28px 45px}.project-badge{position:absolute;top:16px;left:16px;background:rgba(16,18,16,.88);padding:7px 11px;border-radius:2px;font: .75rem/1.3 'Courier New',monospace;color:var(--ink)}.project-open{position:absolute;bottom:16px;right:16px;width:38px;height:38px;border-radius:50%;background:var(--acid);color:var(--bg);display:grid;place-items:center;font-size:1.6rem;transition:transform .25s}.project:hover .project-open{transform:rotate(90deg)}.project-caption{margin-top:16px}.project-caption h3{font-size:1.1rem;letter-spacing:-.025em;font-weight:400;line-height:1.4}.project-caption>span{font:.75rem/1.5 'Courier New',monospace;color:var(--muted);display:block;margin-top:5px;letter-spacing:.035em}.work-note{font-size:.75rem;color:var(--muted);margin-top:32px;max-width:680px}.lab{padding:80px 0;background:#20241e;border-block:1px solid #3a4131}.lab h2 em{color:var(--acid)}.lab-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;border:1px solid #434b38;margin-top:40px}.lab-canvas{position:relative;min-height:470px;overflow:hidden;background:#11140f}canvas{width:100%;height:100%;position:absolute;touch-action:pan-y}.canvas-label{position:absolute;bottom:20px;left:20px;right:20px;display:flex;justify-content:space-between;gap:12px;font:.75rem/1.5 'Courier New',monospace;color:var(--muted);pointer-events:none}.lab-controls{border-left:1px solid #434b38;padding:30px;display:flex;flex-direction:column;align-items:stretch}.lab-controls h3{font-size:2.3rem;font-weight:400;line-height:1.1;letter-spacing:-.055em;margin:14px 0 28px}.lab-controls label{display:flex;justify-content:space-between;font-size:.875rem;margin:10px 0}.lab-controls output{color:var(--acid);font-family:'Courier New',monospace}.lab-controls input{width:100%;accent-color:var(--acid);height:20px;cursor:pointer;margin:0 0 16px}.palette{border:0;margin:0;padding:0;display:flex;gap:12px}.palette legend{font-size:.875rem;margin:8px 0 12px}.swatch{width:26px;height:26px;border-radius:50%;background:var(--swatch);border:3px solid #20241e;outline:1px solid transparent}.swatch.selected{outline-color:var(--ink)}.lab-actions{display:grid;gap:9px;margin-top:28px}.button-outline,.button-solid{display:inline-flex;justify-content:center;align-items:center;font-size:.875rem;padding:13px 15px;border-radius:2px;line-height:1.35;transition:background .2s}.button-outline{border:1px solid #697657;background:transparent}.button-outline:hover{background:#333b29}.button-solid{background:var(--acid);color:var(--bg)}.button-solid:hover{background:#e7ffa4}.lab-meta{font:.75rem/1.65 'Courier New',monospace;color:var(--muted);margin-top:20px}.code-details{margin-top:18px}.code-details summary{display:flex;justify-content:space-between;cursor:pointer;font-size:.875rem;list-style:none;padding:18px 0;border-bottom:1px solid #434b38}.code-details summary::-webkit-details-marker{display:none}.code-details summary span{font-size:1.2rem}.code-details[open] summary span{transform:rotate(45deg)}.code-content{display:grid;grid-template-columns:1fr 1.5fr;gap:35px;padding-top:22px}.code-content p{color:var(--muted);max-width:360px}.code-content pre{margin:0;overflow:auto;background:var(--bg);padding:24px;color:var(--acid);font:.875rem/1.7 'Courier New',monospace}.about{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:105px 0;border-bottom:1px solid var(--line)}.about h2{font-size:clamp(3rem,5vw,5.3rem);margin-top:22px}.about h2 em{color:var(--acid)}.text-link{display:inline-flex;margin-top:40px;padding-bottom:12px;border-bottom:1px solid var(--ink);font-size:.875rem;gap:36px;align-items:center}.text-link span{font:.75rem 'Courier New',monospace;color:var(--muted)}.text-link:hover{color:var(--acid);border-color:var(--acid)}.about-content>p{color:var(--muted);margin-bottom:20px}.about-content>.about-intro{font-size:1.45rem;line-height:1.45;color:var(--ink);letter-spacing:-.025em}.tool-list{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0}.tool-list span{font-size:.875rem;border:1px solid var(--line);padding:8px 13px;border-radius:2px}.about-timeline>div{display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--line);padding:18px 0;align-items:baseline}.about-timeline>div>span{font:.75rem 'Courier New',monospace;color:var(--muted)}.about-timeline p{line-height:1.35}.about-timeline small{display:block;color:var(--muted);font-size:.875rem;margin-top:6px}.contact{padding:74px 0 100px}.contact-row{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:24px}.contact h2{font-size:clamp(3.5rem,7vw,7.3rem)}.contact h2 em{color:var(--acid)}.contact-info{padding-bottom:7px}.contact-info p{color:var(--muted);margin-bottom:24px}.contact-info>a{font-size:clamp(1.3rem,2.4vw,2.2rem);letter-spacing:-.045em;border-bottom:1px solid var(--line);padding-bottom:8px;display:block}.contact-info>a:hover{color:var(--acid)}.copy-button{display:block;background:transparent;padding:0;margin-top:20px;color:var(--muted);font-size:.875rem}.copy-button:hover{color:var(--ink)}.copy-status{font-size:.875rem;color:var(--acid);min-height:20px;display:block;margin-top:8px}.footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:30px 0;gap:20px}.footer>span{font-size:.75rem;color:var(--muted)}.footer>span:last-child{font-family:'Courier New',monospace;letter-spacing:.08em}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--acid);color:var(--bg);padding:14px}.skip:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}dialog{max-width:1000px;width:calc(100% - 48px);max-height:90dvh;padding:0;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px}dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(7px)}.dialog-top{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:15px 26px;background:var(--bg);border-bottom:1px solid var(--line)}.close-dialog{height:40px;width:40px;background:var(--surface);border:1px solid var(--line);border-radius:50%;font-size:1.8rem}.close-dialog:hover{background:var(--acid);color:var(--bg)}.dialog-body{padding:32px}.dialog-body>p{max-width:700px;color:var(--muted);margin:18px 0 28px}.dialog-body h2{font-size:2.6rem}#dialog-gallery{display:grid;gap:18px}#dialog-gallery figure{margin:0}#dialog-gallery img{width:100%;background:#e8e8e2;border-radius:2px}#dialog-gallery figcaption{font-size:.875rem;color:var(--muted);padding:12px 0}.dialog-body .button-solid{margin-top:24px}.dialog-body>.dialog-credit{font-size:.75rem;margin:24px 0 0}.compare{position:relative;aspect-ratio:1.5;overflow:hidden;--split:50%}.compare img{position:absolute;inset:0;height:100%;object-fit:cover}.compare img:nth-child(2){clip-path:inset(0 calc(100% - var(--split)) 0 0)}.compare-line{position:absolute;left:var(--split);top:0;bottom:0;width:2px;background:var(--acid);pointer-events:none}.compare-labels{display:flex;justify-content:space-between;font-size:.875rem;color:var(--muted);margin:8px 0 16px}
@media(min-width:1600px){.header{padding-inline:max(52px,calc((100vw - 1440px)/2))}.project-image{height:390px}}@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header{padding-inline:32px}.header nav{gap:22px}.project-image{height:280px}.hero-second{white-space:normal}.about{gap:40px}.lab-shell{grid-template-columns:minmax(0,1fr) 260px}.lab-controls{padding:25px}.about-timeline>div{grid-template-columns:120px 1fr}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.header{padding:0 18px;height:82px;gap:14px}.brand-name{display:none}.brand-mark{font-size:2.3rem}.header nav{gap:18px;font-size:.875rem}.header nav>a:nth-child(3){display:none}.nav-contact{gap:0}.contact-dot{display:none}.hero{padding:32px 0 40px}.hero-location span{display:none}h1{font-size:clamp(3rem,10.2vw,5.5rem);margin-top:34px;line-height:1.06}.hero-bottom{margin-top:32px;gap:18px}.hero-bottom p{font-size:.875rem}.hero-index{display:none}.section-head{display:block}.section-head p{margin-top:20px}.work{padding:32px 0 55px}.filters{gap:7px;margin-top:24px}.filter{font-size:.875rem;padding:9px 13px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 16px}.project-wide{grid-column:span 2}.project-image{height:240px}.project-wide .project-image{height:330px}.project-caption h3{font-size:1rem}.project-caption>span{font-size:.75rem;letter-spacing:0}.project-badge{font-size:.75rem;left:10px;top:10px;padding:6px 8px}.paper{padding:18px 12px}.accessories{padding:30px}.lab{padding:50px 0}.lab-shell{grid-template-columns:1fr;margin-top:25px}.lab-canvas{min-height:360px}.lab-controls{border-left:0;border-top:1px solid #434b38;display:grid;grid-template-columns:1fr 1fr;column-gap:22px;padding:24px}.lab-controls>.eyebrow,.lab-controls h3,.lab-controls label,.lab-controls input,.lab-controls fieldset,.lab-controls .lab-actions,.lab-controls .lab-meta{grid-column:span 2}.lab-controls h3{font-size:2rem;margin-bottom:18px}.lab-controls h3 br{display:none}.lab-controls label{margin-top:0}.lab-actions{grid-template-columns:1fr 1fr;margin-top:22px}.lab-meta{margin-top:15px}.code-content{grid-template-columns:1fr;gap:20px}.code-content pre{font-size:.75rem;padding:18px}.about{grid-template-columns:1fr;gap:40px;padding:55px 0}.about h2{font-size:3.7rem}.about h2 br:nth-child(2){display:none}.about-intro{font-size:1.3rem!important}.text-link{margin-top:28px}.contact{padding:50px 0 60px}.contact-row{display:block}.contact h2{font-size:4.2rem}.contact-info{margin-top:30px}.contact-info>a{font-size:1.8rem;width:fit-content}.footer{flex-wrap:wrap;padding:24px 0}.footer>span:last-child{display:none}.dialog-body{padding:24px 18px}.dialog-top{padding:12px 18px}.dialog-body h2{font-size:2rem}dialog{width:calc(100% - 24px)}.canvas-label{font-size:.75rem;left:16px;right:16px}.canvas-label span:last-child{max-width:150px;text-align:right}}
@media(max-width:420px){.header nav{gap:14px}.header nav>a:last-child{font-size:.75rem}.project-grid{grid-template-columns:1fr}.project-wide{grid-column:span 1}.project-image,.project-wide .project-image{height:280px}.hero-location{font-size:.75rem}.hero-bottom p br{display:none}.hero-bottom p{max-width:220px}.lab-actions{grid-template-columns:1fr}.about h2{font-size:3.2rem}.contact h2{font-size:3.7rem}}
[hidden]{display:none!important}
.about-heading,.about-content,.code-content,.code-content pre,.lab-controls{min-width:0}.code-content pre{max-width:100%}h1,h2,h3{overflow-wrap:anywhere}
@media(max-width:760px){.header{height:auto;min-height:82px;flex-wrap:wrap;padding-block:15px}.header nav{flex-wrap:wrap}.hero-bottom{flex-wrap:wrap}h1{font-size:clamp(2rem,10.2vw,5.5rem)}.about h2{font-size:clamp(2rem,13vw,3.7rem)}.about-timeline>div{grid-template-columns:minmax(0,120px) minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.project-cta{display:inline-flex;align-items:center;gap:30px;padding:19px 22px;background:var(--acid);color:var(--bg);border:1px solid var(--acid);border-radius:2px;font-size:.875rem;font-weight:500;line-height:1.4;transition:background .2s,border-color .2s;flex-shrink:0}
.project-cta:hover{background:#e7ffa4;border-color:#e7ffa4}.cta-count{font:.75rem/1.5 'Courier New',monospace;border-left:1px solid #91ad43;padding-left:20px}
.compare{user-select:none}.compare-handle{position:absolute;left:clamp(24px,var(--split),calc(100% - 24px));top:50%;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--acid);color:var(--bg);font-size:1.4rem;line-height:1;cursor:ew-resize;touch-action:none;padding:0;box-shadow:0 2px 12px #0003}.compare-handle:hover,.compare-handle.dragging{background:#e7ffa4}.compare-handle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
@media(max-width:760px){.project-cta{padding:16px 19px;gap:22px}}
.catalog-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:44px 25px 22px;background:#d9dad3}.catalog-preview img{width:100%;height:100%;object-fit:contain;min-height:0;box-shadow:0 4px 18px #0002}.catalog-preview img:hover{transform:none}@media(max-width:760px){.catalog-preview{gap:10px;padding:42px 16px 22px}}@media(max-width:420px){.catalog-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-preview>img:nth-child(3){display:none}}

.ai-tools .tool-list{margin-top:12px}
