:root{--cream: #F5F1E8;--ink: #1A1A1A;--ink-muted: #5A4F45;--rosa: #E91E63;--ochre: #D4A017;--cobalt: #1E5FBC;--green: #1B5E20;--aubergine: #2A1B2D;--cream-faded: rgba(245, 241, 232, .6);--rule: #1A1A1A;--rule-soft: rgba(26, 26, 26, .15);--font-display: "Cormorant Garamond", Georgia, serif;--font-display-italic: "Fraunces", Georgia, serif;--font-body: "Karla", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-impact: "Bebas Neue", Impact, sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--cream);background-image:url(/grid-bg.png);background-size:20px 20px;background-repeat:repeat;color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.55;font-weight:400;min-height:100vh;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:var(--rosa);text-decoration:none}a:focus-visible{outline:2px solid var(--rosa);outline-offset:3px}button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}ul,ol{list-style:none}::selection{background:var(--rosa);color:var(--cream)}.container{max-width:900px;margin:0 auto;padding:0 24px}@media(min-width:768px){.container{padding:0 60px}}.coord-strip{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:8px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:500}.coord-strip .dot-pink{color:var(--rosa)}@media(min-width:768px){.coord-strip{padding:8px 60px}}.site-nav{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:1.25rem 0;border-bottom:2px solid var(--ink);margin-bottom:2.5rem}.site-nav .brand{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:1;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.site-nav .brand-last{font-family:var(--font-display-italic);font-style:italic;font-weight:800;font-variation-settings:"SOFT" 100,"WONK" 100;color:var(--rosa);margin-left:.1em}.site-nav-links{display:flex;gap:1.5rem;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;margin:0;padding:0}.site-nav-links a{color:var(--ink);text-decoration:none;padding-bottom:2px;border-bottom:1.5px solid transparent;transition:border-color .15s,color .15s}.site-nav-links a:hover{border-bottom-color:var(--rosa)}.site-nav-links a.current{border-bottom-color:var(--rosa);color:var(--rosa)}@media(max-width:480px){.site-nav-links{gap:.85rem;font-size:10px;letter-spacing:.12em}}.page-label{font-family:var(--font-impact);font-size:28px;letter-spacing:.1em;margin-bottom:.5rem;display:flex;align-items:center;gap:12px;color:var(--ink)}.page-label:before{content:"";width:36px;height:8px;background:var(--rosa);flex-shrink:0}.page-label.ochre:before{background:var(--ochre)}.page-label.cobalt:before{background:var(--cobalt)}.page-label.green:before{background:var(--green)}.page-title{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,7vw,72px);line-height:1;letter-spacing:-.02em;margin-bottom:2.5rem;color:var(--ink)}.hero-name{font-family:var(--font-display);font-weight:600;line-height:.85;letter-spacing:-.035em;color:var(--ink);margin:0 0 1.5rem;font-size:clamp(64px,13vw,130px)}.hero-first{display:block;font-style:normal;font-weight:600}.hero-last{display:block;font-family:var(--font-display-italic);font-style:italic;font-weight:800;font-variation-settings:"SOFT" 100,"WONK" 100;color:var(--rosa);margin-left:.15em}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2.5rem}.chip{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:6px 10px;color:#fff;font-weight:500}.chip-rosa{background:var(--rosa)}.chip-ochre{background:var(--ochre);color:var(--ink)}.chip-cobalt{background:var(--cobalt)}.chip-green{background:var(--green)}.chip-dark{background:var(--ink)}.tag-line{font-family:var(--font-display);font-style:italic;color:var(--ink);line-height:1.3;border-left:4px solid var(--rosa);padding-left:1rem;margin-bottom:2.5rem;font-size:clamp(18px,2.5vw,22px)}.flagship{position:relative;margin:0 0 3rem;isolation:isolate}.flagship:before{content:"";position:absolute;inset:12px -12px -12px 12px;background:var(--ochre);z-index:0}.flagship-inner{background:var(--rosa);color:#fff;padding:1.75rem 1.75rem 1.5rem;position:relative;z-index:1}.flagship-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.22em;margin-bottom:.6rem;opacity:.95;font-weight:500}.flagship-stat{font-family:var(--font-impact);font-weight:400;line-height:1;margin-bottom:.4rem;letter-spacing:.01em;font-size:clamp(44px,8vw,76px)}.flagship-stat .arrow{font-family:var(--font-display);font-style:italic;font-weight:400}.flagship-stat .pct{background:var(--ink);color:var(--ochre);padding:0 8px;margin-left:8px;display:inline-block}.flagship-desc{font-family:var(--font-body);font-size:.85em;line-height:1.5;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.4)}.thesis-callout{position:relative;margin:2rem 0;isolation:isolate}.thesis-callout:before{content:"";position:absolute;inset:8px -8px -8px 8px;background:var(--ochre);z-index:0}.thesis-callout-inner{background:var(--rosa);color:#fff;padding:1.25rem 1.5rem;position:relative;z-index:1}.thesis-callout-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.22em;margin-bottom:.75rem;opacity:.9;font-weight:500}.thesis-callout-body{font-family:var(--font-display);font-style:italic;line-height:1.4;font-size:1.05em}.thesis-callout-body p+p{margin-top:.75rem}.h2-rosa,.h2-cobalt,.h2-ochre,.h2-green{font-family:var(--font-impact);font-size:clamp(26px,4vw,38px);letter-spacing:.08em;margin-top:3rem;margin-bottom:1.25rem;color:var(--ink);display:flex;align-items:center;gap:12px;font-weight:400}.h2-rosa:before,.h2-cobalt:before,.h2-ochre:before,.h2-green:before{content:"";width:36px;height:8px;background:var(--rosa);flex-shrink:0}.h2-cobalt:before{background:var(--cobalt)}.h2-ochre:before{background:var(--ochre)}.h2-green:before{background:var(--green)}.more-list{padding:0;border-top:2px solid var(--ink);margin:0}.more-list li{border-bottom:1px solid var(--ink);list-style:none}.more-list a{color:var(--ink);text-decoration:none;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:baseline;padding:1.1rem .5rem;transition:background .15s}.more-list a:hover{background:#e91e630f}.more-list .num{font-family:var(--font-impact);font-size:1.8em;color:var(--rosa);line-height:1;min-width:32px}.more-list .name{font-family:var(--font-display);font-weight:500;font-size:1.5em;line-height:1}.more-list .name .meta{display:block;font-family:var(--font-body);font-size:.55em;color:var(--ink-muted);margin-top:4px;font-weight:400;font-style:normal}.more-list .arrow{font-family:var(--font-display);color:var(--rosa);font-size:1.5em;font-style:italic}.duotone-photo-wrap{margin:2rem 0 2.5rem}.duotone-photo{position:relative;isolation:isolate;background:var(--rosa);overflow:hidden;margin:0}.duotone-photo img{display:block;width:100%;height:auto;filter:grayscale(100%) contrast(1.05);mix-blend-mode:multiply}.duotone-photo:after{content:"";position:absolute;inset:0;background:var(--aubergine);mix-blend-mode:lighten;pointer-events:none}.duotone-photo-caption{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);margin-top:.75rem;line-height:1.5}.duotone-photo-caption strong{color:var(--ink);font-weight:700;margin-right:.5rem}@media(min-width:900px){.duotone-photo-wrap.with-side-caption{display:grid;grid-template-columns:1fr 200px;gap:1.5rem;align-items:end;margin:2.5rem 0 3rem}.duotone-photo-wrap.with-side-caption .duotone-photo-caption{margin-top:0;align-self:end;padding-bottom:1rem}}.footer-line{margin-top:3rem;padding:1.5rem 0 1rem;border-top:2px solid var(--ink);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px}.footer-line .footer-star{color:var(--rosa);font-size:14px;letter-spacing:.2em}@media(max-width:480px){.footer-line{flex-wrap:wrap;gap:8px;font-size:9px}}.deploy-bar{background:var(--aubergine);color:var(--cream);font-family:var(--font-mono);font-size:11px;padding:20px 24px;text-align:center;letter-spacing:.02em;line-height:1.5;margin-top:2rem}.deploy-bar a{color:var(--cream);text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:3px}.deploy-bar a:hover{color:var(--rosa)}.deploy-bar .deploy-credit{margin-top:8px;font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--cream-faded)}.deploy-bar .deploy-credit a{color:var(--rosa);text-decoration:none;font-weight:500;letter-spacing:.18em}.deploy-bar .deploy-credit a:hover{text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:3px}.page-shell{display:flex;flex-direction:column;min-height:100vh}.page-shell>.page-content{flex:1 0 auto;padding-top:0;padding-bottom:1rem}.page-shell>.page-content>main{padding-top:1rem}.prose{font-family:var(--font-body);font-size:clamp(16px,1.1vw,17px);line-height:1.6;color:var(--ink)}.prose p{margin-bottom:1.1rem}.prose p:last-child{margin-bottom:0}.prose a{color:var(--rosa);text-decoration:none;border-bottom:1.5px solid var(--rosa);font-weight:500}.prose a.cobalt{color:var(--cobalt);border-bottom-color:var(--cobalt)}.prose strong{font-weight:700}.prose em{font-style:italic}.prose.with-drop-cap>p:first-child:first-letter{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:4.5em;line-height:.85;float:left;padding:6px 10px 0 0;color:var(--cobalt)}.bio-lead{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(20px,2.4vw,26px);line-height:1.35;color:var(--ink);margin:1.5rem 0 2rem;border-left:4px solid var(--rosa);padding-left:1rem}.now-item{border-left:6px solid var(--rosa);padding:1rem 1.25rem;background:#e91e630a;margin-bottom:1rem}.now-item.cobalt{border-left-color:var(--cobalt);background:#1e5fbc0a}.now-item.ochre{border-left-color:var(--ochre);background:#d4a0170f}.now-meta{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--rosa);margin-bottom:.5rem;font-weight:500}.now-item.cobalt .now-meta{color:var(--cobalt)}.now-item.ochre .now-meta{color:var(--ochre)}.now-name{font-family:var(--font-display);font-weight:600;font-size:clamp(20px,2.2vw,26px);line-height:1.05;margin-bottom:.35rem;color:var(--ink)}.now-desc{font-family:var(--font-body);font-size:.96em;line-height:1.5;color:var(--ink)}.now-desc a{color:var(--rosa);text-decoration:none;border-bottom:1.5px solid var(--rosa);font-weight:500}.now-item.cobalt .now-desc a{color:var(--cobalt);border-bottom-color:var(--cobalt)}.how-i-work{margin:1.25rem 0 0;border-top:1px solid var(--rule)}.how-i-work li{list-style:none;border-bottom:1px solid var(--rule);padding:1rem .25rem;font-family:var(--font-body);font-size:1rem;line-height:1.45;color:var(--ink);display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline}.how-i-work li:before{content:"·";color:var(--rosa);font-family:var(--font-display);font-style:italic;font-weight:700;font-size:1.6em;line-height:.5}.writing-card{border:2px solid var(--ink);background:var(--cream);padding:1.25rem 1.4rem;margin-bottom:1rem;position:relative}.writing-card-meta{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--rosa);margin-bottom:.6rem;font-weight:500}.writing-card-title{font-family:var(--font-display);font-weight:600;font-size:clamp(22px,2.6vw,30px);line-height:1.1;margin-bottom:.45rem;color:var(--ink)}.writing-card-desc{font-family:var(--font-body);font-size:.97em;line-height:1.5;color:var(--ink);margin-bottom:.6rem}.writing-card-link{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--rosa);text-decoration:none;border-bottom:1.5px solid var(--rosa);font-weight:500}.writing-card-link+.writing-card-link{margin-left:.75rem}.resume-contact{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);margin:1rem 0 2.5rem;line-height:1.7;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.85rem 0}.resume-contact a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--ink)}.resume-contact a:hover{color:var(--rosa);border-bottom-color:var(--rosa)}.resume-contact .sep{color:var(--rosa);margin:0 .5rem}.resume-h2{font-family:var(--font-impact);font-size:clamp(22px,2.8vw,30px);letter-spacing:.12em;margin:2.75rem 0 1.25rem;color:var(--ink);display:flex;align-items:center;gap:12px;font-weight:400;text-transform:uppercase}.resume-h2:before{content:"";width:36px;height:8px;background:var(--rosa);flex-shrink:0}.resume-h2.cobalt:before{background:var(--cobalt)}.resume-h2.ochre:before{background:var(--ochre)}.resume-h2.green:before{background:var(--green)}.resume-job{margin-bottom:2.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule-soft)}.resume-job:last-child{border-bottom:0}.resume-job-header{margin-bottom:.75rem}.resume-job-co{font-family:var(--font-display);font-weight:600;font-size:clamp(20px,2.2vw,26px);line-height:1.1;color:var(--ink);letter-spacing:-.01em}.resume-job-loc{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);margin-left:.5rem}.resume-job-role{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:1.05em;color:var(--rosa);margin:.15rem 0}.resume-job-dates{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted)}.resume-job-summary{font-family:var(--font-body);font-size:.97em;line-height:1.55;color:var(--ink);margin:.75rem 0 1rem}.resume-bullets{margin:.5rem 0 0;padding:0}.resume-bullets li{list-style:none;margin-bottom:.85rem;padding-left:0}.resume-bullets li:last-child{margin-bottom:0}.resume-bullets-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--rosa);font-weight:600;display:block;margin-bottom:.2rem}.resume-bullets-text{font-family:var(--font-body);font-size:.96em;line-height:1.55;color:var(--ink);display:block}.resume-areas{display:grid;grid-template-columns:1fr;gap:1.25rem;margin:.5rem 0 0;padding:0}@media(min-width:720px){.resume-areas{grid-template-columns:1fr 1fr;gap:1.25rem 2rem}}.resume-area{list-style:none}.resume-area-name{font-family:var(--font-display);font-weight:600;font-size:1.1em;color:var(--ink);margin-bottom:.25rem}.resume-area-desc{font-family:var(--font-body);font-size:.93em;line-height:1.5;color:var(--ink)}.resume-pub{margin-bottom:1.25rem}.resume-pub-title{font-family:var(--font-display);font-weight:600;font-size:1.15em;color:var(--ink);line-height:1.2}.resume-pub-meta{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted);margin:.15rem 0 .4rem}.resume-pub-desc{font-family:var(--font-body);font-size:.95em;line-height:1.5;color:var(--ink);margin-bottom:.3rem}.resume-pub a{color:var(--rosa);text-decoration:none;border-bottom:1px dotted var(--rosa);font-family:var(--font-mono);font-size:.85em;letter-spacing:.04em}.resume-pub a+a{margin-left:.6rem}.resume-flat-list{margin:0;padding:0;font-family:var(--font-body);font-size:.97em;line-height:1.7;color:var(--ink)}.resume-flat-list li{list-style:none;padding:.15rem 0}.resume-skills{margin:.5rem 0 0;padding:0}.resume-skills li{list-style:none;margin-bottom:.85rem}.resume-skills strong{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--rosa);font-weight:600;display:block;margin-bottom:.15rem}.resume-skills span{font-family:var(--font-body);font-size:.95em;line-height:1.5;color:var(--ink)}.contact-list{margin:1rem 0 2rem;padding:0;border-top:2px solid var(--rule);border-bottom:2px solid var(--rule)}.contact-list li{list-style:none;display:grid;grid-template-columns:110px 1fr;gap:1rem;align-items:baseline;padding:.85rem .25rem;border-bottom:1px solid var(--rule-soft);font-family:var(--font-body);font-size:1rem}.contact-list li:last-child{border-bottom:0}.contact-list .label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--rosa);font-weight:600}.contact-list .value{color:var(--ink)}.contact-list .value a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--ink)}.contact-list .value a:hover{color:var(--rosa);border-bottom-color:var(--rosa)}
