:root{--paper: #FAFAF7;--ink: #0C0C0D;--bg: var(--paper);--fg: var(--ink);--fg-soft: #565654;--line: #E2E2DC;--line-strong: #C9C9C2;--surface: #FFFFFF;--dots: rgba(12, 12, 13, .16);--accent-action: #BC4B1A;--accent-state: #2F6285;--font-display: "Archivo", system-ui, sans-serif;--font-body: "Archivo", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--max: 1080px;--pad: clamp(20px, 5vw, 48px);--ease: cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--bg: var(--ink);--fg: #F4F4F0;--fg-soft: #A0A09B;--line: #232326;--line-strong: #3A3A3E;--surface: #121214;--dots: rgba(244, 244, 240, .14);--accent-action: #F97316;--accent-state: #7FB5D6}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background-color .35s ease,color .35s ease}::selection{background:var(--fg);color:var(--bg)}img,svg{display:block;max-width:100%}a{color:inherit}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{max-width:var(--max);margin:0 auto;padding:0 var(--pad);height:64px;display:flex;align-items:center;gap:28px}.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--font-display);font-weight:800;font-style:italic;letter-spacing:.02em;font-size:15px;text-transform:uppercase}.nav-logo svg{width:34px;height:28px}.nav-logo svg path{fill:var(--fg);transition:fill .35s ease}.nav-links{display:flex;gap:4px;margin-left:auto;list-style:none;align-items:center}.nav-links a{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;text-decoration:none;color:var(--fg-soft);padding:7px 11px;border:1px solid transparent;transition:color .2s ease,border-color .2s ease;position:relative}.nav-links a:hover,.nav-links a:focus-visible{color:var(--accent-state)}.nav-links a.is-active,.nav-links a.has-active-child{color:var(--accent-state)}.nav-links a.is-active:after{content:"";position:absolute;left:11px;right:11px;bottom:2px;height:2px;background:var(--accent-state)}.nav-item{position:relative}.nav-item-row{position:relative;display:flex;flex-wrap:wrap;align-items:center}.dropdown-toggle{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--fg-soft);cursor:pointer;padding:6px;transition:color .2s ease}.dropdown-toggle:hover,.dropdown-toggle:focus-visible{color:var(--accent-state)}.dropdown-toggle svg{display:block;transition:transform .2s ease}.nav-item.is-open .dropdown-toggle svg{transform:rotate(180deg)}.dropdown{list-style:none;font-family:var(--font-mono)}.dropdown a{display:block;font-size:12.5px;letter-spacing:.03em;text-decoration:none;color:var(--fg-soft);transition:background .15s ease,color .15s ease}.dropdown a:hover,.dropdown a:focus-visible{color:var(--accent-state);background:color-mix(in srgb,var(--accent-state) 10%,transparent)}@media(min-width:761px){.dropdown-toggle{width:20px;height:20px}.dropdown-toggle svg{width:9px;height:9px}.dropdown{position:absolute;top:100%;left:0;min-width:210px;background:var(--surface);border:1px solid var(--line);padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease,visibility .16s;z-index:60}.nav-item.has-dropdown.is-open .dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown a{padding:9px 12px}}@media(min-width:761px)and (prefers-reduced-motion:reduce){.dropdown,.dropdown-toggle svg{transition:none}}.theme-toggle{margin-left:8px;width:38px;height:38px;border:1px solid var(--line-strong);background:transparent;color:var(--fg);cursor:pointer;display:grid;place-items:center;transition:background .2s ease,color .2s ease}.theme-toggle:hover{background:var(--fg);color:var(--bg)}.theme-toggle svg{width:16px;height:16px}[data-theme=light] .icon-sun,[data-theme=dark] .icon-moon,.nav-burger{display:none}@media(max-width:760px){.nav{gap:12px}.nav-burger{display:grid;place-items:center;margin-left:auto;width:38px;height:38px;border:1px solid var(--line-strong);background:transparent;color:var(--fg);cursor:pointer}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:12px var(--pad) 20px;margin-left:0}.nav-links.open{display:flex}.nav-links a{padding:12px 4px;border:none}.nav-links a.is-active:after{display:none}.nav-links a.is-active{color:var(--accent-state)}.nav-item{border-bottom:1px solid var(--line)}.nav-item-row{justify-content:space-between}.dropdown-toggle{width:36px;height:36px;flex:0 0 auto;border:1px solid var(--line-strong)}.dropdown{position:static;flex-basis:100%;width:100%;background:transparent;border:none;padding:0;opacity:1;visibility:visible;transform:none;max-height:0;overflow:hidden;transition:max-height .25s ease}.nav-item.is-open .dropdown{max-height:400px}.dropdown li a{padding-left:28px;font-size:12px;border-bottom:1px solid var(--line)}.dropdown li:last-child a{border-bottom:none}.nav-links .theme-toggle{margin-left:0;margin-top:16px}.nav-links li:last-child{border-bottom:none;padding-top:8px}}@media(max-width:760px)and (prefers-reduced-motion:reduce){.dropdown{transition:none}.dropdown-toggle svg{transition:none}}.hero{position:relative;min-height:calc(100svh - 64px);display:grid;place-items:center;overflow:hidden;background-image:radial-gradient(var(--dots) 1px,transparent 1.5px);background-size:26px 26px}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at 50% 45%,transparent 30%,var(--bg) 100%);pointer-events:none}.hero-inner{position:relative;z-index:1;text-align:center;padding:64px var(--pad)}.lm-anim{width:clamp(180px,26vw,280px);margin:0 auto}.hero-name{margin-top:40px;font-family:var(--font-display);font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(34px,6vw,64px);line-height:1.05;opacity:0;transform:translateY(14px);animation:rise .8s var(--ease) 2.5s forwards}.hero-tagline{margin-top:14px;font-family:var(--font-display);font-size:clamp(16px,2.4vw,22px);letter-spacing:.34em;text-transform:uppercase;color:var(--fg-soft);opacity:0;transform:translateY(14px);animation:rise .8s var(--ease) 2.8s forwards}.hero-tagline em{font-style:italic;font-weight:300}.hero-tagline strong{font-style:normal;font-weight:900;color:var(--fg)}.hero-roles{margin-top:30px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;color:var(--fg-soft);opacity:0;animation:rise .8s var(--ease) 3.15s forwards}@keyframes rise{to{opacity:1;transform:translateY(0)}}.lm-anim .lm-outline{fill:none;stroke:var(--fg);stroke-width:10;stroke-dasharray:10950;stroke-dashoffset:10950;animation:lm-draw 1.5s var(--ease) .15s forwards}.lm-anim .lm-fill{fill:var(--fg);clip-path:inset(100% 0 0 0);animation:lm-reveal 1.2s var(--ease) 1.25s forwards}.lm-anim .lm-scanline{stroke:var(--fg);stroke-width:7;opacity:0;transform:translateY(0);animation:lm-scan 1.2s var(--ease) 1.25s forwards}@keyframes lm-draw{to{stroke-dashoffset:0}}@keyframes lm-reveal{to{clip-path:inset(-2% 0 0 0)}}@keyframes lm-scan{0%{opacity:1;transform:translateY(0)}92%{opacity:1}to{opacity:0;transform:translateY(-1370px)}}@media(prefers-reduced-motion:reduce){.lm-anim .lm-outline{animation:none;stroke-dashoffset:0}.lm-anim .lm-fill{animation:none;clip-path:none}.lm-anim .lm-scanline{display:none}.hero-name,.hero-tagline,.hero-roles{animation:none;opacity:1;transform:none}html{scroll-behavior:auto}}.section{max-width:var(--max);margin:0 auto;padding:clamp(72px,11vh,120px) var(--pad);border-top:1px solid var(--line)}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-soft);margin-bottom:18px}.eyebrow:before{content:"/ "}.section h1,.section h2{font-family:var(--font-display);font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(28px,4.6vw,46px);line-height:1.08;margin-bottom:28px;max-width:18ch}.section h2.subhead{font-family:var(--font-body);font-weight:700;font-style:normal;text-transform:none;font-size:1.17em;line-height:1.65;margin-bottom:0;max-width:none}.section .lede{font-size:clamp(18px,2.2vw,21px);line-height:1.6;max-width:62ch;color:var(--fg)}.section p+p{margin-top:1em}.muted{color:var(--fg-soft)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);margin-top:44px}.grid-3>article{padding:32px 28px 36px;border-right:1px solid var(--line);transition:background .25s ease}.grid-3>article:last-child{border-right:none}.grid-3>article:hover{background:var(--surface)}.grid-3 h3{font-family:var(--font-display);font-weight:700;font-style:italic;text-transform:uppercase;font-size:19px;margin:14px 0 12px}.grid-3 .tag{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;color:var(--fg-soft)}.grid-3 p{font-size:15.5px;color:var(--fg-soft)}.grid-3 ul{margin-top:16px;list-style:none;font-family:var(--font-mono);font-size:12.5px;color:var(--fg-soft)}.grid-3 li{padding:5px 0;border-top:1px solid var(--line)}@media(max-width:860px){.grid-3{grid-template-columns:1fr}.grid-3>article{border-right:none;border-bottom:1px solid var(--line)}.grid-3>article:last-child{border-bottom:none}}.philosophy blockquote{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(22px,3.4vw,34px);line-height:1.35;max-width:26ch;margin:36px 0}.philosophy blockquote strong{font-weight:900}.principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px 40px;margin-top:40px}.principles h3{font-family:var(--font-mono);font-weight:500;font-size:13px;letter-spacing:.1em;text-transform:uppercase;border-top:2px solid var(--fg);padding-top:12px;margin-bottom:8px}.principles p{font-size:15.5px;color:var(--fg-soft)}.timeline{margin-top:36px;border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}.timeline-item .when{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;color:var(--fg-soft);padding-top:4px}.timeline-item h2,.timeline-item h3{font-family:var(--font-display);font-weight:700;font-style:normal;text-transform:none;font-size:18px;line-height:1.65;margin-bottom:0;max-width:none}.timeline-item .where{font-family:var(--font-mono);font-size:12.5px;color:var(--fg-soft);margin:4px 0 10px}.timeline-item p{font-size:15.5px;color:var(--fg-soft);max-width:60ch}@media(max-width:640px){.timeline-item{grid-template-columns:1fr;gap:6px}}.skills-row{margin-top:36px;display:flex;flex-wrap:wrap;gap:8px}.skills-row span{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;padding:6px 12px;border:1px solid var(--line-strong);color:var(--fg-soft)}.btn{display:inline-block;font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:14px 26px;border:1px solid var(--fg);color:var(--fg);background:transparent;cursor:pointer;transition:background .2s ease,color .2s ease}.btn:hover,.btn:focus-visible{background:var(--fg);color:var(--bg)}.btn-solid{background:var(--fg);color:var(--bg)}.btn-solid:hover{background:transparent;color:var(--fg)}.btn-action{background:var(--accent-action);color:#fff;border-color:var(--accent-action);transition:background .2s ease,border-color .2s ease}.btn-action:hover,.btn-action:focus-visible{background:color-mix(in srgb,var(--accent-action) 82%,#000);border-color:color-mix(in srgb,var(--accent-action) 82%,#000);color:#fff}.callout{border:1px solid var(--line);border-left:3px solid var(--accent-state);background:var(--surface);padding:24px 28px;margin-top:8px;max-width:70ch}.callout-label{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-state);margin-bottom:14px}.callout-label svg{flex-shrink:0}.callout p{font-size:clamp(16px,2vw,18px);line-height:1.65;color:var(--fg);margin:0}.callout em{font-style:italic}.consult-hero{max-width:var(--max);margin:0 auto;padding:clamp(80px,14vh,140px) var(--pad) clamp(56px,9vh,90px)}.consult-hero h1{font-family:var(--font-display);font-weight:800;font-style:italic;text-transform:uppercase;font-size:clamp(36px,6.4vw,72px);line-height:1.04;max-width:16ch}.services{margin-top:44px;border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:56px 1fr;gap:24px;padding:34px 0;border-bottom:1px solid var(--line)}.service .mark{font-family:var(--font-mono);font-size:13px;color:var(--fg-soft);padding-top:5px}.service h3{font-family:var(--font-display);font-weight:700;font-style:italic;text-transform:uppercase;font-size:21px;margin-bottom:10px}.service p{color:var(--fg-soft);max-width:64ch;font-size:15.5px}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.js .reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.site-footer{border-top:1px solid var(--line);margin-top:40px}.footer-inner{max-width:var(--max);margin:0 auto;padding:40px var(--pad);display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;color:var(--fg-soft)}.footer-inner svg{width:30px;height:24px}.footer-inner svg path{fill:var(--fg-soft)}.footer-inner .spacer{margin-left:auto}.footer-inner a{color:var(--fg-soft);text-decoration:none}.footer-inner a:hover{color:var(--fg)}.social-icon{color:var(--fg-soft);display:inline-flex;align-items:center;margin-left:14px;transition:color .15s ease}.social-icon:hover{color:var(--fg)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:44px}.project-card{display:flex;flex-direction:column;border:1px solid var(--line);text-decoration:none;color:var(--fg);background:transparent;transition:background .25s ease,border-color .25s ease;overflow:hidden}.project-card:hover{background:var(--surface);border-color:var(--line-strong)}.project-card img{width:100%;height:200px;object-fit:cover;display:block;border-bottom:1px solid var(--line)}.project-card h3{font-family:var(--font-display);font-weight:700;font-style:italic;text-transform:uppercase;font-size:19px;margin:22px 24px 0}.project-card .skills-row{margin:14px 24px 0}.project-card p{font-size:15px;color:var(--fg-soft);margin:14px 24px 24px}.video-embed{position:relative;aspect-ratio:16 / 9;overflow:hidden;cursor:pointer;border:1px solid var(--line);background:#000}.video-embed-thumb{width:100%;height:100%;object-fit:cover;display:block}.video-embed-play{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:transparent;border:0;cursor:pointer}.video-embed-play .yt-shape{transition:fill-opacity .2s ease}.video-embed:hover .yt-shape,.video-embed-play:focus-visible .yt-shape{fill-opacity:1}.video-embed iframe{width:100%;height:100%;border:0;display:block}.rw-fallback{padding:28px;color:var(--fg-soft);font-size:14px}.dl{border:1px solid var(--line);background:var(--surface);margin-top:40px}.dl-viz{position:relative}.dl-facade{position:relative;display:block;width:100%;border:0;padding:0;cursor:pointer;background:var(--surface);overflow:hidden}.dl-facade-thumb{width:100%;height:auto;display:block;opacity:.5}.dl-facade-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:14px;color:var(--bg);background:var(--accent-state);padding:12px 20px;white-space:nowrap}.dl-facade-note{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-soft)}.dl-plot{width:100%;height:460px}.dl-loading{padding:60px 20px;text-align:center;font-family:var(--font-mono);font-size:13px;color:var(--fg-soft)}.dl-tables{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}@media(max-width:720px){.dl-tables{grid-template-columns:1fr}}.dl-tablewrap{padding:20px}.dl-tablewrap+.dl-tablewrap{border-left:1px solid var(--line)}@media(max-width:720px){.dl-tablewrap+.dl-tablewrap{border-left:0;border-top:1px solid var(--line)}}.dl-tablewrap h2{font-family:var(--font-mono);font-size:11px;font-weight:500;font-style:normal;text-transform:uppercase;letter-spacing:.12em;line-height:1.65;max-width:none;color:var(--fg-soft);margin-bottom:14px}.dl-table{width:100%;border-collapse:collapse;font-size:13px}.dl-table th{text-align:right;font-weight:500;color:var(--fg-soft);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:0 0 8px;border-bottom:1px solid var(--line)}.dl-table th:first-child,.dl-table td:first-child{text-align:left}.dl-table td{padding:7px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;text-align:right}.dl-table td.dl-delta{color:var(--accent-action);font-family:var(--font-mono)}.code-block{margin:24px 0;border:1px solid var(--line);background:var(--surface)}.code-block-head{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-soft);padding:10px 16px;border-bottom:1px solid var(--line)}.code-block pre{margin:0;overflow-x:auto}.code-block pre code{font-family:var(--font-mono);font-size:13px;line-height:1.6;padding:16px;display:block;background:transparent;color:var(--fg);-webkit-text-size-adjust:100%}.code-cap{font-size:13px;color:var(--fg-soft);font-style:italic;margin:-12px 0 0}.hljs-comment,.hljs-quote{color:var(--fg-soft);font-style:italic}.hljs-string,.hljs-number,.hljs-literal{color:var(--accent-state)}.hljs-keyword,.hljs-built_in,.hljs-type{color:var(--accent-action)}.hljs-title,.hljs-title.function_,.hljs-section{color:var(--fg);font-weight:500}.hljs-params,.hljs-attr,.hljs-variable{color:var(--fg)}.hljs-operator,.hljs-punctuation{color:var(--fg-soft)}.math-list{margin-top:24px}.math-item{border-left:2px solid var(--accent-state);padding:2px 0 2px 22px;margin:20px 0}.math-item .katex-display{margin:.35em 0;overflow-x:auto;overflow-y:hidden;padding:2px 0}.math-item p{font-size:15px;color:var(--fg-soft);margin-top:4px}.math-item p strong{color:var(--fg);font-weight:500}
