@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-italic.BicUS2cM.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-italic.BfTTTDIL.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-italic.Py8at3oI.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-cyrillic-wght-normal.CjwCQKo9.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-ext-wght-normal.BDUtSsKd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-wght-normal.ObQm3Zd1.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}:root{--paper: #f7e9e0;--ink: #452b52;--muted: #857088;--line: #e8d4cd;--accent: #c85060;--mendl: rgba(169, 203, 208, .55);--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-body: "Jost Variable", Futura, "Century Gothic", "Trebuchet MS", sans-serif;--wrap: 72rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3rem;--space-10: 4rem;--space-11: 5rem;--radius-s: 3px;--radius-m: 5px;--radius-l: 8px;--dur-fast: .15s;--dur-base: .2s;--dur-med: .25s;--dur-slow: .4s;--ease-out: cubic-bezier(.2, .6, .2, 1);--z-tip: 20;--z-grain: 100;--z-skip: 200}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:var(--z-grain);pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}::selection{background:var(--mendl)}.is-hidden{display:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}.skip{position:absolute;left:-9999px;top:0;z-index:var(--z-skip);background:var(--ink);color:var(--paper);padding:var(--space-2) var(--space-4);font-size:.85rem}.skip:focus{left:0}.site-header{border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3) var(--space-7);padding-block:var(--space-5)}.wordmark{font-family:var(--font-display);font-optical-sizing:auto;font-weight:560;font-size:1.15rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.site-nav ul{display:flex;flex-wrap:wrap;gap:var(--space-7);list-style:none;margin:0;padding:0}.site-nav a{position:relative;font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color var(--dur-fast) ease}.site-nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform var(--dur-med) ease}.site-nav a:hover{color:var(--ink)}.site-nav a:hover:after,.site-nav a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.site-nav a[aria-current=page]{color:var(--ink)}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;font-weight:480;line-height:1.08;letter-spacing:-.015em;margin:0}.eyebrow{margin:0 0 var(--space-6);font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.lede{margin:var(--space-6) 0 0;max-width:58ch;font-size:1.22rem;line-height:1.65;color:var(--muted)}.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5) var(--space-7);margin-top:var(--space-8)}.btn-primary{position:relative;z-index:0;display:inline-block;overflow:hidden;border:1px solid var(--ink);color:var(--ink);font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:1em 2em;border-radius:var(--radius-l);transition:color var(--dur-med) ease}.btn-primary:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform var(--dur-med) ease}.btn-primary:after{content:"";position:absolute;inset:3px;border:1px solid var(--ink);border-radius:var(--radius-m);pointer-events:none;transition:border-color var(--dur-med) ease}.btn-primary:hover{color:var(--paper)}.btn-primary:hover:before{transform:scaleX(1)}.btn-primary:hover:after{border-color:#f7e9e08c}.link-arrow{display:inline-flex;align-items:baseline;gap:.5em;color:var(--ink);font-weight:500;font-size:.95rem;letter-spacing:.02em;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color var(--dur-base) ease,color var(--dur-base) ease}.link-arrow:after{content:"→";display:inline-block;transition:transform var(--dur-med) ease}.link-arrow:hover{border-color:var(--accent);color:var(--accent)}.link-arrow:hover:after{transform:translate(4px)}.hero{padding-block:clamp(4.5rem,10vw,8.5rem) clamp(3.5rem,8vw,6rem)}.hero h1{max-width:18ch;font-size:clamp(2.55rem,6vw,4.6rem)}.hero h1 em{font-style:italic;color:var(--accent)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero .eyebrow{animation:rise .7s var(--ease-out) .05s backwards}.hero h1{animation:rise .7s var(--ease-out) .16s backwards}.hero .lede{animation:rise .7s var(--ease-out) .28s backwards}.hero .cta-row{animation:rise .7s var(--ease-out) .4s backwards}.manifesto{border-top:1px solid var(--line);padding-block:clamp(3.5rem,7vw,5.5rem)}.manifesto p{margin:0;max-width:46ch;font-family:var(--font-display);font-optical-sizing:auto;font-style:italic;font-size:clamp(1.35rem,2.6vw,1.7rem);line-height:1.45}.proof{margin-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(3.5rem,7vw,6rem);text-align:center}.proof p{margin:var(--space-2) 0;font-family:var(--font-body);font-size:.74rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.lanes ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8) var(--space-9)}.lanes{padding-bottom:clamp(4.5rem,9vw,7rem)}.lane{display:flex;flex-direction:column;border-top:1px solid var(--ink);padding-top:var(--space-4);transition:border-color var(--dur-med) ease}.lane:hover{border-top-color:var(--accent)}.lane .num{display:block;font-family:var(--font-display);font-optical-sizing:auto;font-style:italic;font-size:2.1rem;line-height:1;margin-bottom:var(--space-3);color:var(--accent);opacity:.85;transition:transform var(--dur-med) var(--ease-out)}.lane:hover .num{transform:translate(4px)}.lane h3{font-size:1.35rem;margin-bottom:var(--space-2)}.lane p{margin:0 0 var(--space-4);font-size:.93rem;color:var(--muted);line-height:1.6}.lane .link-arrow{margin-top:auto;align-self:flex-start}.page-head{padding-block:clamp(3.5rem,8vw,6rem) clamp(2rem,4vw,3rem)}.page-head h1{max-width:20ch;font-size:clamp(2.3rem,5vw,3.6rem)}.prose{max-width:62ch;padding-bottom:clamp(3rem,6vw,5rem)}.prose p{margin:0 0 1.5em}.prose a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px}.prose a:hover{color:var(--accent)}.prose blockquote{margin:2em 0;padding-left:var(--space-6);border-left:2px solid var(--accent);font-family:var(--font-display);font-style:italic;font-size:1.25rem;line-height:1.5}.prose h2{font-size:1.6rem;margin:2.25em 0 1em}.prose ul{padding-left:var(--space-5);margin:0 0 1.5em}.prose li{margin-bottom:.75em}.prose li::marker{color:var(--accent)}.case-meta{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-9);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding-block:var(--space-4);margin-bottom:clamp(2rem,4vw,3rem)}.case-meta>div{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.case-meta dd{margin:0}.meta-label{font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.meta-value{font-size:.95rem;color:var(--ink)}.case-meta a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:3px}.case-meta a:hover{color:var(--accent)}.project-list{border-top:1px solid var(--ink);list-style:none;margin:0;padding:0 0 clamp(3rem,6vw,5rem)}.project-row{position:relative;padding-block:var(--space-7);padding-left:var(--space-3);padding-right:var(--space-5);border-bottom:1px solid var(--line);transition:background-color var(--dur-base) ease}.project-row:hover{background:#a9cbd014}.project-row:after{content:"";position:absolute;top:var(--space-6);bottom:var(--space-6);right:0;width:3px;background:#a9cbd0;transform:scaleY(0);transform-origin:center;transition:transform var(--dur-base) var(--ease-out)}.project-row:hover:after{transform:scaleY(1)}.project-card{display:block;color:inherit;text-decoration:none}.project-card .talk-title{transition:color var(--dur-base) ease}.project-card:hover .talk-title{color:var(--accent)}.project-summary{display:block;margin:var(--space-2) 0 0;max-width:62ch;font-size:.98rem;color:var(--muted)}.project-card .talk-meta{display:block}.project-cta{padding-bottom:clamp(3rem,6vw,5rem)}.talk-list{list-style:none;margin:0;padding:0 0 clamp(3rem,6vw,5rem);border-top:1px solid var(--ink)}.talk-row{position:relative;display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--space-2) var(--space-7);padding-block:var(--space-6);padding-left:var(--space-3);padding-right:var(--space-5);border-bottom:1px solid var(--line);transition:background-color var(--dur-base) ease}.talk-row:hover{background:#a9cbd014}.talk-row:after{content:"";position:absolute;top:var(--space-5);bottom:var(--space-5);right:0;width:3px;background:#a9cbd0;transform:scaleY(0);transform-origin:center;transition:transform var(--dur-base) var(--ease-out);pointer-events:none}.talk-row:hover:after{transform:scaleY(1)}a.talk-title:after{content:"";position:absolute;inset:0}.talk-date{font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:var(--space-2);transition:color var(--dur-base) ease}.talk-row:hover .talk-date{color:var(--accent)}.talk-title{display:inline-block;font-family:var(--font-display);font-optical-sizing:auto;font-weight:500;font-size:1.35rem;line-height:1.25;color:var(--ink);text-decoration:none}a.talk-title:hover{color:var(--accent)}.talk-meta{margin:var(--space-1) 0 0;font-size:.9rem;color:var(--muted)}.talk-desc{margin:var(--space-2) 0 0;font-size:.98rem;color:var(--muted);max-width:62ch}.empty{font-family:var(--font-display);font-style:italic;color:var(--muted);padding-block:var(--space-8) var(--space-10);margin:0;border-top:1px solid var(--line)}.substack-card{display:flex;flex-direction:column;gap:var(--space-2);max-width:30rem;margin-bottom:clamp(3rem,6vw,5rem);padding:var(--space-6) var(--space-7);border:1px solid var(--ink);position:relative;text-decoration:none;transition:background-color var(--dur-base) ease}.substack-card:after{content:"";position:absolute;inset:3px;border:1px solid var(--line);pointer-events:none}.substack-card:hover{background:#a9cbd02e}.card-kicker{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.card-title{font-family:var(--font-display);font-optical-sizing:auto;font-weight:500;font-size:1.5rem;color:var(--ink)}.card-sub{font-size:.92rem;color:var(--muted)}.archive{padding-bottom:clamp(3rem,6vw,5rem)}.ribbon-wrap{margin-block:var(--space-2) var(--space-7);overflow-x:auto;scrollbar-width:thin}.ribbon-track{position:relative;height:104px;min-width:580px}.ribbon-baseline{position:absolute;left:0;right:0;bottom:36px;height:1px;background:var(--line)}.year-label{position:absolute;bottom:10px;transform:translate(-50%);font-family:var(--font-body);font-size:.66rem;font-weight:500;letter-spacing:.08em;color:var(--muted)}.tick{position:absolute;bottom:30px;transform:translate(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer}.tick-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);transition:transform var(--dur-fast) ease,background-color var(--dur-fast) ease}.tick:hover .tick-dot,.tick:focus-visible .tick-dot{background:var(--ink);transform:scale(1.55)}.tick-tip{position:absolute;bottom:100%;left:50%;transform:translate(-50%,6px);background:var(--ink);color:var(--paper);font-family:var(--font-body);font-size:.72rem;letter-spacing:.04em;padding:.4em .75em;border-radius:var(--radius-s);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) ease,transform var(--dur-fast) ease;z-index:var(--z-tip)}.tick:hover .tick-tip,.tick:focus-visible .tick-tip{opacity:1;transform:translate(-50%,2px)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-7)}.chip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);font-size:.73rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--radius-s);padding:.6em 1.1em;cursor:pointer;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease,background-color var(--dur-fast) ease}.chip sup{font-family:var(--font-display);font-style:italic;text-transform:none;letter-spacing:0;font-size:.88rem;line-height:1;opacity:.65}.chip:hover{border-color:var(--accent);color:var(--ink)}.chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip.is-active sup{opacity:.85}.row-themes{opacity:.8}.ledger-row.is-hidden{display:none}.ledger-row.flash{animation:rowflash 1.5s ease-out}@keyframes rowflash{0%{background-color:#a9cbd066}to{background-color:transparent}}.rates-section{padding-bottom:clamp(3rem,6vw,5rem)}.rates-section h2{font-size:1.7rem;margin-bottom:var(--space-7)}.rates{border-top:1px solid var(--ink);margin:0 0 var(--space-8)}.rate-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-8);padding-block:var(--space-6);border-bottom:1px solid var(--line)}.rate-row dt{font-family:var(--font-display);font-optical-sizing:auto;font-weight:500;font-size:1.2rem}.rate-desc{grid-column:1 / -1;margin:0;font-size:.95rem;color:var(--muted);max-width:56ch}.rate-price{align-self:center;white-space:nowrap;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.contact-note{max-width:52ch;color:var(--muted);font-size:.98rem}.email-hint{margin:var(--space-4) 0 0;font-size:.85rem;letter-spacing:.04em;color:var(--muted)}.contact-form-section{max-width:34rem;padding-bottom:clamp(3rem,6vw,5rem)}.contact-form-section h2{font-size:1.7rem;margin-bottom:var(--space-6)}.contact-form-section form{display:flex;flex-direction:column;gap:var(--space-5)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.contact-form-section label{display:flex;flex-direction:column;gap:var(--space-1)}.form-label{font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.contact-form-section input,.contact-form-section select,.contact-form-section textarea{font-family:var(--font-body);font-size:1rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:var(--space-2) 0;border-radius:0}.contact-form-section textarea{resize:vertical;line-height:1.6}.contact-form-section input:focus,.contact-form-section select:focus,.contact-form-section textarea:focus{outline:none;border-bottom-color:var(--accent)}.contact-form-section .btn-primary{align-self:flex-start}.form-status{margin:0;font-family:var(--font-display);font-style:italic;color:var(--muted);min-height:1.5em}@media(max-width:560px){.form-grid{grid-template-columns:1fr}}.site-footer{border-top:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}.footer-tagline{width:100%;margin:0;font-family:var(--font-display);font-optical-sizing:auto;font-style:italic;font-size:1rem;letter-spacing:normal;text-transform:none;color:var(--ink)}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-7);align-items:baseline;justify-content:space-between;padding-block:var(--space-7);font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.site-footer a{color:inherit;text-decoration:none;transition:color var(--dur-fast) ease}.site-footer a:hover{color:var(--accent)}.footer-links{display:flex;gap:var(--space-6);list-style:none;margin:0;padding:0}@media(max-width:720px){.lanes ol{grid-template-columns:1fr;gap:var(--space-7)}.talk-row{grid-template-columns:1fr;gap:var(--space-1)}.talk-date{padding-top:0}.site-header .wrap{justify-content:center;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
