@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}:root{color-scheme:dark;--color-bg: #050505;--color-surface: transparent;--color-surface-raised: rgba(255, 255, 255, .03);--color-surface-hover: rgba(255, 255, 255, .05);--color-text: #f0f0f0;--color-text-secondary: #aaaaaa;--color-text-dim: #999999;--color-accent: #ffffff;--color-accent-hover: #cccccc;--color-accent-subtle: rgba(255, 255, 255, .08);--color-border: #505050;--color-border-subtle: #343434;--color-overlay: rgba(5, 5, 5, .9);--color-success: #88cc88;--color-error: #cc8888;--color-logo-filter: invert(1);--color-header-bg: rgba(5, 5, 5, .85);--color-mobile-bg: rgba(5, 5, 5, .98);--font-display: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-body: var(--font-display);--font-mono: var(--font-display);--font-nav: var(--font-display);--size-site-name: 19px;--size-text: 14px;--size-section: 13px;--size-meta: 12.5px;--year-col: 4.75rem;--space-1: 4px;--space-2: 6px;--space-3: 10px;--space-4: 14px;--space-5: 20px;--space-6: 28px;--space-7: 32px;--space-8: 24px;--space-9: 32px;--space-10: 44px;--max-width: 1140px;--gutter: 32px;--header-height: 0px;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--ease-out: cubic-bezier(.16, 1, .3, 1);--transition-fast: .15s var(--ease-out);--transition-base: .3s var(--ease-out);--transition-slow: .6s var(--ease-out)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-padding-top:40px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--color-bg)}body{font-family:var(--font-body);font-size:var(--size-text);line-height:1.5;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:1.4;letter-spacing:0}h1{font-size:var(--size-site-name)}h2,h3,h4{font-size:var(--size-text)}strong,b{font-weight:500}p{max-width:72ch;font-weight:400}a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}.font-mono{font-family:var(--font-mono)}.font-display{font-family:var(--font-display)}.text-xs{font-size:.65rem}.text-sm{font-size:.8rem}.text-dim{color:var(--color-text-secondary)}.text-accent{color:var(--color-accent)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter)}.section{padding:var(--space-8) 0}.section-sm{padding:var(--space-6) 0}.site-layout{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:56px;align-items:start;padding-top:40px;padding-bottom:56px}.site-sidebar{position:sticky;top:40px;max-height:calc(100vh - 60px);overflow-y:auto;font-size:var(--size-meta)}.site-main{min-width:0}.site-main .container{max-width:none;padding-left:0;padding-right:0}.site-name{margin:0 0 4px;font-size:var(--size-site-name);letter-spacing:.01em}.site-name a{text-decoration:none}.site-name a:hover{text-decoration:underline}.site-subtitle{margin:0;color:var(--color-text-secondary);line-height:1.4}.site-bio{margin:14px 0 0;line-height:1.45}.site-link-list{margin:0;padding:0;list-style:none;line-height:1.9}.site-link-list a[aria-current=page]{text-decoration-color:currentColor;font-weight:500}.site-menu,.site-external-links{margin-top:22px}.site-menu,.site-external-links{display:flex;flex-direction:column;gap:4px}.site-language{margin-top:22px;color:var(--color-text-secondary)}.site-language [aria-current=true]{color:var(--color-text)}.site-language button{border:0;padding:0;background:none;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.site-language button:hover{color:var(--color-text);text-decoration-color:currentColor}a.ext:after{content:" ↗" / "";display:inline-block;color:var(--color-text-secondary);text-decoration:none}.site-footer{margin:72px 0 24px;color:var(--color-text-secondary);font-size:var(--size-meta);line-height:1.9}.index-section{margin-top:56px}.index-section:first-child{margin-top:0}.index-section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;padding-bottom:10px;border-bottom:1px solid var(--color-text);font-size:var(--size-section)}.index-section-heading h2{font-size:var(--size-section)}.index-section-heading a{text-decoration:none}.index-section-heading a:hover{text-decoration:underline}.index-section-heading>a{color:var(--color-text-secondary);font-size:var(--size-meta);margin-left:auto}.index-intro{margin-top:18px}.index-intro-secondary{margin-top:10px;color:var(--color-text-secondary)}.index-section-intro{margin:18px 0 10px}.index-entry,.index-rowlink{border-bottom:1px solid var(--color-border-subtle)}.index-entry>summary,.index-rowlink>a{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px;padding:9px 0;cursor:pointer;list-style:none;touch-action:manipulation}.index-entry>summary::-webkit-details-marker,.index-entry>summary::marker,.index-full>summary::-webkit-details-marker,.index-full>summary::marker{display:none}.index-year{flex:0 0 var(--year-col);color:var(--color-text-secondary);font-size:var(--size-meta);white-space:nowrap}.index-entry-title{font-weight:500}.index-descriptor{color:var(--color-text-secondary)}.index-marker{margin-left:auto;color:var(--color-text-secondary);white-space:nowrap}.index-entry>summary .index-marker:after,.index-full>summary .index-marker:after{content:"[+]"}.index-entry[open]>summary .index-marker:after,.index-full[open]>summary .index-marker:after{content:"[−]"}.index-rowlink>a{text-decoration:none}.index-rowlink>a:hover .index-entry-title{text-decoration:underline}.index-entry-body{padding:2px 0 18px}.index-synopsis{margin:0 0 10px;max-width:72ch}.index-facts{display:grid;grid-template-columns:9.5rem minmax(0,1fr);column-gap:14px;row-gap:2px;max-width:640px;font-size:var(--size-meta)}.index-facts dt{color:var(--color-text-secondary)}.index-facts dd{margin:0;overflow-wrap:anywhere}.index-full>summary{display:inline-block;margin-top:12px;cursor:pointer;list-style:none}.index-full>summary .index-marker{margin-left:0}.index-prose{max-width:72ch;margin-top:12px;line-height:1.55}.index-prose p{margin-bottom:10px}.index-service-group{margin:10px 0 14px;max-width:72ch}.index-service-group h3{margin-bottom:6px;font-size:var(--size-meta);color:var(--color-text-secondary)}.index-service-group ul{padding-left:1.4em}.index-service-group li{margin:2px 0}.index-inline-link{display:inline-block;margin-top:2px}.index-contact-list{margin:18px 0 0;padding:0;list-style:none}.index-contact-list li{display:flex;gap:14px;line-height:2}.index-contact-list li>span{flex:0 0 9.5rem;color:var(--color-text-secondary);font-size:var(--size-meta)}.index-filters{display:flex;flex-wrap:wrap;gap:2px 16px;margin:10px 0 6px}.index-filters button{padding:0;border:0;background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--size-meta);cursor:pointer}.index-filters button:hover,.index-filters button[aria-pressed=true]{color:var(--color-text);text-decoration:underline;text-underline-offset:3px}.index-load-more{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:16px;color:var(--color-text-secondary);font-size:var(--size-meta)}.index-load-more button{padding:0;border:0;background:none;color:var(--color-text);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.index-load-more button:hover{text-decoration-thickness:2px}.index-empty{padding:18px 0;color:var(--color-text-secondary)}.project-entry-image{width:100%;max-width:640px;height:auto;margin-top:18px}.project-entry-audio{display:block;width:100%;max-width:640px;height:120px;margin-top:18px;border:0}.detail-list{margin:0;padding:0;list-style:none}.detail-list li{display:flex;align-items:baseline;column-gap:14px;padding:9px 0;border-bottom:1px solid var(--color-border-subtle)}.detail-list li>span:last-child{min-width:0}.about-prose{margin-top:18px}.about-details,.contact-facts{margin-top:24px;padding:16px 0;border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle)}.plain-form{max-width:72ch;margin-top:18px}.plain-form fieldset{min-width:0;padding:0;border:0}.plain-form fieldset:disabled{opacity:.65}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.project-permalink{margin-top:12px;font-size:var(--size-meta)}.plain-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.plain-form-field{display:grid;grid-template-columns:9.5rem minmax(0,1fr);column-gap:14px;align-items:start;padding:10px 0;border-bottom:1px solid var(--color-border-subtle)}.plain-form-field label{padding-top:5px;color:var(--color-text-secondary);font-size:var(--size-meta)}.plain-form-field input,.plain-form-field select,.plain-form-field textarea{width:100%;min-width:0;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--size-meta);outline:none}.plain-form-field textarea{min-height:110px;resize:vertical}.plain-form-field select{cursor:pointer}.plain-form-field select option{background:var(--color-bg);color:var(--color-text)}.plain-form-field:focus-within{border-bottom-color:var(--color-text)}.plain-form-field input:focus-visible,.plain-form-field select:focus-visible,.plain-form-field textarea:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.plain-form-actions{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:18px}.plain-form-actions button{padding:0;border:0;background:none;color:var(--color-text);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.plain-form-actions button:hover{text-decoration-color:currentColor}.plain-form-actions button:disabled{opacity:.5;cursor:not-allowed}.form-status{margin-top:14px}.form-status.success{color:var(--color-success)}.form-status.error{color:var(--color-error)}@media(max-width:768px){:root{--year-col: 4rem}.index-facts{grid-template-columns:7.5rem minmax(0,1fr)}}@media(max-width:480px){:root{--year-col: 3.4rem}.index-facts{grid-template-columns:1fr}.index-facts dd{margin-bottom:8px}.index-contact-list li{display:block}.index-contact-list li>span{display:inline-block;min-width:7.5rem}.plain-form-field{grid-template-columns:1fr}.plain-form-field input,.plain-form-field select,.plain-form-field textarea{font-size:16px}}@media(max-width:960px){.site-layout{grid-template-columns:190px minmax(0,1fr);column-gap:40px}}@media(max-width:860px){:root{--gutter: 24px}html{scroll-padding-top:24px}.site-layout{display:block;padding-top:28px;padding-bottom:40px}.site-sidebar{position:static;max-height:none;overflow-y:visible;margin-bottom:44px;padding-bottom:28px;border-bottom:1px solid var(--color-border-subtle)}.site-menu,.site-external-links{display:block;margin-top:14px}.site-link-list li{display:inline}.site-link-list li+li:before{content:" / ";color:var(--color-text-secondary)}.site-language{margin-top:14px}}@media(max-width:480px){:root{--gutter: 16px}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);background:transparent;color:var(--color-text);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap}.btn:hover,.btn-primary{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.btn-primary:hover{background:transparent;color:var(--color-text);border-color:var(--color-text)}.btn-lg{font-size:.8rem;padding:var(--space-3) var(--space-5);letter-spacing:.08em}.btn:disabled,button.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:transparent;border:1px solid var(--color-border-subtle);padding:var(--space-4);transition:border-color var(--transition-base),background var(--transition-base);contain:layout style}.card:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.card-img-wrapper{overflow:hidden;border-bottom:1px solid var(--color-border-subtle);margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-3)}.card-img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.1);transition:filter var(--transition-slow),transform var(--transition-slow);display:block}img[loading=lazy]{content-visibility:auto}.card:hover .card-img,.project-card:hover .card-img{filter:grayscale(0%) contrast(1);transform:scale(1.03)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--color-border-subtle);border:1px solid var(--color-border-subtle)}.grid-2>*{background:var(--color-bg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-border-subtle);border:1px solid var(--color-border-subtle)}.grid-3>*{background:var(--color-bg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-border-subtle);border:1px solid var(--color-border-subtle)}.grid-4>*{background:var(--color-bg)}@media(max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr!important}.container{padding-left:var(--gutter);padding-right:var(--gutter)}.about-facts{grid-template-columns:1fr!important}}.tag{display:inline-block;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);padding:3px var(--space-2);background:transparent;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}button.tag:hover{color:var(--color-text);border-color:var(--color-border)}.tag-active,button.tag.tag-active{color:var(--color-bg);background:var(--color-text);border-color:var(--color-text)}.status-badge{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;padding:3px var(--space-2);border:1px solid var(--color-border);color:var(--color-text)}.divider{border:none;border-top:1px solid var(--color-border-subtle);margin:var(--space-6) 0}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fade-in .8s var(--ease-out) both}.form-group{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) 0;border-left:2px solid transparent;padding-left:var(--space-4);transition:border-color var(--transition-base)}.form-group:focus-within{border-left-color:var(--color-text)}.form-label{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim);transition:color var(--transition-fast)}.form-group:focus-within .form-label{color:var(--color-text)}.form-input,.form-textarea,.form-select{font-family:var(--font-body);font-size:1rem;font-weight:300;padding:var(--space-2) 0;background:transparent;border:none;border-bottom:1px solid var(--color-border-subtle);color:var(--color-text);outline:none;border-radius:0;transition:border-color var(--transition-fast);width:100%}.form-input::placeholder,.form-textarea::placeholder{color:#f0f0f026;font-weight:300}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%23666'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;padding-right:24px}.form-select option{background:var(--color-bg);color:var(--color-text)}.form-textarea{min-height:120px;resize:vertical;line-height:1.6}.form-input:focus,.form-textarea:focus,.form-select:focus{border-bottom-color:var(--color-text)}::selection{background:var(--color-text);color:var(--color-bg)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}.btn:focus-visible,button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:1000;padding:var(--space-2) var(--space-4);background:var(--color-text);color:var(--color-bg);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;transform:translateY(-200%);transition:transform var(--transition-fast)}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);color:var(--color-bg)}img{display:block;max-width:100%;height:auto}@media(max-width:768px){.modal-content{flex-direction:column!important;overflow-y:auto!important}.modal-img-section{width:100%!important;min-height:200px!important;height:200px!important}.modal-info-section{width:100%!important}.modal-img-section+.modal-info-section{border-top:1px solid var(--color-border-subtle)}}@media(max-width:768px){.contact-grid,.contact-form-top{grid-template-columns:1fr!important}.contact-grid>*{min-width:0}.contact-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root{color-scheme:light;--color-bg: #fff;--color-text: #000;--color-text-secondary: #444;--color-border-subtle: #bbb}.site-layout{display:block;padding:0}.site-sidebar{position:static;max-height:none;overflow:visible;margin-bottom:24px}.site-menu,.site-language,.site-external-links,.skip-link,.plain-form,.index-filters,.index-load-more button,.index-marker,.project-entry-image,.project-entry-audio{display:none!important}.index-entry::details-content,.index-full::details-content{content-visibility:visible;display:block}details:not([open])>*:not(summary){content-visibility:visible;display:block!important}.index-section{margin-top:24px}.index-entry>summary{break-after:avoid}.index-entry-body{break-inside:avoid}a{color:#000}}
