:root{color-scheme:dark;--background:#131313;--surface:#181716;--surface-soft:#201f1f;--surface-high:#2a2927;--text:#f1eeec;--muted:#cbbdb8;--subtle:#9d8982;--primary:#ffb59c;--primary-strong:#f2642d;--gold:#ffc969;--cyan:#72e7f2;--border:rgba(255,181,156,.18);--border-strong:rgba(255,201,105,.32);--radius-sm:12px;--radius:20px;--radius-lg:28px;--shell:min(1180px, calc(100vw - 40px) );--font-display:"Space Grotesk",system-ui,sans-serif;--font-body:"Hanken Grotesk",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at top left,rgba(242,100,45,.16),transparent 34rem),radial-gradient(circle at 85% 20%,rgba(255,201,105,.09),transparent 28rem),linear-gradient(180deg,#131313,#10100f);color:var(--text);font-family:var(--font-body);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(hsla(0,0%,100%,.025) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.02) 1px,transparent 0);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 78%);mask-image:linear-gradient(180deg,#000,transparent 78%)}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}.site-frame{min-height:100vh}.page-shell{width:var(--shell);margin:0 auto}.page-shell--centered{min-height:100vh;display:grid;place-items:center}.site-header{position:sticky;top:16px;z-index:20;width:var(--shell);min-height:64px;margin:16px auto 0;padding:10px 12px 10px 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;border:1px solid var(--border);border-radius:999px;background:#131313d1;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand-lockup,.site-header nav{display:flex;align-items:center}.brand-lockup{gap:10px;font-family:var(--font-display);font-weight:700;white-space:nowrap}.personal-name{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.08em .24em;overflow:visible}.personal-name--compact{gap:.28em}.brand-lockup .personal-name--compact{font-size:15px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;padding:0;border-radius:999px;overflow:hidden}.brand-mark img{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transform:none}.site-header nav{gap:6px;justify-content:center}.site-header nav a{padding:10px 13px;border-radius:999px;color:var(--muted);font-family:var(--font-mono);font-size:12px;font-weight:700;text-transform:uppercase;transition:background .18s ease,color .18s ease,transform .18s ease}.site-header nav a:hover{background:#ffffff0f;color:var(--text);transform:translateY(-1px)}.hero-section{min-height:calc(100vh - 96px);padding:78px 0 54px}.hero-grid,.hero-section{display:grid;align-items:center}.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.62fr);gap:clamp(32px,6vw,88px)}.contact-panel h2,.hero-copy h1,.section-heading h2{margin:0;font-family:var(--font-display);letter-spacing:0}.hero-copy h1{max-width:980px;font-size:clamp(44px,7vw,92px);line-height:.9}.card-kicker,.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 18px;color:var(--gold);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.promise,.role-line{margin:18px 0 0;font-family:var(--font-display);font-size:clamp(18px,2.8vw,30px);line-height:1.05}.role-line{color:var(--primary)}.promise{color:var(--text)}.contact-panel p,.intro-text,.section-heading p{max-width:690px;color:var(--muted);font-size:18px;line-height:1.65}.intro-text{margin:28px 0 0}.contact-actions,.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-family:var(--font-mono);font-size:12px;font-weight:800;text-transform:uppercase;transition:transform .18s ease,border-color .18s ease,background .18s ease}.button:hover{transform:translateY(-2px) scale(1.02)}.button--primary{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#321105}.button--ghost{border-color:var(--border);background:#ffffff09;color:var(--text)}.availability{margin-top:22px;color:var(--subtle)}.blog-card,.blog-empty,.contact-panel,.download-panel,.featured-work,.hero-panel,.specialty-card,.timeline-content,.work-card,.writing-card{border:1px solid var(--border);background:linear-gradient(145deg,#201f1feb,#161514d6);box-shadow:0 24px 80px #0000003d}.hero-panel{position:relative;min-height:clamp(430px,58vw,620px);aspect-ratio:4/5;padding:0;border-radius:var(--radius-lg);display:block;overflow:hidden;isolation:isolate}.hero-avatar-slot{display:grid;place-items:center;align-self:center}.hero-avatar{width:min(100%,560px);height:auto;aspect-ratio:1/1;-o-object-fit:contain;object-fit:contain;display:block}.contact-panel:before,.hero-panel:before{content:"";position:absolute;width:220px;height:220px;border-radius:999px;background:#ffc9691f;filter:blur(36px);top:-80px;right:-80px}.card-icon{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:16px;color:var(--gold);background:#ffc96914}.section-block{padding:88px 0}.section-block--landing{padding:72px 0}.section-heading{display:grid;gap:12px;margin-bottom:28px}.contact-panel h2,.section-heading h2{max-width:820px;font-size:clamp(28px,4vw,50px);line-height:1}.featured-work{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;padding:clamp(26px,5vw,46px);border-radius:var(--radius-lg)}.featured-work__brand,.work-card__top{display:flex;align-items:center;gap:12px}.featured-work__brand{margin-bottom:18px}.featured-work__brand .eyebrow{margin:0}.work-card__top{justify-content:space-between}.project-icon{width:54px;height:54px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:16px;overflow:hidden;background:#ffffff0f;color:var(--gold);font-family:var(--font-mono);font-size:13px;font-weight:800}.project-icon img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;padding:9px;background:#ffffffeb}.blog-card h2,.featured-work h3,.specialty-card h3,.work-card h3,.writing-card h3{margin:0;font-family:var(--font-display);letter-spacing:0}.featured-work h3{font-size:clamp(30px,4vw,52px)}.blog-card p,.blog-empty p,.featured-work p,.specialty-card p,.work-card p,.writing-card p{color:var(--muted);line-height:1.58}.work-role{color:var(--gold)!important;font-family:var(--font-mono);font-size:13px;font-weight:700;text-transform:uppercase}.highlight-list{display:grid;gap:10px;padding:0;margin:24px 0 0;list-style:none}.highlight-list li{position:relative;padding-left:22px;color:var(--text)}.highlight-list li:before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:3px;background:var(--primary)}.featured-work__aside{display:flex;flex-direction:column;justify-content:space-between;gap:28px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;background:#ffc96924;color:var(--gold);font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase}.chip--quiet{background:#ffffff0e;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-family:var(--font-mono);font-size:12px;font-weight:800;text-transform:uppercase}.blog-grid,.specialty-grid,.work-grid,.writing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}.blog-card,.specialty-card,.work-card,.writing-card{min-height:340px;padding:24px;border-radius:var(--radius);display:flex;flex-direction:column;gap:16px}.blog-card .text-link,.work-card .text-link,.writing-card .text-link{margin-top:auto}.article-page,.cv-page,.subpage-main{padding:74px 0 112px}.article-header,.cv-hero,.subpage-hero{display:grid;gap:18px}.subpage-hero{max-width:860px;padding:38px 0 34px}.article-header h1,.cv-hero h1,.subpage-hero h1{margin:0;font-family:var(--font-display);letter-spacing:0;line-height:.98}.cv-hero h1,.subpage-hero h1{font-size:clamp(44px,7vw,86px)}.article-body li,.article-body p,.article-header p,.blog-empty p,.download-panel p,.subpage-hero p,.timeline-content p{color:var(--muted);line-height:1.68}.section-block--tight{padding-top:28px}.blog-card h2{font-size:clamp(24px,3vw,34px);line-height:1.06}.article-cover,.blog-card__image{width:100%;height:auto;display:block;border:1px solid var(--border);-o-object-fit:cover;object-fit:cover;background:#ffffff0a}.blog-card__image{aspect-ratio:16/10;border-radius:16px}.article-cover{max-height:520px}.article-cover,.blog-empty{border-radius:var(--radius-lg)}.blog-empty{max-width:640px;padding:clamp(28px,5vw,46px);display:grid;gap:16px}.article-body h2,.article-body h3,.blog-empty h2,.timeline-content h3{margin:0;font-family:var(--font-display);letter-spacing:0}.article-page{display:grid;justify-items:center}.article-shell{width:min(820px,100%);display:grid;gap:32px}.article-header{padding:34px 0 18px}.article-header h1{font-size:clamp(42px,6vw,76px)}.article-body{display:grid;gap:10px;font-size:18px}.article-body h2{margin-top:14px;font-size:clamp(28px,4vw,40px)}.article-body h3{margin-top:10px;font-size:24px}.article-body h2 a,.article-body h3 a,.article-body h4 a{text-decoration:none}.article-body a{color:var(--primary);text-decoration:underline;text-underline-offset:4px}.article-body blockquote{margin:12px 0;padding:4px 0 4px 20px;border-left:3px solid var(--primary);color:var(--text)}.article-image{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff0a}.cv-page{padding-top:14px}.cv-hero{padding:10px 0 16px}.cv-hero__compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-top:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}.cv-hero__compact h1{margin:0;font-family:var(--font-display);font-size:clamp(32px,4.5vw,48px);line-height:1;letter-spacing:0}.cv-hero__compact p{max-width:760px;color:var(--muted);line-height:1.45;margin:10px 0 0}.cv-hero__compact .eyebrow{margin-bottom:8px}.cv-role-line{margin:8px 0 0!important;color:var(--primary)!important;font-family:var(--font-display);font-size:clamp(18px,2.5vw,25px);line-height:1.12}.cv-hero__aside{display:grid;gap:14px}.cv-metrics-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cv-metrics-inline span{min-height:64px;display:grid;align-content:center;gap:2px;padding:10px;border:1px solid hsla(0,0%,100%,.08);border-radius:14px;background:#ffffff0a;color:var(--muted);font-size:12px;line-height:1.15}.cv-metrics-inline strong{color:var(--text);font-family:var(--font-display);font-size:20px}.cv-hero__grid,.cv-layout{display:grid;gap:clamp(28px,5vw,58px);align-items:start}.cv-hero__grid{grid-template-columns:minmax(0,1fr) minmax(280px,.45fr);align-items:end}.availability svg{margin-right:8px;vertical-align:-2px}.download-panel{padding:26px;border-radius:var(--radius);display:grid;gap:18px}.download-panel .button{width:100%}.cv-layout{max-width:920px}.cv-timeline{position:relative;display:grid;gap:14px}.timeline-item:not(:last-child):before{content:"";position:absolute;top:37px;bottom:-14px;left:12px;width:2px;background:linear-gradient(180deg,var(--primary),rgba(255,201,105,.08))}.section-heading--compact{margin-bottom:6px}.section-heading--compact h2{font-size:clamp(28px,4vw,44px)}.timeline-item{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:18px}.timeline-marker{position:relative;z-index:1;width:26px;height:26px;margin-top:24px;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);box-shadow:0 0 0 7px #ffb59c14}.timeline-marker:after{content:"";position:absolute;inset:7px;border-radius:inherit;background:var(--primary)}.timeline-content{padding:clamp(18px,3vw,24px);border-radius:var(--radius)}.timeline-content .highlight-list+.chip-row{margin-top:20px}.timeline-content h3{font-size:clamp(22px,3vw,32px)}.approach-section{position:relative}.specialty-card{min-height:250px}.contact-section{padding:64px 0 92px}.contact-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;padding:clamp(28px,5vw,52px);border-radius:var(--radius-lg)}.contact-panel>*{position:relative;z-index:1}.site-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:34px 0 42px;border-top:1px solid var(--border)}.site-footer__brand{display:grid;gap:12px}.site-footer__brand p{margin:0;color:var(--subtle);line-height:1.5}.site-footer nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.site-footer nav a{min-height:38px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:var(--font-mono);font-size:11px;font-weight:800;text-transform:uppercase;transition:background .18s ease,color .18s ease,transform .18s ease}.site-footer nav a:hover{background:#ffffff0f;color:var(--text);transform:translateY(-1px)}.legal-page{max-width:var(--shell)}.legal-panel{width:min(860px,100%);display:grid;gap:14px;margin-bottom:24px}.legal-block{display:grid;gap:10px;padding:clamp(22px,4vw,34px);border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg,#201f1fe6,#161514d1)}.legal-block h2{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--font-display);font-size:clamp(22px,3vw,30px);letter-spacing:0}.legal-block p{margin:0;color:var(--muted);line-height:1.65}.legal-block strong{color:var(--text)}.legal-block a{color:var(--primary);text-decoration:underline;text-underline-offset:4px}.legal-block--note{border-color:#ffc96947;background:#ffc9690f}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:920px){.site-header{grid-template-columns:1fr auto;border-radius:24px}.site-header nav{grid-column:1/-1;order:3;flex-wrap:wrap;justify-content:flex-start}.contact-panel,.cv-hero__grid,.cv-layout,.featured-work,.hero-grid,.site-footer{grid-template-columns:1fr}.site-footer nav{justify-content:flex-start}.blog-grid,.specialty-grid,.work-grid,.writing-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){:root{--shell:min(100vw - 24px,1180px)}.site-header{top:8px;margin-top:8px}.brand-lockup span:last-child{display:none}.site-header nav a{padding:9px 10px;font-size:11px}.hero-section{min-height:auto;padding:58px 0 42px}.section-block--landing{padding:56px 0}.contact-section{padding:56px 0 84px}.hero-copy h1{font-size:clamp(48px,18vw,72px)}.contact-panel p,.intro-text,.section-heading p{font-size:16px}.blog-grid,.specialty-grid,.work-grid,.writing-grid{grid-template-columns:1fr}.blog-card,.specialty-card,.work-card,.writing-card{min-height:auto}.article-page,.cv-page,.subpage-main{padding-top:46px}.timeline-item{grid-template-columns:22px minmax(0,1fr);gap:12px}.timeline-item:not(:last-child):before{top:35px;left:10px}.timeline-marker{width:22px;height:22px}}.hero-panel:before{z-index:1;width:260px;height:260px;background:#ffb59c2e;filter:blur(42px);top:-90px;right:-80px}.hero-panel:after{content:"";position:absolute;inset:auto 0 0;z-index:1;height:48%;background:linear-gradient(180deg,transparent,rgba(19,19,19,.82))}.hero-portrait{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:48% 42%;object-position:48% 42%;transform:scale(1.02)}.hero-portrait__caption{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;display:flex;justify-content:flex-end}.hero-portrait__caption span{display:inline-flex;min-height:38px;align-items:center;padding:0 13px;border:1px solid hsla(0,0%,100%,.18);border-radius:999px;background:#13131394;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text);font-family:var(--font-mono);font-size:11px;font-weight:800;text-transform:uppercase}.hero-avatar-slot:after,.hero-avatar-slot:before{content:none}
