.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:48px;margin-bottom:56px;padding-bottom:32px;display:flex}.section-head-left{min-width:0}.section-index{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;margin-bottom:16px;font-size:11px}.section-index b{color:var(--text);margin-right:10px;font-weight:500}.section-title{letter-spacing:-.02em;max-width:720px;font-size:clamp(36px,4.2vw,56px);line-height:1.05}.section-title em{color:var(--text-dim);font-style:normal}.section-sub{color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;text-align:right;max-width:240px;font-size:11px;line-height:1.6}@media (width<=720px){.section-head{flex-direction:column;gap:24px;margin-bottom:36px}.section-sub{text-align:left}}.tile{background:var(--tile-bg);-webkit-backdrop-filter:var(--tile-blur);border:var(--tile-border);border-radius:var(--tile-radius);padding:var(--tile-pad);box-shadow:var(--tile-shadow);transition:border-color var(--dur-tile) var(--ease-out), box-shadow var(--dur-tile) var(--ease-out), background var(--dur-tile) var(--ease-out);isolation:isolate;flex-direction:column;width:100%;min-width:0;display:flex;position:relative;overflow:hidden}.tile:before{content:"";border-radius:inherit;pointer-events:none;box-shadow:var(--tile-inner-highlight);z-index:0;position:absolute;inset:0}.tile>*{z-index:1;position:relative}.tile:hover{border-color:var(--tile-border-hover);background:var(--tile-bg-hover);box-shadow:var(--tile-shadow-hover)}.tile-head{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;font-size:10px;display:flex}.tile-head-eyebrow{align-items:center;gap:8px;min-width:0;display:flex}.tile-head-dot{background:var(--text-faint);flex-shrink:0;width:4px;height:4px}.tile-head-meta{color:var(--text-dim);white-space:nowrap}.tile-body{flex-direction:column;flex:1;min-width:0;display:flex}.arch-title{margin-bottom:12px;font-size:clamp(22px,2vw,28px);line-height:1.1}.arch-body{color:var(--text-dim);max-width:560px;margin-bottom:24px;line-height:1.6}.arch-diagram{border:1px solid var(--line);background:#0f141980;border-radius:2px;margin-bottom:20px;padding:16px;overflow-x:auto}.arch-diagram svg{min-width:480px;display:block}.arch-stack{flex-wrap:wrap;gap:8px;margin-top:auto;list-style:none;display:flex}.arch-stack-pill{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--line);border-radius:2px;padding:5px 10px;font-size:10px}.term-frame{border:1px solid var(--line);background:#0a0e1299;border-radius:3px;flex-direction:column;flex:1;display:flex;overflow:hidden}.term-bar{border-bottom:1px solid var(--line);background:#141a2099;align-items:center;gap:12px;padding:8px 12px;display:flex}.term-dots{gap:6px;display:inline-flex}.term-dots span{background:var(--line-bright);border-radius:50%;width:9px;height:9px;display:inline-block}.term-dots span:first-child{background:oklch(55% .12 30)}.term-dots span:nth-child(2){background:oklch(65% .11 80)}.term-dots span:nth-child(3){background:oklch(55% .1 145)}.term-filename{color:var(--text-dim);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.term-tty{color:var(--text-faint);letter-spacing:.1em;font-size:10px}.term-body{white-space:pre-wrap;word-break:break-word;flex-direction:column;flex:1;margin:0;padding:16px 18px;font-size:12px;line-height:1.7;display:flex}.term-line{display:block}.term-line-prompt{color:var(--text)}.term-line-output{color:var(--text-dim)}.term-line-emphasis{color:var(--accent)}.term-line-separator{color:var(--text-faint);margin:4px 0}.meth-title{margin-bottom:12px;font-size:clamp(20px,1.8vw,26px);line-height:1.1}.meth-body{color:var(--text-dim);max-width:520px;margin-bottom:22px;line-height:1.6}.meth-kv{border-top:1px solid var(--line);flex-direction:column;margin-top:auto;display:flex}.meth-kv-row{border-bottom:1px solid var(--line);letter-spacing:.05em;justify-content:space-between;padding:10px 0;font-size:11px;display:flex}.meth-kv-row dt{color:var(--text-faint);text-transform:uppercase;letter-spacing:.15em;font-size:10px}.meth-kv-row dd{color:var(--text-dim)}.meth-kv-row.is-emphasized dd{color:var(--accent)}.meth-steps{flex-wrap:wrap;gap:8px;margin-top:auto;list-style:none;display:flex}.meth-step{border:1px solid var(--line);background:#0f141966;border-radius:2px;flex-direction:column;flex:1;gap:6px;min-width:110px;padding:10px 12px;display:flex}.meth-step-index{color:var(--text-faint);letter-spacing:.2em;font-size:9px}.meth-step-label{color:var(--text);text-transform:lowercase;font-size:11px}.next-title{margin-bottom:18px;font-size:clamp(20px,1.8vw,26px);line-height:1.1}.next-list{flex-direction:column;gap:12px;margin-top:auto;list-style:none;display:flex}.next-item{border-bottom:1px solid var(--line);color:var(--text-dim);grid-template-columns:24px 1fr;align-items:baseline;gap:10px;padding-bottom:12px;font-size:13px;line-height:1.55;display:grid}.next-item:last-child{border-bottom:0}.next-num{color:var(--text-faint);letter-spacing:.15em;font-size:10px}.met-title{margin-bottom:18px;font-size:clamp(20px,1.8vw,26px);line-height:1.1}.met-rows{flex-direction:column;gap:0;margin-top:auto;list-style:none;display:flex}.met-row{border-bottom:1px solid var(--line);grid-template-columns:18px 1fr auto;align-items:baseline;gap:12px;padding:12px 0;display:grid}.met-row:last-child{border-bottom:0}.met-arrow{font-family:var(--mono);text-align:center;font-size:13px}.met-arrow-up{color:oklch(70% .13 145)}.met-arrow-down{color:oklch(65% .14 30)}.met-arrow-flat{color:var(--text-faint)}.met-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em;font-size:11px}.met-value{color:var(--text);font-size:14px}.dv-title{margin-bottom:12px;font-size:clamp(22px,2vw,28px);line-height:1.1}.dv-body{color:var(--text-dim);max-width:560px;margin-bottom:22px;line-height:1.6}.dv-canvas{border:1px solid var(--line);background-color:#0000;background-image:linear-gradient(#e8eaf006 1px,#0000 1px),linear-gradient(90deg,#e8eaf006 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:32px 32px,32px 32px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-radius:2px;margin-bottom:18px;padding:18px 20px;overflow-x:auto}.dv-canvas svg{width:100%;height:auto;display:block}.dv-meta{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0;margin-top:auto;display:grid}.dv-meta-row{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:12px 14px 12px 0;display:flex}.dv-meta-row:last-child{border-right:0}.dv-meta-row dt{color:var(--text-faint);letter-spacing:.18em;text-transform:uppercase;font-size:9px}.dv-meta-row dd{color:var(--text);font-size:14px}.nb-frame{border:1px solid var(--line);background:#0a0e128c;border-radius:3px;flex-direction:column;flex:1;display:flex;overflow:hidden}.nb-bar{border-bottom:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);background:#141a2099;justify-content:space-between;padding:8px 14px;font-size:10px;display:flex}.nb-bar-name{color:var(--text-dim)}.nb-cells{flex-direction:column;display:flex}.nb-cell{border-bottom:1px solid var(--line);grid-template-columns:60px 1fr;align-items:start;gap:12px;padding:12px 14px;display:grid}.nb-cell:last-child{border-bottom:0}.nb-gutter{color:var(--text-faint);letter-spacing:.05em;white-space:nowrap;padding-top:2px;font-size:10px}.nb-cell-md .nb-gutter{color:var(--accent-dim);text-transform:uppercase;letter-spacing:.18em}.nb-md{color:var(--text);font-size:15px;line-height:1.5}.nb-code{color:var(--text);border-left:2px solid var(--line-bright);white-space:pre-wrap;word-break:break-word;background:#0f141980;border-radius:0 2px 2px 0;padding:8px 12px;font-size:12px;line-height:1.7}.nb-cell-out{background:#0f141940}.nb-out{color:var(--text-dim);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.6}.nb-cell-out .nb-gutter{color:oklch(60% .1 30)}.wu-title{max-width:620px;margin-bottom:20px;font-size:clamp(24px,2.4vw,34px);line-height:1.05}.wu-body{font-family:var(--serif);color:var(--text);letter-spacing:.005em;max-width:640px;font-size:17px;line-height:1.55}.wu-para+.wu-para{margin-top:14px}.wu-para{color:var(--text-dim)}.wu-body>p.wu-para:first-of-type:first-letter{font-family:var(--serif);float:left;color:var(--text);padding:6px 10px 0 0;font-size:3.2em;font-style:italic;line-height:.85}.wu-quote{border-left:2px solid var(--accent-dim);color:var(--text);max-width:560px;margin:22px 0;padding:8px 0 8px 20px;font-size:1.1em;font-style:italic}.fw-title{margin-bottom:12px;font-size:clamp(22px,2vw,28px);line-height:1.1}.fw-body{font-family:var(--serif);color:var(--text-dim);max-width:580px;margin-bottom:22px;font-size:16px;line-height:1.55}.fw-canvas{border:1px solid var(--line);background:#0f141980;border-radius:2px;margin-top:auto;padding:20px;overflow-x:auto}.fw-canvas svg{width:100%;max-width:100%;height:auto;display:block}.bento{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(64px,auto);grid-auto-flow:dense;gap:var(--grid-gap);align-items:stretch;display:grid}.bento-cell{min-width:0;display:flex}.bento-cell>*{flex:1;min-width:0}.bento-cell-large{grid-column:span 8}.bento-cell-medium{grid-column:span 6}.bento-cell-small{grid-column:span 4}@media (width<=1080px){.bento-cell-large,.bento-cell-medium{grid-column:span 12}.bento-cell-small{grid-column:span 6}}@media (width<=720px){.bento{grid-template-columns:1fr}.bento-cell-large,.bento-cell-medium,.bento-cell-small{grid-column:span 1}}.hero{padding:60px 0 80px}.hero-eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);margin-bottom:28px;font-size:11px}.hero-headline{letter-spacing:-.025em;max-width:900px;color:var(--text);font-size:clamp(48px,7vw,88px);line-height:1.02}.hero-headline em{color:var(--text-dim);font-style:normal}.hero-sub{color:var(--text-dim);max-width:560px;margin-top:24px;font-size:17px;line-height:1.6}.landing-cta{border-top:1px solid var(--line);justify-content:space-between;gap:24px;margin-top:48px;padding-top:32px;display:flex}.landing-cta-link{letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);transition:color .3s var(--ease-out);font-size:11px}.landing-cta-link:hover{color:var(--text)}@media (width<=720px){.hero{padding:32px 0 56px}.hero-eyebrow{margin-bottom:18px}.hero-sub{font-size:15px}.landing-cta{flex-direction:column;gap:12px}}.discipline-filter{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.discipline-chip{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);border:1px solid var(--line);transition:color .3s var(--ease-out), border-color .3s var(--ease-out), background .3s var(--ease-out);background:#1c212866;border-radius:999px;padding:8px 14px;font-size:11px}.discipline-chip:hover{color:var(--text);border-color:var(--line-bright)}.discipline-chip.is-active{color:var(--text);background:oklch(45% .09 330/.18);border-color:oklch(72% .11 330/.55)}.projects-list{flex-direction:column;list-style:none;display:flex}.projects-row{border-top:1px solid var(--line)}.projects-row:last-child{border-bottom:1px solid var(--line)}.projects-row-link{transition:padding-left .3s var(--ease-out);grid-template-columns:1fr 2fr 1fr;gap:24px;padding:28px 0;display:grid}.projects-row-link:hover{padding-left:12px}.projects-row-meta{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:8px;font-size:10px;display:flex}.projects-row-title{color:var(--text);font-size:clamp(22px,2.4vw,30px);line-height:1.1}.projects-row-link:hover .projects-row-title{color:var(--accent)}.projects-row-tagline{color:var(--text-dim);grid-column:2;margin-top:6px;font-size:13px}.projects-row-stack{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);text-align:right;grid-column:3;align-self:start;font-size:10px}.projects-empty{color:var(--text-faint);letter-spacing:.15em;text-transform:uppercase;text-align:center;padding:32px 0;font-size:11px}@media (width<=720px){.projects-row-link{grid-template-columns:1fr;gap:8px}.projects-row-tagline,.projects-row-stack{text-align:left;grid-column:1}}.pd-back{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);transition:color .3s var(--ease-out);margin-bottom:32px;font-size:11px;display:inline-block}.pd-back:hover{color:var(--text)}.pd-links{border-top:1px solid var(--line);letter-spacing:.15em;text-transform:uppercase;gap:24px;margin-top:48px;padding-top:32px;font-size:11px;display:flex}.pd-links a{color:var(--text-dim);transition:color .3s var(--ease-out)}.pd-links a:hover{color:var(--accent)}.about-grid{grid-template-columns:2fr 1fr;gap:64px;display:grid}.about-bio p{color:var(--text-dim);max-width:600px;font-size:17px;line-height:1.65}.about-bio p+p{margin-top:18px}.about-side-title{letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:10px;font-size:10px}.about-side-meta{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:14px;font-size:11px}.about-list{color:var(--text-dim);flex-direction:column;gap:8px;margin-bottom:36px;font-size:13px;list-style:none;display:flex}.about-list:last-child{margin-bottom:0}.about-tag{text-align:center;letter-spacing:.1em;width:28px;color:var(--text-faint);border:1px solid var(--line);border-radius:2px;margin-right:8px;padding:2px 0;font-size:10px;display:inline-block}.about-link{color:var(--text-dim);transition:color .3s var(--ease-out)}.about-link:hover{color:var(--accent)}@media (width<=720px){.about-grid{grid-template-columns:1fr;gap:36px}}.navbar{z-index:10;-webkit-backdrop-filter:blur(12px)saturate(1.05);border-bottom:1px solid var(--line);background:#0f1419b3;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;height:56px;display:flex}.navbar-brand{letter-spacing:.1em;color:var(--text);font-size:12px}.navbar-links{gap:28px;display:flex}.navbar-link{letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);transition:color .3s var(--ease-out);font-size:11px}.navbar-link:hover,.navbar-link.is-active{color:var(--text)}@media (width<=720px){.navbar-links{gap:18px}.navbar-brand{font-size:11px}}.corner-status{z-index:5;letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);pointer-events:none;align-items:center;gap:8px;font-size:10px;display:flex;position:fixed;bottom:16px;right:20px}.corner-status-dot{background:var(--accent-dim);width:6px;height:6px;box-shadow:0 0 8px var(--accent-dim);border-radius:50%}@media (width<=720px){.corner-status{bottom:8px;right:12px}}:root{--bg:#0f1419;--bg-elev:#161b22;--bg-card:#1c2128;--bg-card-2:#171c24;--line:#1e2437;--line-bright:#2a3150;--text:#e8eaf0;--text-dim:#8a92a8;--text-faint:#5a6278;--accent:oklch(72% .11 330);--accent-dim:oklch(55% .08 330);--serif:"Instrument Serif", "Times New Roman", serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--shell-max:1320px;--shell-pad-x:48px;--tile-radius:4px;--tile-pad:26px;--grid-gap:16px;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-tile:.45s;--tile-bg:#1c21288c;--tile-blur:blur(14px) saturate(1.1);--tile-border:1px solid #e8eaf00f;--tile-shadow:none;--tile-inner-highlight:inset 0 1px 0 #ffffff0a;--tile-bg-hover:#1e242ca6;--tile-border-hover:oklch(72% .11 330/.45);--tile-shadow-hover:0 0 0 1px oklch(72% .11 330/.12), 0 1px 0 #ffffff08 inset, 0 20px 60px -20px oklch(40% .12 330/.35)}[data-theme=brutalist]{--tile-bg:transparent;--tile-blur:none;--tile-border:1px solid var(--line-bright);--tile-shadow:none;--tile-inner-highlight:none;--tile-bg-hover:#e8eaf006;--tile-border-hover:var(--text);--tile-shadow-hover:none}[data-theme=letterpress]{--tile-bg:var(--bg-card);--tile-blur:none;--tile-border:1px solid #0000008c;--tile-shadow:none;--tile-inner-highlight:inset 0 1px 0 #ffffff0f, inset 0 -1px 0 #0000008c;--tile-bg-hover:var(--bg-card-2);--tile-border-hover:oklch(55% .08 330/.5);--tile-shadow-hover:inset 0 1px 0 #ffffff12, inset 0 -2px 0 #0009}[data-theme=editorial]{--tile-bg:transparent;--tile-blur:none;--tile-border:0;--tile-shadow:none;--tile-inner-highlight:none;--tile-bg-hover:transparent;--tile-border-hover:transparent;--tile-shadow-hover:none}[data-theme=editorial] .bento{gap:32px 28px}[data-theme=editorial] .tile{border-top:1px solid var(--line);padding:18px 0 0}[data-theme=editorial] .tile:hover{border-top-color:var(--accent)}[data-theme=extruded]{--tile-bg:var(--bg-card);--tile-blur:none;--tile-border:1px solid var(--line-bright);--tile-shadow:4px 4px 0 #00000080;--tile-inner-highlight:none;--tile-bg-hover:var(--bg-card-2);--tile-border-hover:oklch(55% .08 330/.6);--tile-shadow-hover:6px 6px 0 #0000008c, 0 0 0 1px oklch(55% .08 330/.45)}[data-theme=extruded] .bento{gap:24px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:-.005em;font-size:15px;font-weight:300;line-height:1.55}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, oklch(35% .09 330/.08), transparent 60%), radial-gradient(ellipse 60% 40% at 90% 20%, #465a960d, transparent 60%), var(--bg);min-height:100vh;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;mix-blend-mode:overlay;opacity:.6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.025 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:2;position:relative}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:1px solid var(--accent);outline-offset:2px;border-radius:2px}.mono{font-family:var(--mono);letter-spacing:0;font-weight:400}.serif{font-family:var(--serif);letter-spacing:-.01em;font-weight:400}.shell{max-width:var(--shell-max);padding:0 var(--shell-pad-x);margin:0 auto}.page{padding:100px 0 120px}.page>section+section{margin-top:96px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){:root{--shell-pad-x:20px;--tile-pad:20px}html,body{font-size:14px}.page{padding:64px 0 80px}.page>section+section{margin-top:64px}}
