@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-italic.xAqemagA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-italic.DFS986qL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-italic.Bxi8ein9.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-ext-wght-normal.c-5QAGAI.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-wght-normal.BMDVbyM7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-ext-wght-normal.BXZfsJY4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-wght-normal.Cc-u-6OI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-vietnamese-wght-normal.BDs68eHQ.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-ext-wght-normal.C8iNium2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-normal.Bo_j9asI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0c0c0a;--bg-2:#12120f;--surface:#181814;--ink:#f6f3ec;--ink-2:#e3ddd1;--muted:#b9b1a3;--line:#2e2c25;--line-strong:#877f72;--accent:#e9c6a0;--signal:#ccf266;--on-accent:#13120e;--radius:1rem;--radius-sm:.65rem;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--serif:"Newsreader Variable", "Iowan Old Style", Palatino, Georgia, serif;--sans:"Source Sans 3 Variable", "Source Sans 3", "Segoe UI", sans-serif;--wrap:74rem;--pad:clamp(1.25rem, 4vw, 3rem);color-scheme:dark}:root[data-theme=light]{--bg:#f6f4ef;--bg-2:#efece4;--surface:#fcfbf8;--ink:#181612;--ink-2:#363028;--muted:#595249;--line:#dfd9cd;--line-strong:#857c70;--accent:#733826;--signal:#3b6110;--on-accent:#f6f4ef;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65;position:relative;overflow-x:clip}.light-stream-wrap{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.light-stream{width:100%;height:100%;display:block}.scroll-progress{z-index:30;pointer-events:none;background:linear-gradient(90deg, var(--accent), var(--signal));transform-origin:0;height:2px;transform:scaleX(var(--scroll-progress,0));position:fixed;top:0;left:0;right:0}header,main,footer,noscript{z-index:1;position:relative}img{max-width:100%}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:-.024em;text-wrap:balance;font-weight:450;line-height:1.06}h1{margin:.45rem 0 0;font-size:clamp(2.75rem,6.5vw,5.25rem)}h2{margin:0;font-size:clamp(2rem,4.1vw,3.2rem)}h3{margin:0;font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.2}p{text-wrap:pretty}a{color:inherit;transition:color .2s}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip{left:var(--pad);z-index:40;background:var(--ink);color:var(--bg);border-radius:999px;padding:.55rem .9rem;text-decoration:none;position:absolute;top:.75rem;transform:translateY(-160%)}.skip:focus{transform:none}.wrap{width:min(var(--wrap), calc(100% - var(--pad) * 2));margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background-color:var(--surface);max-width:100%;color:var(--accent);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .95rem;padding:.32rem .8rem;font-size:.7rem;font-weight:500;display:inline-flex;box-shadow:inset 0 1px #ffffff0f}.eyebrow:before{content:"";background:var(--signal);width:.42rem;height:.42rem;box-shadow:0 0 8px var(--signal);border-radius:50%;flex:none;display:inline-block}.lede,.hero-intro{max-width:40rem;color:var(--ink-2);font-size:1.15rem;line-height:1.62}.human{color:var(--accent);font-style:italic;font-weight:410;display:block}.small-note{color:var(--muted);font-size:.95rem}.text-link{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-underline-offset:.24em;align-items:center;gap:.35rem;font-weight:550;transition:color .2s,text-decoration-color .2s,transform .2s;display:inline-flex}.text-link:hover{color:var(--ink);text-decoration-color:var(--signal)}.btn{min-height:2.85rem;color:var(--ink);font:600 .98rem/1 var(--sans);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.68rem 1.25rem;text-decoration:none;transition:transform .25s cubic-bezier(.16,1,.3,1),background-color .25s,border-color .25s,color .25s,box-shadow .25s;display:inline-flex}.btn:hover{color:var(--ink);transform:translateY(-2px)}.btn-primary{background-color:var(--accent);color:var(--on-accent);box-shadow:0 8px 24px -8px color-mix(in srgb, var(--accent) 45%, transparent), inset 0 1px 0 #ffffff40}.btn-primary:hover{background-color:var(--ink);color:var(--bg);box-shadow:0 12px 28px -8px color-mix(in srgb, var(--signal) 40%, transparent)}.btn-ghost{background-color:var(--surface);border-color:var(--line-strong);box-shadow:inset 0 1px #ffffff0d}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-sm{min-height:2.4rem;padding:.45rem .95rem;font-size:.92rem}.header{z-index:20;background-color:color-mix(in srgb, var(--bg) 86%, transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)saturate(140%);justify-content:space-between;align-items:center;gap:1rem;min-height:4.5rem;display:flex;position:sticky;top:0}.wordmark{font-family:var(--serif);letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:.45rem;font-size:1.35rem;font-weight:500;text-decoration:none;display:inline-flex}.wordmark:before{content:"";background:var(--signal);width:.48rem;height:.48rem;box-shadow:0 0 10px var(--signal);border-radius:50%}.nav-links,.header-tools,.footer-links,.hero-actions,.section-foot,.language{align-items:center;display:flex}.nav-links{gap:1.35rem}.nav-links a{color:var(--ink-2);padding:.3rem 0;text-decoration:none;transition:color .2s;position:relative}.nav-links a:hover{color:var(--ink)}.nav-links a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--signal)}.header-tools{gap:.35rem}.language{border:1px solid var(--line);background-color:var(--surface);color:var(--muted);font-family:var(--mono);letter-spacing:.08em;border-radius:999px;gap:.3rem;margin-right:.35rem;padding:.28rem .6rem;font-size:.78rem;text-decoration:none}.language .active{color:var(--ink);font-weight:650}.icon-button{width:2.75rem;height:2.75rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,border-color .2s,transform .2s;display:inline-flex}.icon-button:hover{background-color:var(--surface);border-color:var(--line)}.menu-toggle,.mobile-contact-link{display:none}.no-script-nav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:1rem;padding-block:.8rem;display:flex}.js .no-script-nav{display:none}.hero{padding-block:clamp(3.5rem,8vw,6.5rem) clamp(2.25rem,5vw,3.75rem)}.hero-grid{align-items:center;gap:clamp(2.5rem,6vw,4.5rem);display:grid}.hero-intro{margin:1.5rem 0 0}.hero-actions{flex-wrap:wrap;gap:.85rem;margin-top:1.85rem}.hero-location{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.5rem;margin:1.35rem 0 0;font-size:.78rem;display:inline-flex}.hero-location:before{content:"";background:var(--signal);width:.42rem;height:.42rem;box-shadow:0 0 8px var(--signal);border-radius:50%}.practice ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.practice li{border-bottom:1px solid var(--line);grid-template-columns:5.5rem 1fr;gap:1rem;padding:1.1rem 0;display:grid}.practice li span{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:650}.practice li p{margin:0}.strip{border-block:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.strip li{color:var(--ink);padding:1.35rem 1.1rem 1.5rem 0}.strip li span{color:var(--accent);font-family:var(--serif);margin-bottom:.45rem;font-style:italic;display:block}.section{padding-block:clamp(4.25rem,8vw,7rem)}.section-head,.contact-grid,.about-layout,.work-intro-grid,.credentials,.lab-grid,.writing-tools{gap:1.5rem 3rem;display:grid}.section-head .lede,.contact-copy .lede{margin:.4rem 0 0}.band{background-color:color-mix(in srgb, var(--bg-2) 84%, transparent);border-block:1px solid var(--line);backdrop-filter:blur(12px)}.work-index{margin-top:2.5rem}.work-row{border-top:1px solid var(--line);gap:.7rem 1.5rem;padding:1.6rem 0;display:grid}.work-row h3{font-size:1.55rem}.work-row h3 a{text-decoration:none}.work-name,.work-row>p,.note-card p,.talk-event,.talk-summary{color:var(--ink-2);margin:.3rem 0 0}.work-name span,.note-topic,.note-status,.talk-meta,.intent-index{color:var(--muted);font-size:.92rem}.work-index-no{font-family:var(--serif);color:var(--accent);font-style:italic}.note-grid,.contact-intents,.ideas-list{gap:1.1rem;display:grid}.note-grid{margin-top:2rem}.note-card,.contact-intents article,.ideas-list>div{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);background-image:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 11%, transparent), transparent 70%);padding:1.5rem 1.4rem;position:relative;box-shadow:0 16px 36px -18px #00000061,inset 0 1px #ffffff0f}.note-status{color:var(--accent);margin:0}.note-card h3 a,.article-list h2 a{text-decoration:none}.section-foot{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.75rem}.contact-grid{padding-block:clamp(4.25rem,8vw,7rem)}.page-intro{padding-block:clamp(3.5rem,7vw,5.5rem) 1.25rem}.page-intro .lede{margin-top:1.25rem}.work-list{gap:1.5rem;margin-top:1.5rem;display:grid}.work-item{border-radius:calc(var(--radius) * 1.15);border:1px solid var(--line);background-color:var(--surface);background-image:radial-gradient(560px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%);padding:clamp(1.75rem,4vw,2.75rem);position:relative;box-shadow:0 20px 44px -22px #00000073,inset 0 1px #ffffff12}.work-item h2{max-width:20ch}.work-category{color:var(--muted);font-family:var(--serif);margin:.55rem 0 0;font-size:1.35rem;font-style:italic}.case-grid{gap:1.6rem 2.5rem;margin-top:1.8rem;display:grid}.case-grid h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-size:.74rem;font-weight:600}.case-grid p{max-width:65ch;margin:0}.stack-list,.contribution-list,.tag-list,.credential-list{flex-wrap:wrap;gap:.45rem .55rem;margin:0;padding:0;list-style:none;display:flex}.stack-list li,.contribution-list li,.tag-list li{border:1px solid var(--line-strong);background-color:color-mix(in srgb, var(--bg-2) 70%, transparent);color:var(--ink-2);border-radius:999px;padding:.26rem .7rem;font-size:.9rem}.work-links{margin:1.5rem 0 0}.filter-bar{flex-wrap:wrap;gap:.45rem;margin-bottom:.5rem;display:flex}.filter-bar button,.clear-search{border:1px solid var(--line-strong);background-color:var(--surface);min-height:2.5rem;color:var(--ink);font:600 .92rem/1 var(--sans);cursor:pointer;border-radius:999px;padding:.38rem .9rem;transition:background-color .2s,border-color .2s,color .2s,transform .2s}.filter-bar button:hover,.clear-search:hover{border-color:var(--accent);transform:translateY(-1px)}.filter-bar button[aria-pressed=true]{background-color:var(--ink);border-color:var(--ink);color:var(--bg)}.lab-controls{gap:1.25rem;margin-top:1.5rem;display:grid}.lab-field{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);padding:1.15rem 1.25rem}.lab-field label{justify-content:space-between;gap:1rem;font-weight:600;display:flex}.lab-field output{color:var(--accent);font-family:var(--mono);font-variant-numeric:tabular-nums}.lab-field input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin-top:.65rem}.range-labels{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin-top:.25rem;font-size:.75rem;display:flex}.lab-result{border-radius:var(--radius);border:1px solid var(--line);border-top:3px solid var(--accent);background-color:var(--surface);background-image:radial-gradient(460px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--signal) 10%, transparent), transparent 70%);padding:1.75rem;position:relative;box-shadow:0 20px 44px -22px #00000073}.decision-diagram{color:var(--muted);font-family:var(--mono);align-items:center;gap:.6rem;font-size:.82rem;display:flex}.decision-diagram span{border:1px solid var(--line-strong);background-color:var(--bg-2);border-radius:999px;padding:.22rem .55rem}.decision-diagram i{background:linear-gradient(90deg, var(--line-strong), var(--accent));flex:1;height:1px}.decision-diagram [data-route-code]{border-color:var(--accent);color:var(--accent);font-weight:650}.lab-route{font-family:var(--serif);letter-spacing:-.02em;margin:1.1rem 0 .45rem;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:450;line-height:1.15}.lab-why{color:var(--ink-2);margin:0}.lab-foot{margin:1.25rem 0 0}.lab-page,.devlog-note,.inline-cta,.personal-interests,.credentials,.editorial-directions{padding-bottom:clamp(3rem,6vw,5rem)}.devlog-note,.inline-cta,.personal-interests{padding-top:1rem}.journey-nodes{grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;margin-top:2rem;display:grid;position:relative}.journey-route{background:var(--line);height:2px;position:absolute;top:1.2rem;left:0;right:0}.journey-fill{width:calc(var(--journey-progress) * 100%);background:linear-gradient(90deg, var(--accent), var(--signal));height:2px;transition:width .45s cubic-bezier(.16,1,.3,1);display:block}.journey-nodes button{z-index:1;min-height:4.5rem;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;justify-items:start;gap:.4rem;padding:0;display:grid;position:relative}.journey-nodes button[data-state=active]{color:var(--ink)}.node-num{border:1px solid var(--line-strong);background-color:var(--surface);width:2.4rem;height:2.4rem;font-family:var(--mono);border-radius:999px;place-items:center;font-size:.78rem;transition:background-color .25s,border-color .25s,color .25s,transform .25s;display:inline-grid}.journey-nodes button:hover .node-num{border-color:var(--accent);transform:scale(1.06)}.journey-nodes button[data-state=active] .node-num{background-color:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 0 18px -4px var(--accent);font-weight:650}.node-short{font-size:.92rem;font-weight:600}.journey-chapters{margin-top:1.35rem}.journey-chapters details{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);padding:1.5rem 1.6rem;box-shadow:inset 0 1px #ffffff0d}.journey-chapters details+details{margin-top:.75rem}.journey-chapters summary{cursor:pointer;padding:.4rem 0;font-weight:600}.journey-body{gap:1rem 2rem;padding-bottom:.4rem;display:grid}.journey-subtitle{font-family:var(--serif);color:var(--accent);margin:.35rem 0 0;font-size:1.25rem;font-style:italic}.journey-text{max-width:62ch;margin:0}.journey-current{margin-top:1rem}.js .journey-chapters summary,.js .journey-chapters details:not([open]){display:none}.talk-list{gap:.65rem;margin-top:1.75rem;display:grid}.talk{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);gap:.4rem 1.5rem;padding:1.25rem 1.35rem;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s;display:grid}.talk h3{font-size:1.35rem}.talk-date{color:var(--accent);font-variant-numeric:tabular-nums}.talk-meta{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.talk-meta a{color:var(--accent)}.credentials{padding-bottom:clamp(3rem,7vw,5.5rem)}.credentials h2{margin-bottom:1rem;font-size:clamp(1.7rem,3vw,2.2rem)}.skill-list{gap:.85rem;margin:0;display:grid}.skill-list>div{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);padding:1.15rem 1.25rem}.skill-list dt{color:var(--accent);font-weight:650}.skill-list dd{color:var(--ink-2);margin:.25rem 0 0}.credential-side{align-content:start;gap:2rem;display:grid}.credential-list{gap:.85rem;display:grid}.credential-list li{border:0;gap:.15rem;padding:0;display:grid}.credential-list.plain{color:var(--ink-2);gap:.4rem}.credential-list.cert-list,.credential-list.edu-list{gap:0}.credential-list .cert-row{border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent);justify-content:space-between;align-items:center;gap:1rem;padding:.62rem 0;display:flex}.credential-list .cert-row:first-child{padding-top:.15rem}.credential-list .cert-row:last-child{border-bottom:0;padding-bottom:0}.cert-main{gap:.12rem;min-width:0;display:grid}.cert-main strong{color:var(--ink);font-size:.96rem;font-weight:600;line-height:1.35}.cert-main span{color:var(--muted);font-size:.82rem;line-height:1.3}.credential-list .cert-year{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background-color:color-mix(in srgb, var(--bg-2) 70%, transparent);font-family:var(--mono);letter-spacing:.04em;color:var(--accent);border-radius:999px;flex-shrink:0;padding:.18rem .58rem;font-size:.74rem;font-weight:550}.credential-list.edu-list li{border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent);padding:.75rem 0}.credential-list.edu-list li:first-child{padding-top:.15rem}.credential-list.edu-list li:last-child{border-bottom:0;padding-bottom:0}.credential-list span,.about-layout .small-note{color:var(--muted)}.personal-interests{gap:1rem 3rem;display:grid}.interests-copy ul{flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.interests-copy li{border:1px solid var(--line-strong);background-color:var(--surface);border-radius:999px;padding:.3rem .75rem}.search{border:1px solid var(--line-strong);background-color:var(--surface);border-radius:999px;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 .9rem;display:flex}.search input{width:100%;color:var(--ink);font:1rem/1.4 var(--sans);background:0 0;border:0}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--accent);outline-offset:3px}.article-list{gap:1rem;margin-top:1.5rem;display:grid}.article-list article{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);padding:1.5rem}.article-list time{color:var(--muted);font-family:var(--mono);font-size:.82rem}.empty-state{padding:2rem 0}.empty-state[hidden],[hidden]{display:none!important}.prose{max-width:42rem;font-size:1.125rem}.prose p{margin:0 0 1.1rem}.article-detail{padding-bottom:4rem}.article-diptych{grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr));gap:1.1rem;max-width:42rem;margin:0 0 2.25rem;display:grid}.article-photo-img{aspect-ratio:10/11;object-fit:cover;object-position:center 44%;width:100%;height:auto;transition:transform .45s cubic-bezier(.16,1,.3,1);display:block}.about-photo-card:hover .article-photo-img{transform:scale(1.02)}.article-sources{border-top:1px solid var(--line);max-width:42rem;margin-top:2rem;padding-top:1rem}.article-sources a{color:var(--accent)}.intent-panel{border-radius:calc(var(--radius) * 1.1);border:1px solid var(--line);background-color:var(--surface);background-image:radial-gradient(480px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 11%, transparent), transparent 70%);padding:1.65rem;box-shadow:0 20px 44px -22px #0000006b,inset 0 1px #ffffff0f}.intent-panel fieldset{border:0;margin:0;padding:0}.intent-panel legend{margin-bottom:.85rem;font-weight:650}.intent-chips{flex-wrap:wrap;gap:.45rem;display:flex}.intent-chip{position:relative}.intent-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.intent-chip span{border:1px solid var(--line-strong);background-color:var(--bg-2);border-radius:999px;align-items:center;min-height:2.5rem;padding:.35rem .85rem;font-size:.94rem;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.intent-chip input:checked+span{background-color:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}.intent-chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.intent-detail{flex-direction:column;align-items:flex-start;gap:1rem;margin-top:1.25rem;display:flex}.intent-detail p{color:var(--ink-2);margin:0}@supports selector(:has(*)){.intent-panel .intent-detail{display:none}.intent-panel:has([value=conversation]:checked) [data-intent=conversation],.intent-panel:has([value=collaboration]:checked) [data-intent=collaboration],.intent-panel:has([value=partnerships]:checked) [data-intent=partnerships]{display:flex}}.contact-intents{padding-bottom:2rem}.contact-intents article h2{margin-top:.4rem;font-size:1.8rem}.contact-note{padding-bottom:4rem}.footer{border-top:1px solid var(--line);gap:1.5rem;padding-block:2.5rem 1.75rem;display:grid}.footer-main{align-items:start;gap:1.5rem 2.5rem;display:grid}.footer-brand p{max-width:28rem;color:var(--muted);margin:.4rem 0 0}.footer-links{flex-wrap:wrap;gap:1rem}.footer-links a{text-decoration:none}.social-links{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.social-links a{align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.social-mark{flex:none;display:block}.social-links.icons{gap:0}.social-links.icons a{border-radius:999px;justify-content:center;width:2.75rem;height:2.75rem}.social-links.icons a:hover{background-color:var(--surface)}.header-social,.nav-social{display:none}.nav-social{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;margin-top:.4rem;padding-top:.7rem}.contact-social{margin-top:.9rem}.footer-bottom{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.8rem;display:flex}@media (width>=800px){.footer-main{grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) auto}.hero-grid,.section-head,.contact-grid,.about-layout,.work-intro-grid,.lab-grid,.personal-interests,.credentials,.writing-tools{grid-template-columns:1.15fr .85fr;align-items:end}.about-layout,.work-intro-grid,.credentials,.lab-grid,.writing-tools,.personal-interests{align-items:start}.work-row{grid-template-columns:2.5rem minmax(14rem,1fr) minmax(16rem,1.4fr) auto;align-items:baseline}.case-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}.note-grid,.contact-intents,.ideas-list{grid-template-columns:repeat(3,1fr);gap:1.25rem}.talk{grid-template-columns:8.5rem 1fr 12rem;align-items:baseline}.journey-body{grid-template-columns:.8fr 1.2fr}}@media (width<=1100px){.nav-links{z-index:9;padding:.6rem var(--pad) 1rem;background-color:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.2rem;display:none;position:absolute;top:100%;left:0;right:0}.header.menu-open .nav-links{display:flex}.nav-links a{padding:.7rem 0;font-size:1.15rem}.menu-toggle,.mobile-contact-link{display:inline-flex}.header.menu-open .nav-social{display:flex}.nav-cta{display:none}}@media (width>=1280px){.header-social{display:flex}}@media (width<=720px){.strip,.journey-nodes{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-route{display:none}.journey-nodes button{min-height:4rem;padding:.6rem .4rem .6rem 0}.footer-main,.footer-bottom{flex-direction:column}.practice li{grid-template-columns:1fr;gap:.25rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey-fill{transition-duration:0s}*,:before,:after{transition:none!important;animation:none!important}}#focus,#work,#talks,#notebook,#recognition,#contact,#lab,#journey{scroll-margin-top:5.25rem}.nav-cta.btn-primary{background-color:var(--accent);color:var(--on-accent)}.nav-cta.btn-primary:hover{background-color:var(--ink);color:var(--bg)}.stage{border-radius:calc(var(--radius) * 1.2);background-color:var(--surface);background-image:radial-gradient(540px circle at var(--mx,60%) var(--my,25%), color-mix(in srgb, var(--signal) 14%, transparent), transparent 68%);border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform;margin:0;padding:.75rem;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s;position:relative;box-shadow:0 28px 64px -24px #000000a6,inset 0 1px #ffffff1a}.stage:hover{border-color:color-mix(in srgb, var(--signal) 48%, var(--accent))}.stage-bar{border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .55rem;padding:.1rem .2rem .45rem;font-size:.68rem;display:flex}.stage-bar-left{color:var(--accent);align-items:center;gap:.45rem;display:inline-flex}.stage-dot{background:var(--signal);width:.45rem;height:.45rem;box-shadow:0 0 8px var(--signal);border-radius:50%;display:inline-block}.stage-media{border-radius:var(--radius-sm);border:1px solid var(--line);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;overflow:hidden}.stage picture{width:100%;display:block}.stage-photo{aspect-ratio:4/3;object-fit:cover;object-position:center 36%;width:100%;height:auto;display:block}.stage-hud{border-radius:var(--radius-sm);border:1px solid var(--line);background-color:var(--bg-2);margin-top:.6rem;padding:.6rem .75rem}.stage-hud-flow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.hud-node{border:1px solid var(--line-strong);background-color:var(--surface);color:var(--ink-2);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.38rem;padding:.24rem .58rem;font-size:.64rem;display:inline-flex}.hud-node-active{border-color:var(--signal);color:var(--ink)}.hud-node-human{border-color:var(--accent);color:var(--accent)}.hud-dot{background:var(--accent);border-radius:50%;width:.36rem;height:.36rem}.hud-node-active .hud-dot{background:var(--signal);box-shadow:0 0 6px var(--signal)}.hud-connector{background:linear-gradient(90deg, var(--line-strong), var(--signal), var(--accent));flex:1;min-width:.75rem;height:1px}.stage-hud-meta{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.06em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.55rem;padding-top:.5rem;font-size:.66rem;display:flex}.hud-pill{color:var(--accent);font-weight:600}.venues{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);gap:.75rem 1.5rem;padding:1.15rem 1.4rem;display:grid;box-shadow:inset 0 1px #ffffff0d}.venues-label{color:var(--muted);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.68rem}.venues ul{flex-wrap:wrap;gap:.45rem 1.35rem;margin:0;padding:0;list-style:none;display:flex}.venues li{max-width:100%;color:var(--ink);font-family:var(--serif);letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1.08rem;font-style:italic;line-height:1.3}.glyph{border:1px solid color-mix(in srgb, var(--accent) 26%, var(--line));background-color:var(--bg-2);width:2.75rem;height:2.75rem;color:var(--accent);border-radius:.7rem;padding:.45rem;transition:color .25s,border-color .25s,transform .25s}.focus-card:hover .glyph,.project-card:hover .glyph{color:var(--signal);border-color:var(--signal);transform:scale(1.06)}.focus-grid,.project-grid,.essay-grid,.record-grid{gap:1.1rem;margin-top:2.1rem;display:grid}.focus-grid,.project-grid,.essay-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr))}.focus-card,.project-card,.essay-card{border-radius:var(--radius);background-color:var(--surface);background-image:radial-gradient(440px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);border:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.4rem;min-width:0;padding:1.45rem 1.35rem 1.5rem;display:flex;position:relative;box-shadow:0 18px 40px -20px #00000073,inset 0 1px #ffffff0f}.focus-card h3,.project-card h3,.essay-card h3{margin-top:.45rem}.focus-card h3 a,.project-card h3 a,.essay-card h3 a{text-decoration:none}.focus-card p,.project-card p,.essay-card p{color:var(--ink-2);margin:.2rem 0 0}.card-meta,.essay-meta{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:.65rem 0 0;font-size:.72rem}.essay-meta{flex-wrap:wrap;gap:.35rem .8rem;display:flex}.project-generic{font-family:var(--serif);color:var(--ink);font-size:1.15rem;font-style:italic}.project-card .text-link,.essay-card .text-link{margin-top:auto;padding-top:.9rem}.work-note{margin-top:1.25rem}.talks-gallery,.events-gallery{grid-template-columns:minmax(0,1fr);gap:1.1rem;margin-top:2rem;display:grid}.events-block{margin-top:2.25rem}.events-eyebrow{margin-bottom:0}.events-gallery{margin-top:1.1rem}@media (width>=580px){.talks-gallery,.events-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.talks-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1080px){.events-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}.talk-photo-card,.about-photo-card{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);background-image:radial-gradient(440px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);margin:0;padding:.65rem .65rem .75rem;position:relative;box-shadow:0 18px 40px -20px #00000073,inset 0 1px #ffffff0f}.talk-photo-media{border-radius:var(--radius-sm);border:1px solid var(--line);background-color:var(--bg-2);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;overflow:hidden}.stage-media:after,.talk-photo-media:after{content:"";z-index:2;background:0 0;position:absolute;inset:0}.stage-media img,.talk-photo-media img,.prompt-figure img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none}html[data-photo-shield=active] .stage-media img,html[data-photo-shield=active] .talk-photo-media img,html[data-photo-shield=active] .prompt-figure img{filter:blur(28px)brightness(.25);transition:none!important}@media print{.stage-media,.talk-photo-media{visibility:hidden!important}}.talk-photo-media picture{width:100%;display:block}.talk-photo-img{aspect-ratio:4/3;object-fit:cover;object-position:center 22%;width:100%;height:auto;transition:transform .45s cubic-bezier(.16,1,.3,1);display:block}.talk-photo-card[data-focus=top] .talk-photo-img{object-position:center 16%}.talk-photo-card[data-focus=upper] .talk-photo-img{object-position:center 24%}.talk-photo-card[data-focus=center] .talk-photo-img{object-position:center 54%}.talk-photo-card[data-focus=lower] .talk-photo-img{object-position:center 68%}.talk-photo-card:hover .talk-photo-img,.about-photo-card:hover .about-photo-img,.about-photo-card:hover .work-photo-img{transform:scale(1.03)}.talk-photo-caption{color:var(--ink-2);font-family:var(--serif);margin-top:.55rem;font-size:1.02rem;font-style:italic;line-height:1.3}.about-photo-img{aspect-ratio:3/2;object-fit:cover;object-position:center 28%;width:100%;height:auto;transition:transform .45s cubic-bezier(.16,1,.3,1);display:block}.work-photo-img{aspect-ratio:3/2;object-fit:cover;object-position:center 20%;width:100%;height:auto;transition:transform .45s cubic-bezier(.16,1,.3,1);display:block}.personal-photo-card{max-width:22rem;margin-top:1.15rem}.personal-photo-card .about-photo-img{aspect-ratio:4/3;object-position:center 25%}.talk-date{font-family:var(--mono);letter-spacing:.04em;font-size:.78rem}.talk:hover,.talk:focus-within{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--signal), 0 14px 30px -18px #0006;transform:translateY(-2px)}.award{border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--accent) 32%, var(--line));background-color:var(--surface);max-width:32ch;font-family:var(--serif);color:var(--accent);margin:1.75rem 0 0;padding:1rem 1.35rem;font-size:clamp(1.45rem,2.4vw,2rem);font-style:italic;line-height:1.25;display:inline-block}.record-grid>div{border-radius:var(--radius);border:1px solid var(--line);background-color:var(--surface);padding:1.4rem}.record-grid h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.76rem;font-weight:650}.talks-page-intro{padding-bottom:clamp(3rem,6vw,5rem)}.footer-pages{flex-wrap:wrap;gap:.55rem 1rem;display:flex}.footer-pages a{text-decoration:none}@media (width>=800px){.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(18rem,.92fr);align-items:center}.venues{grid-template-columns:auto 1fr;align-items:baseline;column-gap:2rem}.venues-label{white-space:nowrap}.record-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:1.5rem}.essay-grid{grid-template-columns:1fr 1fr}}@media (width<=1100px){.nav-links a.mobile-contact-link{background-color:var(--accent);color:var(--on-accent);border-radius:999px;align-self:flex-start;margin-top:.35rem;padding:.55rem 1rem;font-weight:650;text-decoration:none}.nav-links a.mobile-contact-link:hover{background-color:var(--ink);color:var(--bg)}}@media (prefers-reduced-motion:no-preference){.hero-copy>*{animation:.85s cubic-bezier(.16,1,.3,1) both rise}.hero-copy>:nth-child(2){animation-delay:80ms}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.hero-copy>:nth-child(5){animation-delay:.32s}.stage{animation:.95s cubic-bezier(.16,1,.3,1) .12s both riseStage}.js .reveal,.js .reveal-item{transition:transform .72s cubic-bezier(.16, 1, .3, 1) var(--stagger,0s), border-color .28s ease, box-shadow .28s ease;transform:translateY(18px)scale(.99)}.js .reveal.is-in,.js .reveal-item.is-in{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}.focus-card:hover,.project-card:hover,.essay-card:hover,.work-item:hover,.contact-intents article:hover,.talk-photo-card:hover,.about-photo-card:hover,.focus-card:focus-within,.project-card:focus-within,.essay-card:focus-within{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px);border-color:color-mix(in srgb, var(--signal) 45%, var(--accent))}}@keyframes rise{0%{transform:translateY(16px)}to{transform:none}}@keyframes riseStage{0%{transform:perspective(1100px)translateY(18px)scale(.985)}to{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}}
