:root{--bg:#E5E4E0;--panel:#EFEEEB;--panel2:#D9D8D3;--line:#BFBEB8;--line-strong:#16181A;--text:#16181A;--muted:#6B6A65;--concrete:#9A9994;--acc:#5B1FE0;--acc-bright:#7C00FF;--mark:#16181A;--mark-bright:#16181A;--dot:rgba(40,42,46,.05);--codebg:#DDDCD7;--rulebg:#15161A;--w-405:#7C00FF;--w-488:#00D6FF;--w-511:#00FF45;--w-532:#00FF00;--w-578:#FFBF00;--w-633:#FF0000;--spectral-gradient:linear-gradient(90deg, #000000 0%, #000000 1.6%, #00173A 3.1%, #00116E 4.7%, #400099 6.2%, #6C00BC 7.8%, #8500D8 9.4%, #8F00ED 10.9%, #8D00FA 12.5%, #8600FF 14.1%, #8100FF 15.6%, #8300FF 17.2%, #8700FF 18.8%, #8100FF 20.3%, #7500FF 21.9%, #6200FF 23.4%, #3E00FF 25%, #0035FF 26.6%, #0065FF 28.1%, #008BFF 29.7%, #00B0FF 31.2%, #00D5FF 32.8%, #00F7FF 34.4%, #00FFEB 35.9%, #00FFD7 37.5%, #00FFC7 39.1%, #00FFBB 40.6%, #00FFB1 42.2%, #00FFA8 43.8%, #00FFA0 45.3%, #00FF97 46.9%, #00FF8B 48.4%, #00FF7A 50%, #00FF5B 51.6%, #2DFF00 53.1%, #7CFF00 54.7%, #ACFF00 56.2%, #D7FF00 57.8%, #FFFE00 59.4%, #FFD900 60.9%, #FFBA00 62.5%, #FF9F00 64.1%, #FF8700 65.6%, #FF6F00 67.2%, #FF5700 68.8%, #FF3B00 70.3%, #FF1300 71.9%, #FF0029 73.4%, #FF003A 75%, #FF0043 76.6%, #FF0049 78.1%, #FF004D 79.7%, #FF004E 81.2%, #FF004F 82.8%, #FC004D 84.4%, #F50048 85.9%, #E90041 87.5%, #DA0036 89.1%, #C70028 90.6%, #B00013 92.2%, #950D00 93.8%, #761900 95.3%, #531800 96.9%, #2A0D00 98.4%, #000000 100%)}[data-theme=argon]{--bg:#070A0D;--panel:#0F151B;--panel2:#151D24;--line:#243038;--text:#E6EDF1;--muted:#93A4AE;--acc:#00C0E5;--acc-bright:#00D6FF;--mark:#6E8794;--mark-bright:#8FA9B6;--dot:rgba(120,150,165,.13);--codebg:#0B1015;--rulebg:#000}[data-theme=cuvapor]{--bg:#060A07;--panel:#0D130E;--panel2:#131B13;--line:#243224;--text:#E8F0E6;--muted:#93A78F;--acc:#00E53D;--acc-bright:#00FF45;--mark:#E5AB00;--mark-bright:#FFBF00;--dot:rgba(140,170,140,.13);--codebg:#0A0F0B;--rulebg:#000}[data-theme=kapton]{--bg:#0C0A07;--panel:#15110B;--panel2:#1C1710;--line:#33291B;--text:#EFE7D9;--muted:#A6977E;--acc:#E2B26A;--acc-bright:#F2C77F;--mark:#B97F2E;--mark-bright:#D49538;--dot:rgba(190,160,110,.12);--codebg:#100D08;--rulebg:#000}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Helvetica Neue,Helvetica,Arial,Liberation Sans,sans-serif;font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Consolas,monospace}a{color:var(--text);text-decoration:none}a:hover{color:var(--acc);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.wrap{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}hr,.rule{border:none;border-top:1px solid var(--line-strong);margin:0}.rule-soft{border-top:1px solid var(--line)}.site-header{display:flex;justify-content:space-between;align-items:flex-end;padding:26px 0 16px;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--line-strong)}.wordmark{font-weight:700;font-size:1.06rem;letter-spacing:.04em;color:var(--text);text-transform:uppercase}a.wordmark:hover{text-decoration:none;opacity:.7}.nav{display:flex;gap:30px}.nav a{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:400;padding-bottom:2px;border-bottom:1px solid transparent}.nav a:hover{color:var(--acc);text-decoration:none;border-bottom-color:var(--acc)}.nav a[aria-current=page],.nav a.active{color:var(--text);border-bottom-color:var(--acc)}.hero{padding:clamp(40px,7vw,84px) 0 0}.eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}.hero h1{font-weight:700;font-size:clamp(2.6rem,7.2vw,5.4rem);line-height:1.02;letter-spacing:-.025em;margin:0 0 24px;max-width:18ch}.bio{color:var(--text);max-width:60ch;margin:0 0 38px;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5}.spectral{max-width:780px;padding-top:26px}.spectral-bar{position:relative;height:9px;display:flex}.spectral-bar .vis{width:44.44%;background:var(--spectral-gradient)}.spectral-bar .ir{flex:1;background:linear-gradient(90deg,#1b0d05,#0e0e11)}.spectral-bar .tick{position:absolute;top:-7px;height:7px;width:1px;background:var(--muted)}.spectral-bar .tick span{position:absolute;bottom:9px;left:50%;transform:translate(-50%);font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.05em;color:var(--text);white-space:nowrap}.specrule{display:none}.section-label{display:flex;align-items:baseline;gap:14px;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 22px;padding-top:16px;border-top:1px solid var(--line-strong)}.section-label .n{color:var(--acc);font-weight:600}.section-label a{font-weight:400;color:var(--muted);margin-left:auto}.section-label a:hover{color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:52px}.card{background:var(--bg);padding:0;overflow:hidden}.card a.cardlink{display:block;color:inherit}.card a.cardlink:hover{text-decoration:none}.card a.cardlink:hover h3{text-decoration:underline;text-underline-offset:3px}.thumbwrap{position:relative;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--panel2);border-bottom:1px solid var(--line)}.thumbwrap img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s ease}.card:hover .thumbwrap img{transform:scale(1.04)}.thumbwrap svg{display:block;width:auto;height:52%;opacity:.85}.card .pad{padding:16px 18px 20px}.tag{display:inline-block;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.card h3{font-weight:600;font-size:1.12rem;line-height:1.22;letter-spacing:-.01em;margin:0 0 8px}.card p{font-size:.92rem;color:var(--muted);margin:0;line-height:1.5}.prose{max-width:68ch}.prose h1{font-weight:700;font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.06;letter-spacing:-.022em;margin:0 0 14px}.prose h2{font-weight:700;font-size:1.55rem;margin:2.4em 0 .5em;letter-spacing:-.014em}.prose h3{font-weight:600;font-size:1.18rem;margin:1.9em 0 .4em}.prose p{margin:0 0 1.15em}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.3em}.prose li{margin:.3em 0}.prose img{max-width:100%;height:auto;border:1px solid var(--line);margin:.5em 0}.prose figure{margin:1.6em 0}.prose figcaption,.figcap{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.05em;color:var(--muted);margin-top:8px;border-left:2px solid var(--line-strong);padding:2px 0 2px 10px}.prose code{font-family:JetBrains Mono,monospace;font-size:.85em;background:var(--codebg);padding:.08em .35em}.prose pre{background:var(--codebg);border:1px solid var(--line);padding:16px 18px;overflow-x:auto;margin:0 0 1.3em;line-height:1.55}.prose pre code{background:none;padding:0;font-size:12.5px}.prose hr{border-top:1px solid var(--line-strong);margin:2.4em 0}.prose blockquote{margin:0 0 1.15em;padding:2px 0 2px 18px;border-left:2px solid var(--line-strong);color:var(--muted)}.meta-line{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 30px}.meta-line .tag{margin:0 10px 0 0}.cv{max-width:880px;margin-top:6px}.cv-row{display:grid;grid-template-columns:170px 1fr;gap:28px;padding:20px 0;border-top:1px solid var(--line-strong)}.cv-row:last-child{border-bottom:1px solid var(--line-strong)}.cv-label{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-top:3px}.cv-body{font-size:1rem;line-height:1.5}.cv-body p{margin:0 0 .5em}.cv-body p:last-child{margin:0}.cv-item{display:flex;flex-wrap:wrap;gap:0 10px;align-items:baseline}.cv-item .role{font-weight:600}.cv-item .meta{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.08em;color:var(--muted)}.cv-links a{display:inline-block;margin:0 18px 6px 0}@media(max-width:620px){.cv-row{grid-template-columns:1fr;gap:6px}}.callout{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--line-strong);padding:14px 18px;margin:0 0 1.3em;font-size:.95rem}.callout .lbl{display:block;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);font-weight:600;margin-bottom:6px}.spec-table{width:100%;border-collapse:collapse;font-family:JetBrains Mono,monospace;font-size:12.5px;margin:0 0 1.5em}.spec-table td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}.spec-table tr:last-child td{border-bottom:1px solid var(--line)}.spec-table td:first-child{color:var(--muted);letter-spacing:.06em;width:34%;text-transform:uppercase;font-size:10.5px}.site-footer{padding:40px 0 64px;margin-top:48px;border-top:1px solid var(--line-strong)}.foot-line{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.foot-line a{color:var(--muted)}.foot-line a:hover{color:var(--text)}.foot-line .rev b{color:var(--text);font-weight:600}.tool-panel{background:var(--panel);border:1px solid var(--line);padding:20px 22px;margin-bottom:18px}.tool-panel h2{font-weight:600;font-size:1.12rem;letter-spacing:-.01em;margin:0 0 14px}.btn{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--text);background:transparent;border:1px solid var(--line-strong);padding:9px 15px}.btn:hover{background:var(--text);color:var(--bg)}.btn.primary{background:var(--acc);color:#fff;border-color:var(--acc);font-weight:600}.btn.primary:hover{background:var(--acc-bright);border-color:var(--acc-bright)}input[type=text],input[type=number],textarea,select{font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--text);background:var(--panel);border:1px solid var(--line-strong);padding:8px 10px}input:focus,textarea:focus,select:focus{outline:2px solid var(--text);outline-offset:1px}.note{font-size:.85rem;color:var(--muted)}@media(max-width:640px){.nav{gap:18px}.hero h1{font-size:clamp(2rem,11vw,3rem)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.pt-grid{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));grid-auto-rows:30px;gap:3px;margin:14px 0 16px}.pt-cell{font-family:JetBrains Mono,monospace;font-size:10.5px;padding:0;cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--line)}.pt-cell:hover{border-color:var(--text)}.pt-cell[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}.sv-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:11.5px;letter-spacing:.04em}.sv-controls label{display:flex;gap:5px;align-items:center;color:var(--muted);cursor:pointer}.sv-chip{font-family:JetBrains Mono,monospace;font-size:11px;cursor:pointer;background:var(--text);color:var(--bg);border:1px solid var(--text);padding:4px 9px}.sv-canvas-wrap{position:relative;border:1px solid var(--line-strong);overflow:hidden;background:var(--rulebg)}.sv-canvas-wrap canvas{display:block;width:100%;touch-action:none}.sv-tooltip{position:absolute;display:none;pointer-events:none;z-index:3;max-width:240px;background:var(--panel);color:var(--text);border:1px solid var(--line-strong);padding:7px 10px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5}.sv-findtable{width:100%;border-collapse:collapse;font-family:JetBrains Mono,monospace;font-size:12px;margin-top:8px}.sv-findtable th{text-align:left;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:6px 10px;border-bottom:1px solid var(--line-strong)}.sv-findtable td{padding:5px 10px;border-bottom:1px solid var(--line)}.sv-findtable tr[data-lam]{cursor:pointer}.sv-findtable tr[data-lam]:hover td{background:var(--panel)}.cal-results td{font-variant-numeric:tabular-nums}.cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:820px){.cal-grid{grid-template-columns:1fr}.pt-grid{grid-auto-rows:24px}.pt-cell{font-size:9px}}
