@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.1gyfqm5yhhzs7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.357dd_6abeqge.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.17-aodiw50953.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_9443aef7-module__vKFuNW__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_9443aef7-module__vKFuNW__variable{--font-archivo:"Archivo", "Archivo Fallback"}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Fallback;src:local(Arial);ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.0%;size-adjust:100.94%}.hanken_grotesk_24c6a3e4-module__dWcE-G__className{font-family:Hanken Grotesk,Hanken Grotesk Fallback;font-style:normal}.hanken_grotesk_24c6a3e4-module__dWcE-G__variable{--font-hanken:"Hanken Grotesk", "Hanken Grotesk Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_f8290d5a-module__2Nw1lG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_f8290d5a-module__2Nw1lG__variable{--font-jetbrains:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#e8ecef;--bg-2:#eef1f4;--surface:#fff;--ink:#14181d;--ink-2:#1a2128;--ink-panel:#161c24;--text:#181d23;--muted:#5d6873;--muted-2:#8b95a0;--on-dark:#e7ebef;--on-dark-muted:#9aa6b2;--accent:#1c3d5e;--accent-press:#142d47;--accent-bright:#275f93;--accent-soft:#dde6ef;--accent-line:#c2d1e0;--line:#d6dce1;--line-strong:#c5ccd3;--line-dark:#ffffff1a;--font-display:var(--font-archivo), system-ui, sans-serif;--font-body:var(--font-hanken), system-ui, sans-serif;--font-mono:var(--font-jetbrains), ui-monospace, monospace;--maxw:1180px;--gutter:clamp(20px, 5vw, 64px);--radius:4px;--radius-lg:8px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-body);background:var(--bg);color:var(--text);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}::selection{background:var(--accent);color:#fff}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(72px,11vw,140px);position:relative}.section+.section{border-top:1px solid var(--line)}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:12px;display:inline-flex}.eyebrow .num{color:var(--accent);font-weight:600}.eyebrow:before{content:"";background:var(--line-strong);width:22px;height:1px}.section-head{max-width:720px;margin-bottom:clamp(40px,6vw,72px)}.section-head h2{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);text-wrap:balance;margin-top:18px;font-size:clamp(1.9rem,4.4vw,3rem);font-weight:680;line-height:1.04}.section-head p{color:var(--muted);text-wrap:pretty;max-width:56ch;margin-top:18px;font-size:clamp(1rem,1.4vw,1.15rem)}.btn{--pad-y:13px;--pad-x:22px;font-family:var(--font-body);letter-spacing:.01em;padding:var(--pad-y) var(--pad-x);border-radius:var(--radius);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);white-space:nowrap;border:1px solid #0000;align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn .arr{transition:transform .25s var(--ease)}.btn:hover .arr{transform:translate(3px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-press)}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn-ghost:hover{border-color:var(--ink);background:var(--surface)}.btn-on-dark-primary{color:var(--ink);background:#fff}.btn-on-dark-primary:hover{background:var(--accent-soft)}.btn-on-dark-ghost{color:var(--on-dark);background:0 0;border-color:#ffffff38}.btn-on-dark-ghost:hover{border-color:#fff}.nav{z-index:100;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);transition:border-color .3s var(--ease), background .3s var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.nav.scrolled{border-bottom-color:var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent)}.nav-inner{justify-content:space-between;align-items:center;gap:24px;height:68px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:12px;font-weight:700;display:flex}.brand .mono{border-radius:var(--radius);background:var(--accent);color:#fff;width:34px;height:34px;font-family:var(--font-mono);letter-spacing:0;place-items:center;font-size:14px;font-weight:600;display:grid}.brand .name{font-size:16px}.brand .name small{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-size:10.5px;font-weight:400;display:block}.nav-links{align-items:center;gap:clamp(18px,2.4vw,34px);display:flex}.nav-links a{color:var(--muted);transition:color .2s var(--ease);padding-block:4px;font-size:14.5px;font-weight:500;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:1.5px;transition:width .25s var(--ease);position:absolute;bottom:-2px;left:0}.nav-links a:hover,.nav-links a.active{color:var(--ink)}.nav-links a.active:after{width:100%}.nav-cta{align-items:center;gap:14px;display:flex}.nav-toggle{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;display:none}.nav-toggle span{background:var(--ink);width:18px;height:1.6px;transition:transform .3s var(--ease), opacity .2s var(--ease);margin-inline:auto;display:block}.nav-toggle.open span:first-child{transform:translateY(6.6px)rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-6.6px)rotate(-45deg)}.mobile-menu{background:var(--bg-2);border-bottom:1px solid var(--line);padding:14px var(--gutter) 28px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease), transform .25s var(--ease);z-index:99;position:fixed;inset:68px 0 auto;transform:translateY(-12px)}.mobile-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-menu a{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--line);align-items:baseline;gap:14px;padding:15px 4px;font-size:1.5rem;font-weight:600;display:flex}.mobile-menu a .mi{font-family:var(--font-mono);color:var(--accent);font-size:12px;font-weight:500}.mobile-menu .btn{justify-content:center;width:100%;margin-top:22px}.hero{padding-block:clamp(60px,9vw,120px) clamp(72px,10vw,130px)}.hero-grid{grid-template-columns:1.25fr .9fr;align-items:center;gap:clamp(36px,5vw,72px);display:grid}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);align-items:center;gap:10px;margin-bottom:26px;font-size:12.5px;display:inline-flex}.status-dot{background:#2e9e6b;border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse;box-shadow:0 0 #2e9e6b80}@keyframes pulse{0%{box-shadow:0 0 #2e9e6b73}70%{box-shadow:0 0 0 7px #2e9e6b00}to{box-shadow:0 0 #2e9e6b00}}@media (prefers-reduced-motion:reduce){.status-dot{animation:none}}.hero h1{font-family:var(--font-display);letter-spacing:-.035em;color:var(--ink);font-size:clamp(2.6rem,7.2vw,5rem);font-weight:720;line-height:.98}.hero h1 .accent{color:var(--accent)}.hero-lede{color:var(--muted);text-wrap:pretty;max-width:46ch;margin-top:26px;font-size:clamp(1.08rem,1.7vw,1.32rem);line-height:1.5}.hero-lede strong{color:var(--ink);font-weight:600}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:38px;display:flex}.hero-meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:28px 40px;margin-top:40px;padding-top:28px;display:flex}.hero-meta .item .k{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-size:11px}.hero-meta .item .v{font-family:var(--font-display);color:var(--ink);margin-top:4px;font-size:1.15rem;font-weight:600}.spec-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px #141e2d0a,0 20px 50px -28px #141e2d4d}.spec-top{border-bottom:1px solid var(--line);background:var(--bg-2);align-items:center;gap:8px;padding:13px 16px;display:flex}.spec-top .dots{gap:6px;display:flex}.spec-top .dots i{background:var(--line-strong);border-radius:50%;width:10px;height:10px;font-style:normal}.spec-top .file{font-family:var(--font-mono);color:var(--muted);margin-left:8px;font-size:12px}.spec-body{padding:22px 22px 24px}.spec-row{border-bottom:1px dashed var(--line);font-family:var(--font-mono);justify-content:space-between;gap:16px;padding:11px 0;font-size:13px;display:flex}.spec-row:last-of-type{border-bottom:0;padding-bottom:0}.spec-row .label{color:var(--muted)}.spec-row .val{color:var(--ink);text-align:right;font-weight:500}.spec-row .val .ok{color:#2e9e6b}.spec-stack{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.spec-stack .chip{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:3px;padding:5px 9px;font-size:11.5px}.about-grid{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(36px,5vw,64px);display:grid}.photo-ph{aspect-ratio:4/5;border-radius:var(--radius-lg);border:1px solid var(--line);background:repeating-linear-gradient(135deg, transparent 0 14px, #1c3d5e0b 14px 15px), var(--bg-2);place-items:center;display:grid;position:relative;overflow:hidden}.photo-ph .tag{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:7px 12px;font-size:12px}.photo-ph .corner{font-family:var(--font-mono);color:var(--muted-2);font-size:10.5px;position:absolute}.photo-ph .corner.tl{top:12px;left:12px}.photo-ph .corner.br{bottom:12px;right:12px}.about-body .lead{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:pretty;font-size:clamp(1.25rem,2.3vw,1.65rem);font-weight:560;line-height:1.34}.about-body p{color:var(--muted);text-wrap:pretty;margin-top:20px}.about-body p a{color:var(--accent);border-bottom:1px solid var(--accent-line);font-weight:600}.about-body p a:hover{border-color:var(--accent)}.skills{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:30px 40px;margin-top:40px;padding-top:34px;display:grid}.skill-col h4{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:11.5px}.skill-col ul{flex-direction:column;gap:9px;display:flex}.skill-col li{color:var(--ink);align-items:baseline;gap:9px;font-size:15px;display:flex}.skill-col li:before{content:"";background:var(--accent-line);border-radius:1px;flex:none;width:5px;height:5px;transform:translateY(-2px)}.xp-list{flex-direction:column;gap:0;display:flex}.xp-company{border-top:1px solid var(--line);padding-top:38px;padding-bottom:38px}.xp-company:last-child{border-bottom:1px solid var(--line)}.xp-grid{grid-template-columns:.5fr 1.5fr;gap:clamp(20px,4vw,56px);display:grid}.xp-head .co{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.5rem;font-weight:660}.xp-head .span{font-family:var(--font-mono);color:var(--muted);margin-top:8px;font-size:12.5px}.xp-head .loc{font-family:var(--font-mono);color:var(--muted-2);margin-top:4px;font-size:12px}.xp-roles{flex-direction:column;gap:26px;display:flex}.role{padding-left:26px;position:relative}.role:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;left:0}.role:after{content:"";background:var(--line);width:1px;position:absolute;top:22px;bottom:-26px;left:4px}.role:last-child:after{display:none}.role .rt{flex-wrap:wrap;align-items:baseline;gap:8px 14px;display:flex}.role .title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:1.12rem;font-weight:600}.role .dates{font-family:var(--font-mono);color:var(--muted);font-size:12px}.role ul{flex-direction:column;gap:8px;margin-top:12px;display:flex}.role li{color:var(--muted);text-wrap:pretty;padding-left:18px;font-size:15.5px;position:relative}.role li:before{content:"→";color:var(--accent);font-family:var(--font-mono);font-size:13px;position:absolute;left:0}.role li strong{color:var(--ink);font-weight:600}.proj-grid{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}.proj-grid .span-2{grid-column:span 2}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);flex-direction:column;padding:30px 30px 26px;display:flex}.card:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 1px 2px #141e2d0a,0 26px 50px -34px #141e2d57}.card-top{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.card-kind{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:3px;padding:5px 10px;font-size:11px}.card-kind.muted{color:var(--muted);background:var(--bg-2);border-color:var(--line)}.card-links{gap:8px;display:flex}.icon-link{border:1px solid var(--line);border-radius:var(--radius);width:36px;height:36px;color:var(--muted);transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);place-items:center;display:grid}.icon-link:hover{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.card h3{font-family:var(--font-display);letter-spacing:-.022em;color:var(--ink);font-size:1.42rem;font-weight:660}.span-2 h3{font-size:clamp(1.5rem,2.6vw,2rem)}.card p{color:var(--muted);text-wrap:pretty;flex:1;margin-top:12px;font-size:15.5px}.tags{flex-wrap:wrap;gap:7px;margin-top:22px;display:flex}.tag{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);background:var(--bg-2);border-radius:3px;padding:4px 9px;font-size:11.5px}.svc-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.svc{background:var(--surface);transition:background .25s var(--ease);padding:34px 32px 36px}.svc:hover{background:var(--bg-2)}.svc .no{font-family:var(--font-mono);color:var(--accent);letter-spacing:.05em;font-size:12px}.svc h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:16px 0 12px;font-size:1.3rem;font-weight:640}.svc p{color:var(--muted);text-wrap:pretty;font-size:15px}.svc .svc-tags{font-family:var(--font-mono);color:var(--muted-2);letter-spacing:.02em;margin-top:18px;font-size:12px}.contact{background:var(--ink-panel);color:var(--on-dark);border-top:0!important}.contact .eyebrow{color:var(--on-dark-muted)}.contact .eyebrow:before{background:#fff3}.contact-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(40px,6vw,80px);display:grid}.contact h2{font-family:var(--font-display);letter-spacing:-.03em;color:#fff;text-wrap:balance;margin-top:18px;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:680;line-height:1.02}.contact .sub{color:var(--on-dark-muted);text-wrap:pretty;max-width:44ch;margin-top:22px;font-size:clamp(1.05rem,1.6vw,1.2rem)}.contact-actions{flex-wrap:wrap;gap:14px;margin-top:36px;display:flex}.contact-card{border:1px solid var(--line-dark);border-radius:var(--radius-lg);background:#ffffff09;padding:12px}.cc-row{border-radius:var(--radius);transition:background .2s var(--ease);align-items:center;gap:16px;padding:18px 16px;display:flex}.cc-row+.cc-row{border-top:1px solid var(--line-dark)}.cc-row:hover{background:#ffffff0d}.cc-ic{border-radius:var(--radius);border:1px solid var(--line-dark);width:40px;height:40px;color:var(--on-dark);flex:none;place-items:center;display:grid}.cc-meta{min-width:0}.cc-meta .k{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-muted);font-size:11px;display:block}.cc-meta .v{color:#fff;word-break:break-word;margin-top:3px;font-size:15px;font-weight:500;display:block}.cc-row .arr{color:var(--on-dark-muted);transition:transform .2s var(--ease), color .2s var(--ease);margin-left:auto}.cc-row:hover .arr{color:#fff;transform:translate(3px)}.footer{background:var(--ink);color:var(--on-dark-muted);border-top:1px solid #ffffff12;padding-block:40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer .fbrand{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;font-weight:700}.footer .fmeta{font-family:var(--font-mono);font-size:12.5px}.footer a:hover{color:#fff}.footer .flinks{gap:22px;display:flex}.footer .flinks a{font-family:var(--font-mono);transition:color .2s var(--ease);font-size:12.5px}.reveal{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(16px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}@media (max-width:1000px){.hero-grid{grid-template-columns:1fr}.spec-card{max-width:460px}.about-grid{grid-template-columns:1fr}.photo-ph{aspect-ratio:1;max-width:340px}.contact-grid{grid-template-columns:1fr}}@media (max-width:860px){.nav-links,.nav-cta .btn{display:none}.nav-toggle{display:flex}.xp-grid{grid-template-columns:1fr;gap:22px}.proj-grid{grid-template-columns:1fr}.proj-grid .span-2{grid-column:span 1}.svc-grid{grid-template-columns:1fr}}@media (max-width:560px){body{font-size:16px}.skills{grid-template-columns:1fr}.hero-meta{gap:20px 30px}.footer-inner{flex-direction:column;align-items:flex-start}.card{padding:24px 22px}}
