@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap";:root{color-scheme:dark;--paper:#111412;--ink:#e8eee9;--muted:#9aa69d;--accent:#91d5a9;--line:#2c3730;--serif:"Newsreader", Georgia, serif;--sans:"DM Sans", sans-serif;--mono:"DM Mono", monospace;--surface:#171d19;--surface-raised:#1c241f;--accent-soft:#b2e7c2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.shell{width:min(1180px,calc(100% - 48px));margin:auto}main{min-height:70vh}.site-header{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:26px;letter-spacing:-.08em}.wordmark span{color:var(--accent)}nav{display:flex;gap:27px;font-size:14px}nav a{color:var(--muted)}nav a.active,nav a:hover{color:var(--ink)}.site-footer{display:flex;justify-content:space-between;padding:27px 0 34px;margin-top:100px;border-top:1px solid var(--line);color:var(--muted);font:12px var(--mono)}.site-footer p{margin:0}.site-footer div{display:flex;gap:20px}.eyebrow{margin:0 0 18px;color:var(--accent);font:11px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.07em}.hero{padding:100px 0 112px;border-bottom:1px solid var(--line)}.hero h1,.page-intro h1,.article h1,.project-page h1{margin:0;font:500 clamp(62px,9.3vw,132px)/.86 var(--serif);letter-spacing:-.06em}.hero-focus{margin:27px 0 0;font:12px var(--mono);text-transform:uppercase;letter-spacing:.04em}.hero-focus span{color:var(--accent);margin:0 7px}.hero-copy{max-width:555px;margin:42px 0;font-size:21px;line-height:1.45;letter-spacing:-.02em}.hero-copy p{margin:0}.hero-links{display:flex;flex-wrap:wrap;gap:9px 23px;max-width:600px;font-size:14px}.hero-links a{border-bottom:1px solid var(--line);padding-bottom:2px}.hero-links span,.text-link span,.contact-email span{color:var(--accent)}.section{padding:95px 0;border-bottom:1px solid var(--line)}.section-heading{max-width:620px}.section h2,.about-band h2,.contact-band h2{margin:0;font:400 clamp(34px,4.2vw,57px)/.98 var(--serif);letter-spacing:-.045em}.section-heading>p:not(.eyebrow){color:var(--muted);max-width:500px;margin:22px 0 0}.work-list{margin-top:58px;border-top:1px solid var(--line)}.work-row{display:grid;grid-template-columns:72px 1fr 35px;gap:16px;padding:25px 0 27px;border-bottom:1px solid var(--line)}.work-index,.project-kind,.article-date{color:var(--muted);font:11px var(--mono);text-transform:uppercase;letter-spacing:.04em}.work-row h3,.article-row h3{margin:4px 0 8px;font:500 28px/1 var(--serif);letter-spacing:-.035em}.work-row p:not(.project-kind),.article-row p:not(.article-date){max-width:600px;margin:0;color:var(--muted)}.status{margin-left:8px;color:var(--accent)}.row-arrow{font-size:20px;text-align:right}.text-link{display:inline-block;margin-top:26px;font:12px var(--mono);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--ink);padding-bottom:3px}.writing-section{display:grid;grid-template-columns:minmax(250px,.82fr) minmax(380px,1fr);gap:100px}.article-list{border-top:1px solid var(--line)}.article-row{display:flex;justify-content:space-between;gap:25px;padding:22px 0 26px;border-bottom:1px solid var(--line)}.article-row>span{color:var(--accent);font-size:20px}.article-row h3{font-size:25px}.about-band,.contact-band{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding:95px 0;border-bottom:1px solid var(--line)}.about-band>div,.contact-band>div{max-width:670px}.about-band h2{max-width:670px}.about-band div>p{color:var(--muted);max-width:570px;margin:24px 0 0}.contact-band{border-bottom:none;padding-bottom:0}.contact-email{display:inline-block;margin-top:28px;font:500 clamp(22px,3vw,35px)/1 var(--serif);border-bottom:1px solid var(--ink)}.page-intro{padding:95px 0 70px;border-bottom:1px solid var(--line)}.page-intro>p:not(.eyebrow){max-width:590px;margin:28px 0 0;color:var(--muted);font-size:19px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-left:1px solid var(--line);margin-top:70px}.project-grid article{padding:10px 30px 32px;border-right:1px solid var(--line)}.project-grid h2{margin:9px 0 13px;font:400 34px/1 var(--serif);letter-spacing:-.04em}.project-grid article>p:not(.project-kind){color:var(--muted);min-height:110px}.topics{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0}.topics span{border:1px solid var(--line);padding:3px 7px;color:var(--muted);font:10px var(--mono)}.project-page,.article{max-width:800px;margin:0 auto;padding-top:58px}.back-link{display:inline-block;margin-bottom:68px;font:12px var(--mono);color:var(--muted)}.project-page .eyebrow{margin-bottom:15px}.project-lede{margin:31px 0 44px;max-width:680px;font:400 27px/1.3 var(--serif);letter-spacing:-.025em}.project-meta{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;gap:20px}.project-meta div{display:grid;gap:2px}.project-meta span{font:10px var(--mono);color:var(--muted);text-transform:uppercase}.project-meta strong{font-weight:500}.prose{max-width:680px;font-size:18px}.project-page .prose{margin-top:60px}.prose h2{margin:47px 0 15px;font:400 35px/1 var(--serif);letter-spacing:-.04em}.prose p,.prose li{line-height:1.75}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.project-github{display:inline-block;margin-top:35px;font:12px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--ink)}.article{max-width:760px}.article header{border-bottom:1px solid var(--line);padding-bottom:37px}.article h1{font-size:clamp(48px,7vw,83px);line-height:.92}.article-description{margin:25px 0 28px;color:var(--muted);font:22px/1.4 var(--serif)}.article-byline{display:flex;gap:17px;color:var(--muted);font:11px var(--mono);text-transform:uppercase}.article-prose{margin:54px auto 0}.article-prose h2{margin-top:62px}.article-prose h3{margin-top:42px;font:500 25px/1.1 var(--serif)}.article-prose blockquote{margin:30px 0;padding:6px 0 6px 22px;border-left:2px solid var(--accent);color:var(--muted);font:22px/1.45 var(--serif)}.article-prose pre{overflow:auto;padding:20px;background:#eeebe4;border:1px solid var(--line);font-size:13px}.article-prose code{font-family:var(--mono)}.article-prose :not(pre)>code{padding:2px 5px;background:#eeebe4;font-size:.85em}.article-prose table{display:block;overflow:auto;border-collapse:collapse;width:100%;font-size:15px}.article-prose th,.article-prose td{padding:10px;border:1px solid var(--line);text-align:left}.article-prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:7px 0}.writing-index{max-width:800px}.writing-index article{padding:35px 0;border-bottom:1px solid var(--line)}.writing-index h2{margin:8px 0 12px;font:400 38px/1 var(--serif);letter-spacing:-.04em}.writing-index article>p:not(.article-date){margin:0;color:var(--muted)}.about-page{max-width:870px}.about-page h1{max-width:830px;font-size:clamp(52px,7vw,94px)}.about-page .prose{margin:57px 0 0}.cv-page{max-width:850px}.cv-actions{display:flex;gap:25px;margin-top:40px;font:12px var(--mono);text-transform:uppercase}.cv-actions a{border-bottom:1px solid var(--ink)}.cv-note{max-width:570px;color:var(--muted);margin-top:75px;padding-top:25px;border-top:1px solid var(--line)}@media(max-width:700px){.shell{width:min(100% - 32px,1180px)}.site-header{height:65px}nav{gap:15px;font-size:12px}.site-header nav a:nth-child(3){display:none}.hero{padding:70px 0 78px}.hero h1{font-size:67px}.hero-copy{font-size:19px;margin:34px 0}.section{padding:67px 0}.work-row{grid-template-columns:35px 1fr 22px}.work-row h3{font-size:25px}.writing-section,.about-band,.contact-band{grid-template-columns:1fr;gap:30px}.about-band,.contact-band{padding:67px 0}.contact-band{padding-bottom:0}.page-intro{padding:67px 0 50px}.project-grid{display:block;margin-top:40px;border-left:0}.project-grid article{padding:28px 0;border-right:0;border-bottom:1px solid var(--line)}.project-grid article>p:not(.project-kind){min-height:0}.project-page,.article{padding-top:42px}.back-link{margin-bottom:48px}.project-meta{grid-template-columns:1fr}.article h1{font-size:54px}.article-description{font-size:20px}.prose{font-size:17px}.site-footer{margin-top:70px;flex-direction:column;gap:16px}.site-footer div{gap:14px}.hero-links{gap:10px 18px}}.phi-mark{display:block;flex:none;object-fit:contain;mix-blend-mode:multiply}.open-to{margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.capability-group{margin-top:70px}.capability-group .eyebrow{margin-bottom:22px}.wordmark{display:inline-flex;align-items:center;gap:9px;font:500 20px/1 var(--serif);letter-spacing:-.045em}.wordmark span{color:var(--ink)}.footer-identity,.hero-name{display:flex;align-items:center;gap:7px}.article-signature{display:flex;align-items:center;gap:9px;margin:67px 0 0;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.cv-list .work-row{grid-template-columns:72px 1fr}.cv-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:17px;font:11px var(--mono);text-transform:uppercase}.cv-links a{border-bottom:1px solid var(--line)}.cv-links span{color:var(--accent)}@media(max-width:700px){.cv-list .work-row{grid-template-columns:35px 1fr}}.cv-versions{margin-top:52px;border-top:1px solid var(--line)}.cv-version{border-bottom:1px solid var(--line)}.cv-version>summary{display:grid;grid-template-columns:72px 1fr 24px;align-items:center;gap:16px;padding:24px 0;cursor:pointer;list-style:none}.cv-version>summary::-webkit-details-marker{display:none}.cv-version-number{color:var(--muted);font:11px var(--mono)}.cv-version-title{display:grid;gap:6px}.cv-version-title strong{font:500 27px/1 var(--serif);letter-spacing:-.035em}.cv-version-title small{color:var(--muted);font-size:13px}.cv-toggle{color:var(--accent);font-size:20px;transition:transform .2s}.cv-version[open] .cv-toggle{transform:rotate(45deg)}.cv-document{padding:8px 0 52px 88px}.cv-document-header{padding:20px 0 28px;border-bottom:1px solid var(--line)}.cv-document-header .eyebrow{margin-bottom:12px}.cv-contact{max-width:680px;margin:0;color:var(--muted);font-size:13px}.cv-contact a,.cv-section>p a{text-decoration:underline;text-underline-offset:3px}.cv-pdf-links{display:flex;gap:22px;margin:18px 0 0;font:11px var(--mono);text-transform:uppercase}.cv-pdf-links a{border-bottom:1px solid var(--line)}.cv-pdf-links span,.cv-entry-heading h3 span{color:var(--accent)}.cv-section{padding:27px 0;border-bottom:1px solid var(--line)}.cv-section h2{margin:0 0 18px;font:400 28px/1 var(--serif);letter-spacing:-.035em}.cv-section>p,.cv-section li,.cv-skills dd{color:var(--muted);font-size:14px;line-height:1.7}.cv-section>p{max-width:720px;margin:0}.cv-entry{padding:0 0 21px}.cv-entry:last-child{padding-bottom:0}.cv-entry-heading h3{margin:0;font:500 18px/1.2 var(--serif)}.cv-entry-heading h3 a:hover{color:var(--accent)}.cv-entry-heading p{margin:4px 0 8px;color:var(--muted);font:11px/1.5 var(--mono)}.cv-entry-heading p span{color:var(--accent)}.cv-section ul{margin:8px 0 0;padding-left:19px}.cv-skills{display:grid;gap:13px;margin:0}.cv-skills>div{display:grid;grid-template-columns:155px 1fr;gap:15px}.cv-skills dt{font:11px/1.5 var(--mono);text-transform:uppercase}.cv-skills dd{margin:0}.availability{max-width:570px;margin:13px 0 0;color:var(--muted);font-size:14px;line-height:1.6}@media(max-width:700px){.cv-version>summary{grid-template-columns:35px 1fr 20px;gap:10px}.cv-version-title strong{font-size:23px}.cv-document{padding-left:45px}.cv-skills>div{grid-template-columns:1fr;gap:3px}}@media(max-width:700px){.wordmark{gap:0}.wordmark-name{display:none}}.research-hero{position:relative;left:50%;display:grid;width:100vw;min-height:620px;grid-template-columns:1.12fr .88fr;align-items:stretch;transform:translate(-50%);background:#f1efe8}.research-hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:76px clamp(34px,8vw,120px)}.research-hero h1{margin:0;font:500 clamp(68px,9vw,128px)/.78 var(--serif);letter-spacing:-.075em}.research-hero h1 em{color:var(--accent);font-weight:400}.research-hero-focus{margin:35px 0 0;font:10px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.055em}.research-hero-focus span{margin:0 5px;color:#a27b51}.research-hero-intro{max-width:490px;margin:22px 0 28px;color:#5b605a;font-size:17px;line-height:1.7}.panel-link{display:inline-flex;align-items:center;gap:18px;padding:0 0 6px;border-bottom:1px solid #a27b51;font:11px var(--mono);text-transform:uppercase;letter-spacing:.055em}.panel-actions{display:flex;flex-wrap:wrap;gap:14px 25px;align-items:start}.panel-link span{color:#a27b51;font-size:16px}.research-portrait{position:relative;min-height:620px;margin:0;overflow:hidden;background:#d4d1c9}.research-portrait img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 38%;filter:saturate(.72)}.research-portrait figcaption{position:absolute;right:20px;bottom:18px;left:20px;color:#fff;font:9px var(--mono);letter-spacing:.08em;text-shadow:0 1px 8px #0008}@media(max-width:900px){.research-hero{min-height:540px;grid-template-columns:1fr .75fr}.research-hero-copy{padding:56px 34px}.research-hero h1{font-size:clamp(62px,9vw,90px)}.research-portrait{min-height:540px}}@media(max-width:600px){.research-hero{grid-template-columns:1fr;margin:0 -16px}.research-hero-copy{padding:59px 25px 38px}.research-hero h1{font-size:clamp(68px,17vw,96px)}.research-hero-intro{margin:22px 0}.research-portrait{min-height:390px}.panel-actions{gap:14px 20px}}.contact-band{align-items:start}.contact-content{max-width:680px!important}.contact-intro{max-width:570px;margin:19px 0 29px;color:var(--muted)}.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:17px 14px}.inquiry-form label{display:grid;gap:7px;color:var(--muted);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.inquiry-form input,.inquiry-form select,.inquiry-form textarea,.inbox-login input{width:100%;border:1px solid var(--line);border-radius:0;padding:12px 13px;background:#f1efe9;color:var(--ink);font:14px/1.5 var(--sans);letter-spacing:normal;text-transform:none}.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus,.inbox-login input:focus{outline:2px solid #9c7953;outline-offset:2px}.inquiry-form select{min-height:46px}.inquiry-form textarea{min-height:125px;resize:vertical}.inquiry-form .inquiry-message,.inquiry-form .contact-choice,.inquiry-form .inquiry-honey,.inquiry-form>button,.inquiry-form .inquiry-status{grid-column:1/-1}.inquiry-form .contact-choice{display:grid;grid-template-columns:.7fr 1.3fr;gap:14px}.inquiry-form .inquiry-honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.inquiry-form button,.inbox-login button{justify-self:start;border:0;padding:14px 18px;background:#17231f;color:#f5f3ed;cursor:pointer;font:11px var(--mono);letter-spacing:.05em;text-transform:uppercase}.inquiry-form button:hover,.inbox-login button:hover{background:#344a3f}.inquiry-form button:disabled{opacity:.6;cursor:wait}.inquiry-form button span{margin-left:18px;color:#c4a77f}.inquiry-form .inquiry-status{min-height:1.6em;margin:-7px 0 0;color:var(--muted);font-size:12px}.contact-band .availability{margin-top:20px}.contact-band .availability a{text-decoration:underline;text-underline-offset:3px}.private-inbox h1{font:500 clamp(54px,8vw,90px)/.9 var(--serif);letter-spacing:-.06em}.private-inbox>p:not(.eyebrow){max-width:560px;margin-top:24px;color:var(--muted)}.inbox-area{max-width:850px;margin:55px auto 0}.inbox-login{max-width:480px;padding:25px;border:1px solid var(--line);background:#f3f1eb}.inbox-login>label{display:block;margin-bottom:10px;font:10px var(--mono);text-transform:uppercase}.inbox-login>div{display:flex;gap:10px}.inbox-login button{flex:none}.inbox-login>p{margin:12px 0 0;color:#8c493c;font-size:13px}.inbox-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;padding-bottom:13px;border-bottom:1px solid var(--line)}.inbox-toolbar p{margin:0;color:var(--muted);font:11px var(--mono);text-transform:uppercase}.quiet-button{border:0;padding:5px 0;background:none;color:var(--muted);cursor:pointer;font:10px var(--mono);text-decoration:underline;text-underline-offset:3px}.quiet-button:hover{color:var(--ink)}.inbox-list{display:grid;gap:13px}.inquiry-card{padding:22px 24px;border:1px solid var(--line);background:#f3f1eb}.inquiry-card header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.inquiry-card h2{margin:0;font:500 25px/1 var(--serif)}.inquiry-card time{color:var(--muted);font:10px var(--mono)}.inquiry-topic{margin:8px 0 0;color:var(--accent);font:10px var(--mono);text-transform:uppercase}.inquiry-contact{margin:16px 0 0;font-size:13px}.inquiry-contact a{text-decoration:underline;text-underline-offset:3px}.inquiry-body{white-space:pre-wrap;margin:19px 0;line-height:1.7}.inbox-empty{color:var(--muted)}@media(max-width:700px){.inquiry-form{grid-template-columns:1fr}.inquiry-form>*{grid-column:1/-1}.inquiry-form .contact-choice{grid-template-columns:1fr}.inbox-login{padding:20px}.inbox-login>div{display:grid}.inquiry-card header{flex-direction:column;gap:9px}.inquiry-card{padding:20px}}html{background:var(--paper)}body{color:var(--ink);background:radial-gradient(ellipse at 50% -25%,#23372a 0,transparent 42rem),var(--paper)}a:hover{color:var(--accent-soft)}::selection{color:#08110b;background:var(--accent)}.site-header{position:relative;z-index:5;height:78px;border-color:var(--line)}.wordmark,.wordmark span{color:var(--ink)}.phi-mark{filter:invert(1);mix-blend-mode:screen}.site-header nav{gap:7px}.site-header nav a{padding:9px 13px;border:1px solid transparent;border-radius:999px;color:var(--muted);transition:color .18s,border-color .18s,background .18s}.site-header nav a.active,.site-header nav a:hover{border-color:var(--line);background:var(--surface);color:var(--accent-soft)}.site-footer{border-color:var(--line)}.eyebrow{color:var(--accent);letter-spacing:.12em}.research-hero{min-height:640px;background:linear-gradient(115deg,#151b17,#121713 60%,#19221b);border-bottom:1px solid var(--line)}.research-hero-copy{padding-left:max(48px,calc((100vw - 1180px)/2 + 45px))}.research-hero h1{color:#eef4ef;font-size:clamp(75px,10.4vw,145px);line-height:.74}.research-hero h1 em{color:var(--accent)}.research-hero-focus{color:#d1ded4}.research-hero-focus span{color:var(--accent)}.research-hero-intro{color:#aab7ad;max-width:440px}.panel-link{border-color:#51785d}.panel-link:hover{color:var(--accent-soft);border-color:var(--accent)}.panel-link span{color:var(--accent)}.research-portrait{min-height:640px;background:#1b241e}.research-portrait:after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,rgba(17,20,18,.22),transparent 42%),linear-gradient(0deg,rgba(9,13,10,.48),transparent 28%);pointer-events:none}.research-portrait img{filter:saturate(.54) contrast(1.04)}.research-portrait figcaption{z-index:1;color:#cfdbd1;letter-spacing:.14em}.section{border-color:var(--line)}.section-heading>p:not(.eyebrow),.work-row p:not(.project-kind),.article-row p:not(.article-date),.about-band div>p,.contact-intro{color:var(--muted)}.work-list{border-color:var(--line)}.work-row{padding:29px 22px;border-color:var(--line);transition:background .18s,border-color .18s}.work-row:hover{background:linear-gradient(90deg,rgba(145,213,169,.07),transparent)}.work-index,.project-kind,.article-date{color:#7f9084}.status{color:var(--accent)}.text-link{color:var(--accent-soft);border-color:#51785d}.text-link:hover{color:#d2f1da;border-color:var(--accent)}.writing-section{gap:clamp(40px,8vw,115px)}.article-list{border-color:var(--line)}.article-row{padding:25px 18px;border-color:var(--line);transition:background .18s}.article-row:hover{background:var(--surface)}.article-row>span{color:var(--accent)}.about-band,.contact-band{border-color:var(--line)}.contact-band{position:relative;margin-top:10px;padding:70px 34px;border:1px solid var(--line);background:radial-gradient(ellipse at 100% 0,rgba(74,133,89,.17),transparent 55%),var(--surface)}.contact-band h2{color:#e9f1eb}.contact-band .availability{color:var(--muted)}.contact-band .availability a{color:var(--accent-soft)}.page-intro{position:relative;margin-top:42px;padding:60px 52px 52px;border:1px solid var(--line);background:linear-gradient(120deg,rgba(145,213,169,.055),transparent 68%),var(--surface)}.page-intro:after{position:absolute;top:30px;right:30px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 22px #91d5a973;content:""}.page-intro h1{color:#e8eee9;font-size:clamp(55px,8vw,98px);line-height:.9}.page-intro>p:not(.eyebrow){color:var(--muted)}.capability-group{padding-top:28px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;border:0;margin-top:19px}.project-grid article{display:flex;min-height:100%;flex-direction:column;align-items:flex-start;padding:24px;border:1px solid var(--line);background:var(--surface);transition:transform .2s,border-color .2s,background .2s}.project-grid article:hover{transform:translateY(-3px);border-color:#52745c;background:var(--surface-raised)}.project-grid h2{color:var(--ink)}.project-grid article>p:not(.project-kind){min-height:0;color:var(--muted)}.project-grid .text-link{margin-top:auto}.topics{gap:7px}.topics span{border-color:#34433a;border-radius:99px;color:#a7b7ab;background:#91d5a909}.writing-index{max-width:none;margin-top:20px}.writing-index article{padding:30px 25px;border:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.writing-index article+article{margin-top:11px}.writing-index h2{font-size:clamp(30px,4vw,42px)}.writing-index article>p:not(.article-date){color:var(--muted)}.project-page,.article{max-width:900px;padding-top:48px}.project-page .back-link,.article .back-link{margin-bottom:42px;color:var(--accent)}.project-page>h1{font-size:clamp(55px,8vw,100px);line-height:.91}.project-lede{color:#c0cbc3;font-size:clamp(23px,3vw,30px)}.project-meta{border-color:var(--line);background:var(--surface);padding:20px 22px}.project-meta span{color:#829286}.project-meta strong{color:#dce7de}.prose{color:#c4cec6}.prose h2{color:#e8eee9}.prose a{color:var(--accent)}.prose pre,.prose :not(pre)>code{color:#d8e4da;background:#1b241e;border-color:var(--line)}.prose th,.prose td{border-color:var(--line)}.project-github,.cv-actions a{border-color:#55745e;color:var(--accent-soft)}.article header{border-color:var(--line)}.article h1{color:#eef4ef}.article-description{color:#b5c2b8}.article-byline{color:#89988d}.article-prose blockquote{border-color:var(--accent);color:#aebbb1}.article-prose pre{color:#d8e4da;background:#1b241e;border-color:var(--line)}.article-prose :not(pre)>code{color:#d7e8db;background:#202a23}.article-prose th,.article-prose td{border-color:var(--line)}.about-page{max-width:100%}.about-page>img{width:220px;height:260px;border:1px solid var(--line);border-radius:4px!important;filter:saturate(.68)}.about-page .prose{max-width:720px}.cv-version,.cv-versions{border-color:var(--line)}.cv-version>summary{padding:27px 18px;background:var(--surface)}.cv-version-title strong{color:#e8eee9}.cv-version-title small,.cv-version-number,.cv-toggle{color:var(--muted)}.cv-document{padding-top:22px}.cv-document-header,.cv-section{border-color:var(--line)}.cv-contact,.cv-section>p,.cv-section li,.cv-skills dd,.cv-entry-heading p{color:var(--muted)}.cv-section h2,.cv-entry-heading h3,.cv-skills dt{color:#e1eae3}.cv-pdf-links a{color:var(--accent-soft);border-color:#55745e}.cv-entry-heading p span,.cv-entry-heading h3 span,.cv-pdf-links span{color:var(--accent)}.cv-note{border-color:var(--line);color:var(--muted)}.inbox-login,.inquiry-card{border-color:var(--line);background:var(--surface)}.inquiry-form input,.inquiry-form select,.inquiry-form textarea,.inbox-login input{border-color:var(--line);background:#111613;color:var(--ink)}.inquiry-form button,.inbox-login button{background:#285338;color:#eef7ef}.inquiry-form button:hover,.inbox-login button:hover{background:#356b48}@media(max-width:700px){.site-header{height:68px}.site-header nav{gap:1px}.site-header nav a{padding:8px 9px}.research-hero{grid-template-columns:1fr}.research-hero-copy{padding:57px 25px 44px}.research-hero h1{font-size:clamp(76px,18vw,112px)}.research-portrait{min-height:440px}.page-intro{margin-top:25px;padding:42px 24px 35px}.page-intro:after{top:20px;right:20px}.section{padding:65px 0}.work-row{padding:22px 12px}.contact-band{padding:42px 24px}.cv-document{padding-left:22px;padding-right:8px}}.research-visual{position:relative;display:grid;min-height:640px;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(91,151,105,.16),transparent 34%),linear-gradient(145deg,#121713,#19221b)}.research-visual:before,.research-visual:after{position:absolute;width:min(35vw,430px);aspect-ratio:1;border:1px solid rgba(145,213,169,.12);border-radius:50%;content:""}.research-visual:after{width:min(24vw,290px);border-color:#91d5a933}.visual-orbit{position:absolute;width:min(31vw,380px);aspect-ratio:1;border:1px dashed rgba(145,213,169,.28);border-radius:50%}.orbit-one{transform:rotate(34deg) scaleY(.58)}.orbit-two{transform:rotate(-34deg) scaleY(.58)}.visual-core{z-index:1;display:grid;width:108px;aspect-ratio:1;place-items:center;border:1px solid rgba(145,213,169,.5);border-radius:50%;background:radial-gradient(circle,#284d34,#17221a 75%);box-shadow:0 0 70px #6fbe841f;color:#b6e5c4;font:400 52px var(--serif)}.visual-node{position:absolute;z-index:2;width:9px;aspect-ratio:1;border-radius:50%;background:#9bddae;box-shadow:0 0 18px #91d5a9b3}.node-one{top:29%;left:38%}.node-two{top:57%;right:27%;width:6px}.node-three{bottom:26%;left:33%;width:7px}.visual-label,.visual-coordinate{position:absolute;color:#8ea995;font:9px var(--mono);letter-spacing:.16em}.label-one{top:24%;left:19%}.label-two{top:41%;right:16%}.label-three{bottom:21%;left:22%}.visual-coordinate{right:24px;bottom:22px;color:#627669}@media(max-width:900px){.research-visual{min-height:540px}.visual-orbit{width:min(43vw,380px)}.research-visual:before{width:min(48vw,430px)}.research-visual:after{width:min(34vw,290px)}}@media(max-width:600px){.research-visual{min-height:340px}.visual-orbit{width:min(64vw,320px)}.research-visual:before{width:min(70vw,370px)}.research-visual:after{width:min(48vw,250px)}.research-hero h1{font-size:clamp(68px,16vw,100px)}}.contract-intro{position:relative;max-width:none}.contract-private-warning{max-width:760px;display:grid;gap:4px;margin-top:18px;border:1px solid #9a7a3b;border-radius:5px;background:#9a7a3b14;padding:12px 14px;color:var(--muted)}.contract-private-warning strong{color:#d8b978;font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.contract-private-warning span{font-size:13px;line-height:1.55}.contract-payment-download{display:inline-flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:16px;padding:10px 14px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.contract-payment-download:hover{border-color:var(--accent);background:var(--surface-raised);color:var(--accent)}.contract-payment-download .payment-icon{color:var(--accent);flex-shrink:0}.contract-payment-download .payment-btn-meta{color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0;padding-left:4px;border-left:1px solid var(--line)}.contract-payment-download .download-icon{color:var(--muted);margin-left:auto;flex-shrink:0}.contract-payment-download:hover .download-icon{color:var(--accent)}.contract-payment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.contract-payment-heading p{margin:0;color:var(--muted);font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}.contract-payment-heading div{display:flex;gap:6px}.contract-payment-heading button{border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);padding:6px 9px;font:10px var(--mono);cursor:pointer}.contract-payment-heading button:hover{border-color:var(--accent);color:var(--accent)}.contract-payment-accounts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contract-payment-accounts div{display:grid;gap:3px;border:1px solid var(--line);border-radius:5px;padding:9px}.contract-payment-accounts span,.contract-payment-accounts small{color:var(--muted);font:9px var(--mono)}.contract-payment-accounts strong{font:500 16px var(--mono)}.contract-payment-status{min-height:16px;margin:8px 0 0;color:var(--accent);font:10px var(--mono)}.contract-workspace{max-width:920px;margin:0 auto}.contract-form{display:block}.contract-section-title{display:flex;align-items:center;gap:14px;margin:55px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.contract-section-title span{color:var(--accent);font:11px var(--mono)}.contract-section-title h2{margin:0;font:400 34px/1 var(--serif)}.contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contract-grid label,.signature-area label{display:grid;gap:7px;color:var(--muted);font:11px var(--mono);text-transform:uppercase;letter-spacing:.04em}.contract-grid input,.contract-grid select,.contract-grid textarea{width:100%;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink);padding:12px 13px;font:16px var(--sans);text-transform:none;letter-spacing:0}.contract-grid textarea{resize:vertical;line-height:1.55}.contract-full{grid-column:1/-1}.scope-editor{display:grid;gap:10px}.scope-editor-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.scope-editor-heading div{display:grid;gap:4px}.scope-editor-heading span{color:var(--muted);font:11px var(--mono);text-transform:uppercase}.scope-editor-heading small{color:var(--muted);font:12px var(--sans)}.scope-editor-heading button,.scope-item button{border:1px solid var(--line);border-radius:3px;background:#1c241f;color:var(--ink);padding:8px 10px;cursor:pointer}.scope-items{display:grid;gap:8px}.scope-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.scope-item label{min-width:0}.contract-weekly-frame{margin:0;border-left:3px solid var(--accent);color:var(--muted)!important;padding:5px 0 5px 10px;font:12px/1.5 var(--sans)!important;text-transform:none!important;letter-spacing:0!important}.signature-area{border:1px solid var(--line);border-radius:4px;background:#fff;padding:14px}#signature-pad{display:block;width:100%;height:auto;max-height:260px;border:1px solid #d8ddd9;background:#fff;cursor:crosshair;touch-action:none}.signature-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:#657069;font:11px var(--mono)}.signature-toolbar .quiet-button{color:#445148}.agreement-check{display:grid!important;grid-template-columns:18px 1fr;align-items:start;padding-top:12px;border-top:1px solid #e3e7e4;color:#445148!important;text-transform:none!important;letter-spacing:0!important}.agreement-check input{margin-top:3px}.contract-status{min-height:26px;margin:18px 0 8px;color:var(--accent)}.contract-draft-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:24px 0 16px;border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:12px 16px}.contract-draft-banner-content{display:grid;gap:3px}.contract-draft-banner strong{color:var(--ink);font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.05em}.contract-draft-banner span{color:var(--muted);font-size:13px;line-height:1.45}.contract-draft-banner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.contract-draft-banner-actions button{border:1px solid var(--line);border-radius:3px;background:#1c241f;color:var(--ink);padding:7px 12px;font:11px var(--mono);cursor:pointer}.contract-draft-banner-actions button:hover{border-color:var(--accent);color:var(--accent)}.contract-draft-banner-actions button:disabled{opacity:.65;cursor:wait}.contract-resume-prompt{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:20px 0;border:1px solid #3d5e44;border-radius:5px;background:#2853381f;padding:14px 16px}.contract-resume-prompt div{display:grid;gap:3px}.contract-resume-prompt strong{color:#82c996;font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.05em}.contract-resume-prompt span{color:var(--ink);font-size:13px}.contract-resume-actions{display:flex;gap:8px;align-items:center}.contract-resume-actions button{border:1px solid #4d7058;border-radius:3px;background:#285338;color:#fff;padding:7px 12px;font:600 11px var(--mono);cursor:pointer}.contract-resume-actions button.quiet-button{border-color:transparent;background:transparent;color:var(--muted)}.contract-actions{display:flex;gap:12px;align-items:stretch;margin-top:14px}.contract-draft-button{flex:1;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink);padding:14px 18px;font:600 14px var(--sans);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}.contract-draft-button:hover{border-color:var(--accent);background:#2853381a}.contract-draft-button:disabled{opacity:.65;cursor:wait}.contract-actions .contract-submit{flex:2}.contract-submit{width:100%;border:0;border-radius:3px;background:#285338;color:#eef7ef;padding:14px 20px;font:600 14px var(--sans);cursor:pointer}.contract-submit:hover{background:#356b48}.contract-submit:disabled{opacity:.65;cursor:wait}.site-header{position:relative}.calendar-workspace{padding-top:55px}.calendar-owner{margin-bottom:65px;border:1px solid var(--line);background:var(--surface);padding:24px}.calendar-owner-heading,.calendar-toolbar,.booking-dialog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.calendar-owner-heading h2,.calendar-toolbar h2,.booking-dialog-heading h2{margin:0;font:400 38px/1 var(--serif)}.calendar-connect{border-bottom:1px solid var(--accent);color:var(--accent);font:11px var(--mono)}.calendar-owner-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}.availability-form{border-top:1px solid var(--line);padding-top:18px}.availability-form h3,.calendar-rules h3{margin:0 0 16px;font:400 25px var(--serif)}.availability-form label,.calendar-toolbar label,.booking-dialog label{display:grid;gap:6px;margin-bottom:12px;color:var(--muted);font:10px var(--mono);text-transform:uppercase}.availability-form label span{display:inline;text-transform:none}.availability-form input,.availability-form select,.calendar-toolbar input,.booking-dialog input,.booking-dialog textarea{width:100%;border:1px solid var(--line);border-radius:3px;background:#111613;color:var(--ink);padding:10px 12px;font:15px var(--sans);text-transform:none}.availability-form button,.availability-rule button{border:1px solid var(--line);border-radius:3px;background:#285338;color:#eef7ef;padding:10px 12px;font:12px var(--sans);cursor:pointer}.weekday-picker{margin-bottom:12px;color:var(--muted);font:10px var(--mono);text-transform:uppercase}.weekday-picker>span{display:block;margin-bottom:6px}.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday-picker>span{grid-column:1/-1}.weekday-picker label{display:block;margin:0;text-align:center}.weekday-picker label input{position:absolute;opacity:0}.weekday-picker label span{display:block!important;border:1px solid var(--line);border-radius:3px;padding:8px 4px;color:var(--muted);text-transform:none;cursor:pointer}.weekday-picker label input:checked+span{border-color:var(--accent);background:#264332;color:#eaf5ed}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.calendar-rules{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}.availability-rule{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.availability-rule p{margin:0;color:var(--muted)}.availability-rule button{background:transparent;color:var(--muted)}.calendar-toolbar{align-items:end;border-bottom:1px solid var(--line);padding-bottom:18px}.calendar-toolbar label{margin:0}.calendar-toolbar input{width:170px}.calendar-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:20px}.calendar-day{border:1px solid var(--line);padding:16px;min-height:130px}.calendar-day h3{margin:0 0 12px;font:400 20px var(--serif)}.calendar-day button{border:1px solid var(--line);border-radius:3px;margin:0 6px 6px 0;background:var(--surface);color:var(--ink);padding:8px 10px;cursor:pointer;font:12px var(--mono)}.calendar-day button:hover{border-color:var(--accent);color:var(--accent)}.calendar-empty{margin:20px 0;color:var(--muted);grid-column:1/-1}.booking-dialog{width:min(560px,calc(100% - 32px));border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink);padding:24px}.booking-dialog::backdrop{background:#040805b8}.booking-dialog-heading{align-items:flex-start}.booking-dialog-heading button{border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}.selected-slot{border-block:1px solid var(--line);padding:12px 0;color:var(--accent);font:12px var(--mono)}.booking-dialog textarea{resize:vertical}.booking-status{min-height:24px;color:var(--accent)}.booking-submit{width:100%;border:0;border-radius:3px;background:#285338;color:#eef7ef;padding:12px;cursor:pointer}.booking-submit:disabled{opacity:.65}@media(max-width:700px){.calendar-owner-grid{grid-template-columns:1fr}.calendar-owner-heading,.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-slots{grid-template-columns:1fr 1fr}.calendar-toolbar label,.calendar-toolbar input{width:100%}}@media(max-width:700px){.contract-grid{grid-template-columns:1fr}.contract-full{grid-column:auto}.contract-section-title{margin-top:38px}.signature-toolbar{align-items:flex-start;gap:12px}.contract-actions{flex-direction:column}.contract-draft-banner,.contract-resume-prompt{flex-direction:column;align-items:flex-start}}.admin-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:90px}.admin-refresh-bar{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:0 0 16px}.admin-refresh-bar label{display:grid;gap:6px;color:var(--muted);font:11px var(--mono);text-transform:uppercase}.admin-refresh-bar select{min-width:180px;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink);padding:8px 10px}.admin-refresh-bar button{border:1px solid var(--line);border-radius:3px;background:#1c241f;color:var(--ink);padding:8px 10px;cursor:pointer}.admin-refresh-bar .primary-admin-action{margin-left:auto;border-color:#4d7058;background:#285338;color:#fff;font-weight:700}#admin-last-refreshed{align-self:center;color:var(--muted);font:11px var(--mono)}.admin-dashboard>section{border:1px solid var(--line);background:var(--surface);padding:20px}.admin-dashboard h2{margin:0 0 18px;font:400 28px var(--serif)}.admin-card{display:grid;gap:8px;border-bottom:1px solid var(--line);padding:14px 0}.admin-card:last-child{border-bottom:0}.admin-card strong{color:var(--ink)}.admin-card span,.admin-card p{color:var(--muted)}.admin-card p{margin:4px 0 0;white-space:pre-wrap}.admin-card>div{display:flex;flex-wrap:wrap;gap:8px}.contract-management{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:90px}.contract-management>section{border:1px solid var(--line);background:var(--surface);padding:20px;min-height:180px}.contract-section-heading{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.contract-section-heading h2{margin:0;font:400 34px/1 var(--serif)}.contract-section-heading .eyebrow{margin-bottom:7px}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;padding:0!important}.admin-card button,.contract-editor button{border:1px solid var(--line);border-radius:3px;background:#1c241f;color:var(--ink);padding:8px 10px;cursor:pointer}.admin-card .danger-button{border-color:#6e3d3d;color:#ffb3b3;background:#241818}.admin-card button:disabled{cursor:not-allowed;opacity:.45}.admin-status{color:var(--accent)!important;font:10px var(--mono);text-transform:uppercase}.contract-editor{width:min(780px,calc(100% - 32px));border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink);padding:24px}.contract-editor-form{max-height:calc(100vh - 48px);overflow-y:auto;padding-right:4px}.contract-editor::backdrop{background:#040805c7}.contract-editor header,.contract-editor footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.contract-editor header h2{margin:0;font:400 34px var(--serif)}.contract-editor header button{border:0;background:transparent;color:var(--muted);font-size:26px}.contract-editor label{display:grid;gap:7px;margin:20px 0;color:var(--muted);font:10px var(--mono);text-transform:uppercase}.contract-editor input,.contract-editor select{width:100%;border:1px solid var(--line);border-radius:3px;background:#111613;color:var(--ink);padding:10px 12px;font:13px var(--sans);text-transform:none}.contract-editor textarea{resize:vertical;border:1px solid var(--line);border-radius:3px;background:#111613;color:var(--ink);padding:12px;font:12px var(--mono)}.contract-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.contract-field-full{grid-column:1/-1}.admin-scope-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:8px}.admin-scope-row button{border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--muted);padding:9px 10px;cursor:pointer}.contract-editor .signature-area{border:1px solid var(--line);padding:12px;margin-bottom:14px}.contract-editor canvas{width:100%;height:auto;max-height:260px;border:1px solid var(--line);background:#fff}@media(max-width:800px){.admin-dashboard,.contract-management{grid-template-columns:1fr}.contract-editor footer{align-items:stretch;flex-direction:column}.contract-fields{grid-template-columns:1fr}.contract-field-full{grid-column:auto}}@media(max-width:900px){.contract-intro{padding-right:0}}
