:root{--accent: #1f1f1f;--accent-dark: #1f1f1f;--lang: #e2863b;--bar-bg: #111;--card-bg: #ffffff;--ink: #111111;--ink-soft: #555555;--border: #e5e5e5;--paper-radius: 8px;--shadow: 0 2px 10px rgba(0, 0, 0, .12);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .1);--maxw: 1100px;--bar-h: 88px;--font-body: "Inter", "Segoe UI", system-ui, sans-serif;--font-head: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}img,picture,svg{display:block;max-width:100%}button,input,textarea{font:inherit;color:inherit}a{color:inherit}ul{list-style:none;padding:0}html{min-height:100%;background:linear-gradient(to bottom,#0a0a0cc7,#08080aed),var(--bg-image, none) center / cover no-repeat fixed,#0d0d0f}body{font-family:var(--font-body);color:var(--ink);line-height:1.6;min-height:100dvh;display:flex;flex-direction:column}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}@media(max-width:700px){html{background-attachment:scroll}}.topbar{position:fixed;inset:0 0 auto;z-index:400;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,4vw,3rem);min-height:var(--bar-h);background:#1111118c;-webkit-backdrop-filter:blur(10px) saturate(0);backdrop-filter:blur(10px) saturate(0);box-shadow:var(--shadow-sm);transition:transform .25s ease}.topbar.is-hidden{transform:translateY(-100%);pointer-events:none}.topbar .logo img{height:clamp(52px,8vw,76px);width:auto}.main-nav ul{display:flex;gap:clamp(.25rem,1.5vw,1rem)}.main-nav a{position:relative;display:block;padding:.6rem .9rem;color:#f2f2f2;font-family:var(--font-head);font-size:.95rem;text-decoration:none;transition:color .2s ease}.main-nav a:after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.35rem;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.main-nav a:hover,.main-nav a[aria-current=page]{color:#fff}.main-nav a:hover:after,.main-nav a[aria-current=page]:after{transform:scaleX(1)}.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem}.nav-toggle span,.nav-toggle span:before,.nav-toggle span:after{content:"";display:block;width:28px;height:3px;background:#f2f2f2;border-radius:3px;transition:transform .25s ease,opacity .25s ease}.nav-toggle span:before{transform:translateY(-9px)}.nav-toggle span:after{transform:translateY(6px)}.nav-toggle[aria-expanded=true] span{background:transparent}.nav-toggle[aria-expanded=true] span:before{transform:rotate(45deg)}.nav-toggle[aria-expanded=true] span:after{transform:rotate(-45deg) translateY(0)}@media(max-width:760px){.nav-toggle{display:block}.main-nav{position:absolute;top:100%;right:clamp(1rem,4vw,3rem);background:var(--bar-bg);border-radius:0 0 6px 6px;box-shadow:var(--shadow-sm);overflow:hidden;max-height:0;visibility:hidden;transition:max-height .3s ease,visibility .3s ease}.main-nav.open{max-height:320px;visibility:visible}.main-nav ul{flex-direction:column;gap:0;padding:.5rem}.main-nav a{padding:.85rem 2.5rem .85rem 1.25rem}.main-nav a:after{left:1.25rem;right:1.25rem;bottom:.5rem}}main{flex:1;width:min(100% - 2rem,var(--maxw));margin-inline:auto;padding-top:calc(var(--bar-h) + clamp(1.5rem,6vw,4rem));padding-bottom:clamp(2rem,6vw,5rem)}.hero{text-align:center;font-family:var(--font-head);color:#fff;padding-bottom:clamp(1.5rem,5vw,3rem)}.hero h1{font-family:var(--font-head);font-weight:400;font-size:clamp(2rem,6vw,3.25rem);text-shadow:0 2px 12px rgba(0,0,0,.6)}.hero .page-logo{margin-inline:auto;height:clamp(90px,18vw,150px);width:auto}.hero .headshot{margin:0 auto 1rem;height:clamp(160px,30vw,240px);width:clamp(160px,30vw,240px);border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.85);box-shadow:var(--shadow);transition:opacity .8s ease}.hero .headshot:hover{opacity:.55}.rule{width:min(40%,320px);margin:1.5rem auto 0;border:0;border-bottom:1px solid rgba(255,255,255,.28)}.paper{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--paper-radius);padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--shadow);margin-inline:auto;max-width:800px}.paper p+p{margin-top:1rem}.prose{font-size:clamp(1rem,2.4vw,1.2rem);color:var(--ink-soft)}.btn{display:inline-block;padding:.75rem 1.6rem;border:1.5px solid #111;border-radius:6px;background:#fff;color:#111;text-decoration:none;cursor:pointer;box-shadow:4px 4px #111;transition:transform .1s ease,box-shadow .1s ease,background .2s ease,color .2s ease}.btn:hover{background:#111;color:#fff;transform:translate(2px,2px);box-shadow:2px 2px #111}.btn:active{transform:translate(4px,4px);box-shadow:0 0 #111}.hero-cta .btn,.cs-cta .btn{background:transparent;color:#fff;border-color:#fff;box-shadow:4px 4px #fff}.hero-cta .btn:hover,.cs-cta .btn:hover{background:#fff;color:#111;transform:translate(2px,2px);box-shadow:2px 2px #fff}.hero-cta .btn:active,.cs-cta .btn:active{transform:translate(4px,4px);box-shadow:0 0 #fff}.section-menu{margin-top:clamp(3rem,10vw,6rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:clamp(1rem,4vw,2.5rem);text-align:center}.section-menu a{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-decoration:none;color:#fff;font-family:var(--font-head);font-size:1.15rem;text-shadow:0 2px 10px rgba(0,0,0,.6)}.section-menu img{height:clamp(70px,14vw,110px);width:auto;transition:transform .25s ease}.section-menu a:hover img{transform:translateY(-6px) scale(1.05)}.contact-form{display:grid;gap:.4rem;max-width:640px;margin-inline:auto}.contact-form label{font-weight:600;color:var(--ink);margin-top:.75rem}.contact-form input,.contact-form textarea{width:100%;padding:.7rem .9rem;border:1px solid #d4d4d4;border-radius:6px;background:#fff;transition:border-color .2s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}.contact-form textarea{resize:vertical;min-height:160px}.contact-form .btn{margin-top:1rem;justify-self:start}.form-note{margin-top:.75rem;color:var(--ink-soft);font-size:.9rem}.site-footer{text-align:center;color:#eaeaea;padding:clamp(2rem,6vw,4rem) 1rem;text-shadow:0 1px 6px rgba(0,0,0,.7)}.site-footer a{color:#d4d4d4;text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer .socials{display:flex;justify-content:center;gap:1.25rem;margin-bottom:1.25rem}.site-footer .socials a{font-size:1.5rem}.site-footer .copyright{display:block;margin-top:.5rem;font-size:.9rem}.hero-sub{max-width:46ch;margin:1rem auto 0;font-family:var(--font-head);font-weight:300;font-size:clamp(1.05rem,2.6vw,1.35rem);color:#f3f3f3;text-shadow:0 2px 10px rgba(0,0,0,.6)}.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1.75rem}.home-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(1rem,3vw,1.5rem);margin-top:clamp(2rem,6vw,3.5rem)}.home-service{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1.5px solid #fff;border-radius:8px;padding:1.5rem;box-shadow:4px 4px #fff;transition:transform .1s ease,box-shadow .1s ease,background .2s ease,color .2s ease}.home-service:hover{background:#111;transform:translate(2px,2px);box-shadow:2px 2px #fff}.home-service:active{transform:translate(4px,4px);box-shadow:0 0 #fff}.home-service h3{font-family:var(--font-head);color:var(--ink);margin-bottom:.5rem;transition:color .2s ease}.home-service p{color:var(--ink-soft);transition:color .2s ease}.home-service:hover h3{color:#fff}.home-service:hover p{color:#e5e5e5}.home-personal{margin-top:clamp(2rem,6vw,3.5rem)}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1rem,3vw,1.75rem);margin-top:clamp(1.5rem,5vw,3rem)}.service-card{background:#fff;color:var(--ink);border:1.5px solid #fff;border-radius:8px;padding:clamp(1.5rem,3vw,2rem);box-shadow:4px 4px #fff;scroll-margin-top:calc(var(--bar-h) + 1rem);transition:transform .1s ease,box-shadow .1s ease,background .2s ease,color .2s ease}.service-card:hover{background:#111;transform:translate(2px,2px);box-shadow:2px 2px #fff}.service-card:active{transform:translate(4px,4px);box-shadow:0 0 #fff}.service-card h2{font-family:var(--font-head);font-size:1.3rem;color:var(--ink);transition:color .2s ease}.service-tagline{margin:.5rem 0 1rem;color:var(--ink);font-style:italic;transition:color .2s ease}.service-outcomes{display:grid;gap:.5rem}.service-outcomes li{position:relative;padding-left:1.6rem;color:var(--ink-soft);transition:color .2s ease}.service-outcomes li:before{content:"✓";position:absolute;left:0;color:var(--accent-dark);font-weight:700;transition:color .2s ease}.service-demo{display:inline-block;margin-top:1.25rem;color:var(--accent-dark);text-decoration:none;font-weight:600;transition:color .2s ease}.service-demo:hover{text-decoration:underline}.service-card:hover h2,.service-card:hover .service-tagline,.service-card:hover .service-demo,.service-card:hover .service-outcomes li:before{color:#fff}.service-card:hover .service-outcomes li{color:#e5e5e5}.cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(1rem,3vw,1.75rem);margin-top:clamp(1.5rem,5vw,3rem)}.cs-card{display:flex;flex-direction:column;background:#fff;border:1.5px solid #fff;border-radius:8px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:4px 4px #fff;transition:transform .1s ease,box-shadow .1s ease,background .2s ease,color .2s ease}.cs-card:hover{background:#111;transform:translate(2px,2px);box-shadow:2px 2px #fff}.cs-card:active{transform:translate(4px,4px);box-shadow:0 0 #fff}.cs-media{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-bottom:1px solid var(--border)}.cs-media img{width:100%;height:100%;object-fit:cover}.cs-placeholder{width:100%;height:100%;display:grid;place-items:center;padding:1rem;text-align:center;background:#f4f4f5;color:#555;font-family:var(--font-head);font-size:1.2rem}.cs-body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.cs-title{font-family:var(--font-head);font-size:1.25rem;transition:color .2s ease}.cs-problem{color:var(--ink-soft);font-size:.95rem;transition:color .2s ease}.cs-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.cs-stack li{font-size:.78rem;background:#f4f4f5;color:#3f3f46;padding:.2rem .6rem;border-radius:4px;transition:background .2s ease,color .2s ease}.cs-more{margin-top:auto;padding-top:.75rem;color:var(--accent-dark);font-weight:600;transition:color .2s ease}.cs-card:hover .cs-title,.cs-card:hover .cs-more{color:#fff}.cs-card:hover .cs-problem{color:#e5e5e5}.cs-card:hover .cs-stack li{background:#2a2a2a;color:#e5e5e5}.case-study{display:flex;flex-direction:column;gap:clamp(1.25rem,4vw,2rem)}.back-link{color:#d4d4d4;text-decoration:none;align-self:flex-start}.back-link:hover{text-decoration:underline}.cs-header{text-align:center;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6)}.cs-header h1{font-family:var(--font-head);font-weight:400;font-size:clamp(1.8rem,5vw,2.6rem)}.cs-service{margin-top:.5rem}.cs-service a{color:#d4d4d4}.cs-hero-img{width:100%;height:auto;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.case-study .prose h2{font-family:var(--font-head);color:var(--ink);margin-top:1.5rem}.case-study .prose h2:first-child{margin-top:0}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-list li{background:#f4f4f5;color:#3f3f46;padding:.3rem .7rem;border-radius:4px;font-size:.85rem}.cs-cta{text-align:center;margin-top:clamp(2.5rem,8vw,4rem);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6)}.cs-cta p{font-family:var(--font-head);font-size:1.2rem;margin-bottom:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
