@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,700;1,400;1,500&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--ink: #1C1A17;--ink-soft: #2E2A25;--paper: #FAFAF7;--paper-2: #F2EFE8;--muted: #6B6660;--line: #DDD7C8;--ocre: #B8860B;--ocre-deep: #8E6708;--serif: "Lora", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);transition:border-color .15s ease,color .15s ease}a:hover{border-bottom-color:var(--ocre)}.container{max-width:1120px;margin:0 auto;padding:0 32px}.nav{padding:28px 0;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:13px}.nav-brand{font-weight:500;letter-spacing:-.01em;border-bottom:none}.nav-links{display:flex;gap:28px;list-style:none;margin:0;padding:0}.nav-links a{color:var(--muted);border-bottom:none}.nav-links a:hover{color:var(--ink)}.hero{position:relative;min-height:calc(100vh - 85px);display:flex;align-items:center;padding:20px 0 80px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;width:100%;align-items:center}.hero-text{max-width:480px}.hero-label{font-family:var(--mono);font-size:12px;color:var(--ocre);letter-spacing:.08em;margin:0 0 28px;font-weight:500}.hero-name{font-family:var(--serif);font-size:18px;color:var(--muted);font-weight:400;margin:0 0 10px;letter-spacing:.01em}.hero-role{font-family:var(--serif);font-size:clamp(44px,7vw,80px);font-weight:700;line-height:1.02;letter-spacing:-.02em;margin:0 0 28px;color:var(--ink)}.hero-tagline{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,22px);line-height:1.45;color:var(--ink-soft);margin:0 0 44px;max-width:440px}.hero-meta{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em;margin:0 0 20px}.hero-cta{margin:0;font-family:var(--mono);font-size:13px;letter-spacing:.04em}.hero-cta a{color:var(--ocre);border-bottom:1px solid var(--ocre);padding-bottom:2px;font-weight:500}.hero-cta a:hover{color:var(--ocre-deep);border-bottom-color:var(--ocre-deep)}.hero-portrait{position:relative}.hero-portrait-fallback{width:100%;height:auto;display:block;opacity:.9}.hero-particles-container{position:relative;height:560px;min-height:420px}.hero-particles-container canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}section.block{padding:100px 0;border-top:1px solid var(--line)}.section-label{font-family:var(--mono);font-size:11px;color:var(--ocre);letter-spacing:.18em;text-transform:uppercase;margin:0 0 36px;font-weight:500}.case-featured{display:block}.case-company{font-family:var(--mono);font-size:12px;color:var(--muted);margin:0 0 14px;letter-spacing:.06em;text-transform:uppercase}.case-title{font-family:var(--serif);font-size:clamp(28px,3.6vw,44px);font-weight:700;line-height:1.15;letter-spacing:-.012em;margin:0 0 28px;max-width:780px;color:var(--ink)}.case-tldr{font-family:var(--serif);font-size:19px;line-height:1.55;color:var(--ink-soft);max-width:680px;margin:0 0 36px}.case-meta{display:flex;flex-wrap:wrap;gap:28px 32px;font-family:var(--mono);font-size:12px;color:var(--muted);margin:0 0 44px;letter-spacing:.02em}.case-meta-item strong{display:block;color:var(--muted);font-weight:500;margin-bottom:4px;text-transform:uppercase;letter-spacing:.1em;font-size:10px}.case-meta-item span{color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:0}.case-cta{font-family:var(--mono);font-size:13px;color:var(--ocre);border-bottom:1px solid var(--ocre);padding-bottom:3px;display:inline-block;letter-spacing:.04em;font-weight:500}.case-cta:hover{color:var(--ocre-deep);border-bottom-color:var(--ocre-deep)}.vignette-list{list-style:none;margin:0;padding:0}.vignette-item{padding:32px 0;border-top:1px solid var(--line)}.vignette-item:first-child{border-top:none;padding-top:0}.vignette-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 14px}.vignette-title{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.005em}.vignette-meta{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.02em;margin:0;white-space:nowrap}.vignette-body{font-family:var(--serif);font-size:17px;line-height:1.65;color:var(--ink-soft);margin:0;max-width:720px}.experience-list{list-style:none;margin:0;padding:0}.experience-item{display:grid;grid-template-columns:160px 1fr 140px;gap:32px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}.experience-item:last-child{border-bottom:none}.experience-company{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink);letter-spacing:-.005em}.experience-details{font-family:var(--sans);font-size:15px;color:var(--muted);line-height:1.55}.experience-details strong{color:var(--ink);font-weight:500;display:block;margin-bottom:4px}.experience-details em{font-style:normal;color:var(--ocre);font-size:11px;font-family:var(--mono);margin-left:8px;letter-spacing:.05em;text-transform:uppercase}.experience-period{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;letter-spacing:.02em}.case-layout{max-width:720px;margin:0 auto;padding:20px 0 100px}.case-back{display:inline-block;font-family:var(--mono);font-size:12px;color:var(--muted);border-bottom:1px solid transparent;letter-spacing:.04em;margin-bottom:60px;padding-bottom:2px}.case-back:hover{color:var(--ink);border-bottom-color:var(--ocre)}.case-header{margin-bottom:64px}.case-header .section-label{margin-bottom:24px}.case-heading{font-family:var(--serif);font-size:clamp(32px,5vw,56px);font-weight:700;line-height:1.1;letter-spacing:-.018em;margin:0 0 40px;color:var(--ink)}.case-meta-full{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0;padding-top:32px;border-top:1px solid var(--line)}.case-meta-full>div{display:flex;flex-direction:column;gap:6px}.case-meta-full dt{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.case-meta-full dd{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink);margin:0;line-height:1.45}.case-section{margin-bottom:72px}.case-section h2{font-family:var(--serif);font-size:clamp(24px,3vw,32px);font-weight:700;line-height:1.2;letter-spacing:-.01em;margin:0 0 24px;color:var(--ink)}.section-sub-label{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ocre);letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px}.case-prose{font-family:var(--serif);font-size:19px;line-height:1.7;color:var(--ink-soft);margin:0 0 20px}.case-prose:last-child{margin-bottom:0}.case-tldr-quote{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.2vw,24px);line-height:1.5;color:var(--ink);padding:4px 0 4px 24px;border-left:2px solid var(--ocre);margin:0}.approach-list{list-style:none;margin:0;padding:0}.approach-step{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:32px 0;border-top:1px solid var(--line)}.approach-step:first-child{border-top:none;padding-top:4px}.step-number{font-family:var(--mono);font-size:13px;color:var(--ocre);letter-spacing:.08em;font-weight:500;padding-top:6px}.approach-body h3{font-family:var(--serif);font-size:22px;font-weight:500;line-height:1.3;margin:0 0 14px;color:var(--ink);letter-spacing:-.005em}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:8px}.result-card{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--line)}.result-value{font-family:var(--serif);font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1;color:var(--ink);letter-spacing:-.02em;margin:0}.result-metric{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink);margin:0;line-height:1.4}.result-note{font-family:var(--sans);font-size:13px;font-style:italic;color:var(--muted);margin:0;line-height:1.55}.looking-back-list{list-style:none;margin:0;padding:0}.looking-back-list li{font-family:var(--serif);font-size:19px;line-height:1.7;color:var(--ink-soft);padding:22px 0 22px 28px;border-top:1px solid var(--line);position:relative}.looking-back-list li:before{content:"—";position:absolute;left:0;top:22px;color:var(--ocre);font-family:var(--mono)}.looking-back-list li:first-child{border-top:none;padding-top:4px}.looking-back-list li:first-child:before{top:4px}.loadtime-diagram{padding:32px;background:var(--paper-2);border-radius:2px}.loadtime-diagram .section-sub-label{margin-bottom:24px}.loadtime-bar-row{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;gap:16px;margin-top:16px}.loadtime-bar-row:first-of-type{margin-top:0}.loadtime-label{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.loadtime-value{font-family:var(--mono);font-size:13px;color:var(--ink);font-weight:500;text-align:right}.loadtime-bar{height:10px;background:transparent;overflow:hidden}.loadtime-bar-before .loadtime-fill{height:100%;width:100%;background:var(--ink)}.loadtime-bar-after .loadtime-fill{height:100%;width:3.3%;background:var(--ocre)}.case-footer-nav{padding-top:40px;border-top:1px solid var(--line);margin-top:40px}.case-footer-nav .case-back{margin-bottom:0}.about-layout{max-width:620px;margin:0 auto;padding:20px 0 100px}.about-layout .section-label{margin-bottom:44px}.about-para{font-family:var(--serif);font-size:19px;line-height:1.75;color:var(--ink-soft);margin:0 0 24px}.about-para:last-of-type{margin-bottom:0}.about-now,.about-elsewhere{margin-top:56px;padding-top:32px;border-top:1px solid var(--line)}.about-now-body{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--muted);margin:0}.about-elsewhere-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:24px;font-family:var(--mono);font-size:13px;letter-spacing:.02em}.about-elsewhere-list a{color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:2px}.about-elsewhere-list a:hover{color:var(--ocre);border-bottom-color:var(--ocre)}footer.site-footer{padding:90px 0 70px;border-top:1px solid var(--line);font-family:var(--mono);font-size:13px;color:var(--muted)}.footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:44px}.footer-row p{margin:0}.footer-links{display:flex;gap:24px;flex-wrap:wrap}.footer-links a{color:var(--muted);border-bottom:1px solid transparent}.footer-links a:hover{color:var(--ink);border-bottom-color:var(--ocre)}.footer-dojo{margin:0;padding-top:20px;border-top:1px dashed var(--line)}.footer-dojo a{color:var(--ocre);border-bottom:1px solid var(--ocre);padding-bottom:2px}.footer-dojo a:hover{color:var(--ocre-deep);border-bottom-color:var(--ocre-deep)}@media (max-width: 820px){.container{padding:0 22px}.hero{min-height:auto;padding:20px 0 40px}.hero-grid{grid-template-columns:1fr;gap:32px}.hero-text{order:2;max-width:none}.hero-portrait{order:1}.hero-particles-container{height:380px;min-height:320px}section.block{padding:60px 0}.experience-item{grid-template-columns:1fr;gap:6px;padding:18px 0}.experience-period{text-align:left}footer.site-footer{padding:60px 0 50px}.footer-row{flex-direction:column;gap:16px}.case-layout{padding:10px 0 60px}.case-back{margin-bottom:32px}.case-header{margin-bottom:44px}.case-meta-full{grid-template-columns:repeat(2,1fr);gap:20px;padding-top:24px}.case-section{margin-bottom:52px}.results-grid{grid-template-columns:1fr;gap:28px}.approach-step{grid-template-columns:1fr;gap:10px;padding:28px 0}.step-number{padding-top:0}.loadtime-diagram{padding:22px}.loadtime-bar-row{grid-template-columns:54px 1fr 54px;gap:12px}.vignette-header{flex-direction:column;gap:4px;margin-bottom:10px}.vignette-item{padding:26px 0}.vignette-body{font-size:16px}.about-layout{padding:10px 0 60px}.about-layout .section-label{margin-bottom:32px}.about-para{font-size:18px;margin-bottom:20px}.about-now,.about-elsewhere{margin-top:40px;padding-top:24px}.about-elsewhere-list{gap:16px 20px}}@media (prefers-reduced-motion: reduce){*{animation-duration:0s!important;transition-duration:0s!important}}
