*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-text-primary: #1a1a18;--color-text-secondary: #6b6b66;--color-text-tertiary: #a0a09a;--color-bg: #ffffff;--color-surface: #ffffff;--color-surface-alt: #f9f9f9;--color-border-light: rgba(0,0,0,.06);--color-border-mid: rgba(0,0,0,.12);--font-serif: "DM Serif Display", serif;--font-sans: "DM Sans", sans-serif;--radius-md: 8px;--radius-lg: 12px;--page-max-width: 1200px;--max-width: 650px}html{background:var(--color-bg);scroll-behavior:smooth}body{font-family:var(--font-sans);font-weight:300;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes growBar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1.6rem 2rem;max-width:var(--page-max-width);margin:0 auto;font-size:13px;letter-spacing:.04em;color:var(--color-text-secondary)}.navbar .logo{font-family:var(--font-serif);font-size:16px;color:var(--color-text-primary);letter-spacing:0;cursor:pointer}.navbar ul{list-style:none;display:flex;gap:2rem}.navbar ul li a{text-decoration:none;color:var(--color-text-secondary);transition:color .2s;cursor:pointer}.navbar ul li a:hover{color:var(--color-text-primary)}.page{max-width:var(--page-max-width);margin:0 auto;padding:2rem 2rem 5rem;position:relative;z-index:1;background:transparent}.section-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:1.5rem}.home-page .section-label{margin-left:auto;margin-right:auto;max-width:var(--max-width)}.home-page{background:linear-gradient(90deg,transparent 0%,var(--color-bg) 15%,var(--color-bg) 85%,transparent 100%)}.divider{width:40px;height:1px;background:var(--color-border-mid);margin:3rem 0}h2{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;margin-bottom:.9rem;line-height:1.25}p{font-size:14px;line-height:1.85;color:var(--color-text-secondary);margin-bottom:1.2rem}.hero{display:flex;gap:2rem;margin:0 auto 3rem;max-width:var(--max-width);animation:fadeUp .7s ease both;align-items:center}.hero-headshot{width:90px;height:90px;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0}.hero-content{display:flex;flex-direction:column}.hero-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:1rem}.hero h1{font-family:var(--font-serif);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:400;line-height:1.1;letter-spacing:-.01em}.hero h1 em{font-style:italic;color:var(--color-text-secondary)}.hero-tagline{font-size:15px;color:var(--color-text-secondary);max-width:380px;line-height:1.6}.project-card{border:.5px solid var(--color-border-light);border-radius:var(--radius-lg);padding:1.4rem 1.4rem 1.2rem;cursor:pointer;transition:opacity .2s,border-color .2s;animation:fadeUp .6s ease both;background:var(--color-surface)}.project-card:hover{opacity:.65;border-color:var(--color-border-mid)}.card-year{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:.8rem}.card-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;line-height:1.3;margin-bottom:.5rem;color:var(--color-text-primary)}.card-meta{font-size:12px;color:var(--color-text-tertiary);line-height:1.6}.about-grid{display:flex;flex-direction:column;gap:2rem;margin:0 auto 4rem;max-width:var(--max-width);animation:fadeUp .8s ease both}.about-text{font-size:14px;line-height:1.8;color:var(--color-text-secondary)}.skills-list{display:flex;flex-direction:column;gap:10px}.skill-item{display:flex;justify-content:space-between;align-items:center;font-size:13px}.skill-name{color:var(--color-text-secondary)}.skill-bar-track{width:80px;height:2px;background:var(--color-border-light);border-radius:1px;overflow:hidden}.skill-bar-fill{height:100%;background:var(--color-text-primary);border-radius:1px;transform-origin:left;animation:growBar 1s ease both .5s}.contact-row{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;border-top:.5px solid var(--color-border-light);animation:fadeUp .9s ease both}.contact-line{font-family:var(--font-serif);font-size:1.3rem;font-weight:400}.contact-links{display:flex;gap:1.5rem}.contact-links a{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.contact-links a:hover{color:var(--color-text-primary)}.cs-page h1{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3rem);font-weight:400;line-height:1.15;margin-bottom:1rem;letter-spacing:-.01em;animation:fadeUp .6s ease both}.back{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-bottom:3rem;transition:color .2s;cursor:pointer}.back:hover{color:var(--color-text-primary)}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1.5rem}.tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border:.5px solid var(--color-border-mid);border-radius:999px;color:var(--color-text-secondary)}.cs-intro{font-size:16px;line-height:1.75;color:var(--color-text-secondary);margin-bottom:3rem;max-width:560px;animation:fadeUp .7s ease both}.meta-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-border-light);border:.5px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:3.5rem;animation:fadeUp .8s ease both}.meta-cell{padding:1rem 1.2rem;background:var(--color-surface)}.meta-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:5px}.meta-value{font-size:14px;font-weight:500;color:var(--color-text-primary)}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1.5rem 0 2rem}.insight-card{border:.5px solid var(--color-border-light);border-radius:var(--radius-lg);padding:1.1rem 1.2rem;background:var(--color-surface)}.insight-card p{font-size:13px;margin:0;line-height:1.65}.insight-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:6px}.process-steps{display:flex;flex-direction:column;gap:1px;border:.5px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;margin:1.5rem 0 2rem}.tldr{background:linear-gradient(180deg,#eaf4ff,#fff);border:1px solid rgba(28,115,255,.12);padding:1rem;border-radius:10px;display:block;margin:1.5rem 0}.tldr-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.tldr-icon{width:20px;height:20px;border-radius:4px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%231c73ff" d="M11 7h2v2h-2zM11 11h2v6h-2z"/><path fill="%231c73ff" d="M12 2a10 10 0 1 0 .001 20.001A10 10 0 0 0 12 2zM12 20a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/></svg>') center/contain no-repeat}.tldr-label{font-weight:600;color:#0b3bff;font-size:13px}.tldr-items{display:flex;flex-direction:column;gap:.6rem}.tldr-item{display:flex;gap:.8rem;align-items:flex-start}.tldr-dot{width:8px;height:8px;background:#0b3bff;border-radius:50%;margin-top:6px;flex:0 0 8px}.tldr-item p{margin:0;color:var(--color-text-primary);font-style:normal}.step{display:grid;grid-template-columns:2rem 1fr;gap:1rem;padding:1.1rem 1.2rem;background:var(--color-surface);border-bottom:.5px solid var(--color-border-light);align-items:start}.step:last-child{border-bottom:none}.step-num{font-size:11px;font-weight:500;color:var(--color-text-tertiary);padding-top:2px}.step-title{font-size:14px;font-weight:500;margin-bottom:3px;color:var(--color-text-primary)}.step-desc{font-size:13px;color:var(--color-text-secondary);line-height:1.6;margin:0}.outcome-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1.5rem 0 2rem}.outcome-card{border:.5px solid var(--color-border-light);border-radius:var(--radius-lg);padding:1.4rem 1.4rem 1.2rem;background:var(--color-surface-alt)}.outcome-stat{font-family:var(--font-serif);font-size:2.4rem;font-weight:400;line-height:1;margin-bottom:6px;color:var(--color-text-primary)}.outcome-desc{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin:0}.quote-block{border-left:2px solid var(--color-border-mid);padding:.5rem 0 .5rem 1.2rem;margin:1.5rem 0 2rem}.quote-block p{font-family:var(--font-serif);font-size:1.15rem;font-style:italic;color:var(--color-text-primary);line-height:1.6;margin:0}.phase-timeline{display:flex;flex-direction:column;margin:1.5rem 0 2rem}.phase-entry{display:grid;grid-template-columns:3rem 1fr;gap:1.2rem;position:relative}.phase-left{display:flex;flex-direction:column;align-items:center;padding-top:2px}.phase-num{width:28px;height:28px;border-radius:50%;border:.5px solid var(--color-border-mid);background:var(--color-surface);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--color-text-tertiary);flex-shrink:0;z-index:1}.phase-connector{flex:1;width:1px;background:var(--color-border-light);margin:4px 0;min-height:20px}.phase-entry:last-child .phase-connector{display:none}.phase-right{padding-bottom:2rem}.phase-entry:last-child .phase-right{padding-bottom:.5rem}.phase-header{display:flex;align-items:center;gap:10px;margin-bottom:.6rem;flex-wrap:wrap}.phase-label-badge{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}.phase-title{font-family:var(--font-serif);font-size:1.05rem;font-weight:400;color:var(--color-text-primary);line-height:1.3}.phase-body{font-size:14px;line-height:1.8;color:var(--color-text-secondary);margin-bottom:0}.phase-callout{display:flex;gap:10px;align-items:flex-start;margin-top:.8rem;padding:.8rem 1rem;border-left:2px solid var(--color-border-mid);background:var(--color-surface-alt);border-radius:0 var(--radius-md) var(--radius-md) 0}.callout-icon{font-size:13px;color:var(--color-text-tertiary);flex-shrink:0;padding-top:1px}.phase-callout p{font-size:13px;font-style:italic;color:var(--color-text-secondary);line-height:1.6;margin:0}.screenshot-placeholder{width:100%;min-height:260px;display:flex;align-items:center;justify-content:center;margin:1.5rem 0 2rem;cursor:pointer}.screenshot-placeholder--sm{min-height:180px;margin-top:1.2rem;margin-bottom:0}.screenshot-image{width:100%;height:auto;max-width:100%;border-radius:var(--radius-md);object-fit:cover;display:block}.screenshot-inner{display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.screenshot-icon{width:44px;height:44px;border-radius:50%;border:.5px solid var(--color-border-mid);background:var(--color-surface);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.screenshot-label{font-size:12px;letter-spacing:.04em;color:var(--color-text-tertiary);margin:0;line-height:1}.cs-header{max-width:var(--page-max-width);margin:0 auto 4rem;padding:0 2rem}.cs-section{display:grid;grid-template-columns:200px 1fr;gap:3rem;max-width:1800px;margin:0 auto;padding:0 2rem 4rem;border-bottom:1px solid var(--color-border-light)}.cs-section:last-child{border-bottom:none}.cs-section-header{position:relative}.sticky-header{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;line-height:1.2;color:var(--color-text-primary);position:sticky;top:80px;padding-right:1rem;margin:0;word-break:break-word}.cs-section-content{padding-top:0;max-width:var(--max-width)}.cs-section-content h3{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;margin-bottom:1rem;line-height:1.3;color:var(--color-text-primary)}.cs-section-content p{font-size:15px;line-height:1.8;color:var(--color-text-secondary);margin-bottom:1.5rem}.cs-section-content p:last-of-type{margin-bottom:0}@media (max-width: 900px){.cs-section{grid-template-columns:1fr;gap:1.5rem;padding-bottom:3rem}.sticky-header{position:static}}@media (max-width: 640px){.cs-section{padding:0 1.5rem 3rem;gap:1rem}.sticky-header{font-size:1.25rem}}
