:root{--bg:#fff;--bg2:#f3f7fd;--card:#fff;--line:#d5e0f0;--chip:#e3edfb;--ink:#14284a;--mute:#52627d;--accent:#1f6feb;--accent-ink:#fff;--navy:#1b3a6b;--steel:#4a7fc1;--steel-hi:#5a8dcc;--deep:#1b3a6b;--mid:#4a7fc1;--serif:"Source Serif 4",Georgia,serif;--sans:"Source Sans 3",system-ui,sans-serif;--mono:"Source Code Pro",ui-monospace,monospace;--ease:cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.eyebrow{font:600 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}h1,h2,h3{font-family:var(--serif);letter-spacing:-.012em;color:var(--navy);font-weight:500;line-height:1.12}h2{margin:10px 0 32px;font-size:clamp(28px,4vw,40px)}section{border-top:1px solid var(--line);padding:80px 0}.head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.head a{color:var(--accent);margin-bottom:32px;font-size:15px;text-decoration:none}.brand{font:400 20px var(--sans);letter-spacing:-.02em;white-space:nowrap;text-decoration:none}.brand b{font-weight:700}.brand i{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-left:3px;display:inline-block}nav .brand i,footer .brand i{background:#fff}nav{z-index:10;-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);color:#fff;background:#1b3a6bf0;border-bottom:1px solid #ffffff24;position:sticky;top:0}nav .btn{color:#fff;background:0 0;border-color:#ffffff59}nav .wrap{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.links{gap:26px;font-size:15px;display:flex}.links a{color:#ffffffb8;border-bottom:2px solid #0000;padding:4px 0;text-decoration:none}.links a:hover{color:#fff}.links a.active{color:#fff;border-color:#fff}.btn{font:500 15px var(--sans);border:1px solid var(--line);background:var(--card);transition:transform .12s var(--ease),border-color .2s,filter .2s;cursor:pointer;color:var(--navy);border-radius:10px;align-items:center;gap:8px;padding:12px 20px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08)}.btn.sm{padding:8px 12px;font-size:14px}@media (width<=760px){.links{gap:16px;font-size:14px}.nav-cv{display:none}}@media (width<=420px){.links a:first-child{display:none}}.hero{color:#fff;background:linear-gradient(180deg,var(--steel-hi) 0%,var(--steel) 50%,#4476b6 100%);border-radius:24px;grid-template-columns:1.4fr 1fr;align-items:center;gap:56px;margin-top:24px;padding:72px 56px;display:grid}.hero h1,.hero .eyebrow{color:#fff}.hero .lead{color:#ffffffe6}.hero .btn.primary{color:var(--navy);background:#fff;border-color:#fff}.hero .btn:not(.primary){color:#fff;background:#ffffff24;border-color:#ffffff73}.hero h1{letter-spacing:-.025em;margin:18px 0 22px;font-size:clamp(40px,6.2vw,66px);line-height:1.04}.hero h1 em{font-style:italic}.lead{color:var(--mute);max-width:580px;font-size:19px}.cta{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.idcard{-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);color:#fff;background:#ffffff24;border:1px solid #fff6;border-radius:20px;padding:28px;box-shadow:0 12px 32px #10285029}.idcard h3{color:#fff}.avatar{object-fit:cover;object-position:50% 20%;background:#fff;border:4px solid #fff;border-radius:50%;width:96px;height:96px;display:block;box-shadow:0 8px 20px #10285038}.status{color:#ffffffeb;align-items:center;gap:8px;margin:18px 0 6px;font-size:14px;display:inline-flex}.status:before{content:"";background:#fff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #1f6feb8c}.idcard h3{font-size:24px}.idcard .loc{color:#ffffffd9;margin-bottom:18px;font-size:15px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:500 12.5px/1 var(--sans);letter-spacing:.01em;color:#1d4fa8;background:var(--chip);border:1px solid #c9dbf6;border-radius:8px;padding:7px 12px}.idcard .chip{color:#fff;background:#ffffff1f;border-color:#ffffff73}@media (width<=860px){.hero{border-radius:20px;grid-template-columns:1fr;margin-top:12px;padding:48px 24px}}.stats{border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(4,1fr);margin:32px 0 80px;display:grid;overflow:hidden}.stats div{background:var(--bg2);padding:26px}.stats div+div{border-left:1px solid var(--line)}.stats b{font:500 40px var(--serif);letter-spacing:-.02em;color:var(--navy);display:block}.stats span{color:var(--mute);font-size:15px}@media (width<=760px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){border-left:0}.stats div:nth-child(n+3){border-top:1px solid var(--line)}}.grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px;display:grid}.card{background:var(--card);border:1px solid var(--line);transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .2s;border-radius:16px;padding:26px;text-decoration:none;display:block}a.card:hover,.card:hover{border-color:#b9cdee;transform:translateY(-3px);box-shadow:0 14px 30px #1b3a6b1a}.card:active{transform:scale(.99)}.card h3{margin:12px 0 8px;font-size:23px}.card p{color:var(--mute);font-size:16px}.card .chips{margin-top:18px}.flow{font:12px var(--mono);color:var(--mute);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.flow i{color:var(--accent);font-style:normal}.tag{font:600 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.meta{font:13px var(--mono);color:var(--mute)}.draft{font:500 11px var(--mono);background:var(--chip);color:var(--accent);border:1px solid #c9dbf6;border-radius:3px;margin-left:8px;padding:2px 6px}.guide{grid-template-columns:150px 1fr;align-items:start;gap:24px;display:grid}.cover{aspect-ratio:8.5/11;border:1px solid var(--line);transition:transform .3s var(--ease);border-radius:6px;display:block;overflow:hidden;box-shadow:0 8px 20px #1b3a6b29}.cover img{object-fit:cover;width:100%;height:100%;display:block}.cover:hover{transform:translateY(-3px)}.guide .acts{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}@media (width<=520px){.guide{grid-template-columns:110px 1fr;gap:16px}}.isv{padding:30px}.isv h4{font:600 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:18px 0 8px}.isv .bullets{margin-bottom:6px}.isv .nda{color:var(--mute);border-top:1px solid var(--line);margin-top:20px;padding-top:12px;font-size:14px}.project{flex-direction:column;gap:18px;padding:14px 14px 24px;display:flex}.project .shot{aspect-ratio:16/9;border:1px solid var(--line);background:var(--bg2);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #1b3a6b0f}.project .shot img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .5s var(--ease);display:block}.project:hover .shot img{transform:scale(1.03)}.project .body{padding:0 12px}.project h3 span{color:var(--accent);font-family:var(--sans);font-size:.8em}.project .deploy{margin-top:12px;font-size:15px}.featured{grid-column:1/-1;grid-template-columns:1.25fr 1fr;align-items:center;gap:40px;padding:20px 40px 20px 20px;display:grid}.featured .media{gap:12px;display:grid}.featured .media>.shot{box-shadow:0 18px 40px #1b3a6b29}.featured .more{grid-template-columns:1fr 1fr;gap:12px;display:grid}.featured h3{letter-spacing:-.02em;font-size:clamp(28px,3.4vw,38px)}@media (width<=860px){.featured{grid-template-columns:1fr;gap:20px;padding:14px 14px 24px}}.job{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;gap:32px;padding:30px 0;display:grid}.job:first-of-type{padding-top:0}.job .when{font:13px var(--mono);color:var(--mute)}.job h3{font-size:22px}.job .co{color:var(--accent);margin:4px 0 14px;font-size:15px}.job ul,.bullets{color:var(--mute);font-size:16px;list-style:none}.job li,.bullets li{margin-bottom:6px;padding-left:20px;position:relative}.job li:before,.bullets li:before{content:"→";color:var(--accent);position:absolute;left:0}@media (width<=760px){.job{grid-template-columns:1fr;gap:8px}}.skills{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.skills h4{font:500 13px var(--mono);margin-bottom:12px}.pagehead{padding:72px 0 48px}.pagehead h1{margin:14px 0;font-size:clamp(36px,5vw,56px)}.pagehead p{color:var(--mute);max-width:620px;font-size:19px}.prose{max-width:700px;margin:0 auto;padding:64px 20px 96px}.prose h1{margin:14px 0;font-size:clamp(32px,4.5vw,46px)}.prose h2{border-left:4px solid var(--mid);margin:40px 0 12px;padding-left:12px;font-size:26px}.prose p{margin-bottom:18px;font-size:18px;line-height:1.75}.prose .back{color:var(--accent);margin-bottom:28px;font-size:15px;text-decoration:none;display:inline-block}.empty{border:1px dashed var(--line);color:var(--mute);text-align:center;border-radius:14px;padding:40px}.contact{text-align:center;background:var(--navy);color:#fff;border-top:0}.contact h2{color:#fff;letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(34px,5vw,54px)}.contact .eyebrow{color:#9cc2ff}.contact .btn:not(.primary){color:#fff;background:#ffffff1a;border-color:#fff6}.contact .btn.primary{color:var(--navy);background:#fff;border-color:#fff}.contact p{color:#ffffffd1;max-width:540px;margin:0 auto 32px}.contact .cta{justify-content:center}footer{border-top:1px solid var(--line);color:var(--mute);padding:28px 0;font-size:14px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.card:hover{transform:none}}@media (prefers-reduced-transparency:reduce){nav{background:var(--navy);-webkit-backdrop-filter:none;backdrop-filter:none}.idcard{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1b3a6b8c}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}nav :focus-visible{outline-color:#fff}.skip{z-index:100;color:var(--navy);background:#fff;border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:8px;left:-999px}.skip:focus{left:12px}#content:focus{outline:none}.nav-actions{align-items:center;gap:8px;display:flex}nav .btn.nav-cta{color:var(--navy);background:#fff;border-color:#fff}nav .btn.nav-cta:hover{filter:brightness(.94)}.worked{flex-wrap:wrap;align-items:center;gap:20px 28px;margin:-40px 0 72px;display:flex}.worked>span{font:600 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}.worked ul{flex-wrap:wrap;gap:10px 26px;list-style:none;display:flex}.worked li{color:var(--mute);align-items:center;gap:10px;font-size:14px;display:flex}.worked li img{border:1px solid var(--line);object-fit:cover;filter:grayscale();opacity:.8;width:34px;height:34px;transition:filter .25s var(--ease),opacity .25s var(--ease);background:#fff;border-radius:8px}.worked li:hover img{filter:none;opacity:1}.worked li b{font-weight:500}@media (width<=760px){.worked{margin-top:-48px}.worked li b{display:none}.worked li img{width:40px;height:40px}}.jobhead{align-items:center;gap:14px;margin-bottom:14px;display:flex}.jobhead .co{margin:2px 0 0}.logo{border:1px solid var(--line);object-fit:cover;background:#fff;border-radius:11px;flex:none;width:48px;height:48px;box-shadow:0 2px 6px #1b3a6b14}.tint{background:var(--bg2)}section.contact{background:var(--navy)}footer .wrap{align-items:center}.flinks{flex-wrap:wrap;gap:20px;display:flex}.flinks a{text-decoration:none}.flinks a:hover{color:var(--accent)}@media (prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transition:opacity .6s var(--ease),transform .6s var(--ease);transform:translateY(18px)}.js .reveal.in{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero>div{animation:rise .7s var(--ease) both}.hero .idcard{animation:rise .7s var(--ease) .14s both}}.contact .wrap.with-form{text-align:left;grid-template-columns:1fr 1.05fr;align-items:start;gap:56px;display:grid}.contact .with-form .cintro p{margin-left:0}.contact .with-form .cta{justify-content:flex-start}.cform{text-align:left;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff14;border:1px solid #ffffff38;border-radius:18px;gap:16px;padding:28px;display:grid}.cform h3{color:#fff;font-size:22px}.cform label{font:500 14px var(--sans);color:#ffffffe0;gap:6px;display:grid}.cform input,.cform textarea{font:400 16px var(--sans);color:#fff;resize:vertical;background:#ffffff1a;border:1px solid #ffffff47;border-radius:10px;width:100%;padding:11px 14px;transition:border-color .2s,background .2s}.cform input:focus,.cform textarea:focus{background:#ffffff29;border-color:#fff;outline:none}.cform [aria-invalid=true]{border-color:#ffb3b3}.cform small{color:#ffd0d0;font-size:13px}.cform .hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.cform button{color:var(--navy);background:#fff;border-color:#fff;justify-self:start}.cform button:disabled{opacity:.7;cursor:progress}.cform-status{color:#fff;min-height:1.4em;font-size:15px;display:block}.cform-note{color:#ffffffa6;margin:0;font-size:13px}@media (width<=860px){.contact .wrap.with-form{grid-template-columns:1fr;gap:36px}}
