@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes button-spin{to{transform:rotate(360deg)}}@font-face{font-family:"Inter";src:url(../fonts/inter-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Inter";src:url(../fonts/inter-latin-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Inter";src:url(../fonts/inter-latin-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}*,::after,::before{margin:0;padding:0;box-sizing:border-box}:root{--bg:#FAF9F5;--text:#1A1A2E;--accent:#3D5A4F;--accent-hover:#2E4A3F;--accent-light:rgba(61, 90, 79, 0.08);--surface:#FFFFFF;--metrics-bg:#F0F5F3;--muted:#525866;--border:#E5E7EB;--nav-bg:rgba(250, 249, 245, 0.85);color-scheme:light}[data-theme=dark]{--bg:#1A1A2E;--text:#F0F0F5;--accent:#5BA88C;--accent-hover:#6DC4A4;--accent-light:rgba(91, 168, 140, 0.1);--surface:#252540;--metrics-bg:#1F2E38;--muted:#A8AEB8;--border:#2D2D4A;--nav-bg:rgba(26, 26, 46, 0.85);color-scheme:dark}body{font-family:"Inter",system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}h1,h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400;letter-spacing:-.01em}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:box-shadow .3s ease;border-bottom:1px solid transparent}.nav.scrolled{box-shadow:0 1px 3px rgba(0,0,0,.06);border-bottom-color:var(--border)}.nav-inner,.nav-links{display:flex;align-items:center}.nav-inner{max-width:1100px;margin:0 auto;padding:.85rem 1.5rem;justify-content:center}.nav-links{gap:1.75rem;list-style:none}.theme-toggle-mobile{margin-top:.25rem}.theme-toggle-mobile svg{position:static;transform:none;flex-shrink:0}.nav-links a,.theme-toggle-mobile .theme-label{color:var(--muted);font-size:.9rem;font-weight:500}.theme-toggle-mobile .theme-label{margin-left:.5rem}[data-theme=dark] .theme-toggle-mobile .icon-sun{display:block}.theme-toggle-mobile .icon-sun,[data-theme=dark] .theme-toggle-mobile .icon-moon{display:none}.nav-links a{text-decoration:none;position:relative;transition:color .2s}.nav-links a::after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent);transition:width .25s ease}.nav-links a:hover{color:var(--accent-hover)}.nav-links a:hover::after,.nav-links a[aria-current=page]::after{width:100%}.nav-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.nav-links a[aria-current=page]{color:var(--text)}.theme-toggle{background:0 0;border:0;cursor:pointer;padding:.75rem;border-radius:6px;color:var(--muted);transition:color .2s,background-color .2s;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;position:relative}.theme-toggle:hover{color:var(--accent-hover);background:var(--accent-light)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle svg{width:18px;height:18px;position:absolute;transition:opacity .2s ease,transform .2s ease}.theme-toggle .icon-sun{opacity:0;transform:rotate(-90deg)}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{opacity:1;transform:rotate(0deg)}[data-theme=dark] .theme-toggle .icon-moon{opacity:0;transform:rotate(90deg)}.nav-toggle{display:none;background:0 0;border:0;cursor:pointer;padding:.75rem;min-width:44px;min-height:44px;border-radius:6px;transition:background-color .2s}.nav-toggle:hover{background:var(--accent-light)}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-toggle span{display:block;width:18px;height:2px;background:var(--text);margin:4px 0;transition:transform .25s ease,opacity .25s ease;border-radius:1px}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.mobile-menu{border-bottom:1px solid var(--border);background:var(--surface);padding:0 1.5rem;box-shadow:0 8px 32px rgba(0,0,0,.15);position:relative;z-index:101;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .3s ease,opacity .2s ease,padding .3s ease,visibility .3s ease}.mobile-menu.open{max-height:300px;opacity:1;visibility:visible;padding:1rem 1.5rem 1.5rem}.mobile-menu-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99;opacity:0;transition:opacity .2s ease}.mobile-menu-backdrop.visible{display:block;opacity:1}[data-theme=dark] .mobile-menu-backdrop{background:rgba(0,0,0,.6)}.mobile-menu ul{list-style:none;display:flex;flex-direction:column;gap:.75rem}.mobile-menu a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s;border-radius:4px;display:block;padding:.5rem 0}.mobile-menu a:hover,.social-icon:hover{color:var(--accent-hover)}.mobile-menu a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-menu a[aria-current=page]{color:var(--text)}.social-icon{color:var(--muted);transition:color .2s;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.social-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.social-icon svg{width:20px;height:20px;fill:currentColor}.badge,.footer-links a{display:inline-flex;align-items:center}.badge{gap:.375rem;padding:.35rem .85rem;border-radius:100px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.badge-not-started{background:rgba(107,114,128,.12);color:#4b5563}[data-theme=dark] .badge-not-started{background:rgba(156,163,175,.18);color:#d1d5db}.badge-progress{background:rgba(245,158,11,.12);color:#b45309}[data-theme=dark] .badge-progress{background:rgba(245,158,11,.18);color:#fcd34d}.badge-live{background:rgba(34,197,94,.12);color:#15803d}[data-theme=dark] .badge-live{background:rgba(34,197,94,.18);color:#86efac}.badge-live::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;animation:badge-pulse 2s ease-in-out infinite}.highlight-text{font-weight:600;color:var(--text)}.footer{padding:2rem 1.5rem;margin-top:4rem;border-top:1px solid var(--border)}.footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer-copy{font-size:.8rem;color:var(--muted)}.footer-links{display:flex;gap:1.25rem;align-items:center}.footer-links a{color:var(--muted);text-decoration:none;transition:color .2s;padding:.5rem;min-width:44px;min-height:44px;justify-content:center}.footer-links a:hover{color:var(--accent-hover)}.footer-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.newsletter{padding:2rem;background:var(--metrics-bg);border-radius:10px;border:1px solid var(--border)}.newsletter h2{font-size:1.1rem}.newsletter p{font-size:.9rem;color:var(--muted);margin-bottom:1.25rem}.newsletter-form{display:flex;gap:.75rem}.newsletter-form input[type=email]{flex:1;padding:.7rem 1rem;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:.9rem;line-height:normal;background:var(--surface);color:var(--text);outline:0;transition:border-color .2s}.newsletter-form input[type=email]:focus{border-color:var(--accent)}.newsletter-form input[type=email]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.newsletter-form input[type=email]:not(:placeholder-shown):invalid{border-color:#ef4444;box-shadow:0 0 0 1px #ef4444}.newsletter-form input[type=email]:not(:placeholder-shown):invalid:focus{outline-color:#ef4444;border-color:#ef4444}.newsletter-form button{padding:.7rem 1.5rem;background:var(--accent);color:#fff;border:0;border-radius:6px;font-family:inherit;font-size:.9rem;line-height:normal;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.newsletter-form button:hover{background:var(--accent-hover)}.newsletter-form button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.newsletter-form button:disabled{opacity:.7;cursor:not-allowed}.newsletter-form button.submitting{position:relative;color:transparent}.newsletter-form button.submitting::after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:button-spin .8s linear infinite}[data-theme=dark] .newsletter-form input[type=email]{background:#252540;border-color:#2d2d4a;color:#f0f0f5}[data-theme=dark] .newsletter-form input[type=email]::placeholder{color:#a8aeb8}[data-theme=dark] .newsletter-form button{background:#5ba88c}[data-theme=dark] .newsletter-form button:hover{background:#6dc4a4}.grecaptcha-badge{visibility:hidden!important}.recaptcha-notice{font-size:.7rem;color:var(--muted);margin-top:.75rem}.recaptcha-notice a{color:var(--accent);text-decoration:none;transition:color .2s ease}.recaptcha-notice a:hover{color:var(--accent-hover)}.js-fade .fade-up{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}.fade-up.visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.fade-up,.js-fade .fade-up{opacity:1;transform:none;transition:none;animation:none}.badge-live::before{animation:none}.newsletter-form button.submitting::after{animation:none;border:2px solid #fff;border-radius:50%}.mobile-menu,.mobile-menu-backdrop,.nav,.nav-toggle span{transition:none}.theme-toggle svg{transition:none;transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.link-accent{color:var(--accent);font-weight:500;text-decoration:none;transition:color .2s ease}.link-accent:hover{color:var(--accent-hover)}.link-accent:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.link-external{display:inline-flex;align-items:center;gap:.25rem}.link-external svg{width:14px;height:14px;flex-shrink:0;transition:transform .2s ease}.link-external:hover svg{transform:translate(2px,-2px)}@media (max-width:768px){.nav-inner{justify-content:flex-end}.nav-toggle{display:block}.nav .nav-links{display:none}.footer-inner,.newsletter-form{flex-direction:column}.footer-inner{gap:1rem;text-align:center}.about-content ul li{margin-bottom:.75rem;padding-top:.25rem;padding-bottom:.25rem}.project-card-footer{flex-direction:column;align-items:flex-start;gap:.75rem}}.hero{max-width:700px;margin:0 auto;padding:7rem 1.5rem 4rem}.hero-intro{display:flex;align-items:center;gap:1.25rem;margin-bottom:.75rem;flex-wrap:wrap}.hero-headshot-wrap{width:110px;height:110px;border-radius:50%;overflow:hidden;flex-shrink:0}.hero-headshot{width:100%;height:100%;object-fit:cover}.hero-subtitle{font-size:1rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.7}.hero-links{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.products-list{margin-bottom:.5rem;list-style:none}.products-list li{border-bottom:1px solid var(--border)}.products-list li:first-child{border-top:1px solid var(--border)}.product-link{display:flex;align-items:center;gap:.6rem;padding:.75rem 0;text-decoration:none;color:var(--text);font-size:.95rem;transition:color .2s}.product-link:hover{color:var(--accent-hover)}.product-link:hover .product-icon{opacity:1}.product-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.product-icon{width:18px;height:18px;flex-shrink:0;opacity:.6;transition:opacity .2s}.product-name{font-weight:500}.product-stat{font-size:.8rem;color:var(--muted);margin-left:auto;white-space:nowrap;text-align:right}.writing-item{display:block;padding:.75rem 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text);font-size:.95rem;transition:color .2s}.writing-item:first-child{border-top:1px solid var(--border)}.writing-item:hover{color:var(--accent-hover)}.writing-item:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}@media (max-width:400px){.product-stat{white-space:normal}.hero-intro{justify-content:center}.hero-intro,.hero-subtitle{text-align:center}.hero-links{justify-content:center}}.about-content{max-width:700px;margin:0 auto;padding:7rem 1.5rem 4rem}.about-content h2{font-size:1.25rem;margin-top:3rem;margin-bottom:1rem}.about-content p{color:var(--muted);margin-bottom:1rem;font-size:1rem;line-height:1.7}.about-content p strong{color:var(--text);font-weight:600}.about-content ul{list-style:none;margin-bottom:1.5rem}.about-content ul li{font-size:.95rem;color:var(--muted);padding-left:1.25rem;position:relative;margin-bottom:.5rem;line-height:1.6}.about-content ul li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.role-card{margin-top:1.5rem;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:10px}.role-title,h3.role-title{font-family:"Inter",system-ui,sans-serif;font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.15rem}.role-company{font-size:.85rem;color:var(--muted);margin-bottom:.5rem}.role-card p{margin-bottom:0}@media (max-width:400px){.about-content{padding-left:1rem;padding-right:1rem}.role-card{padding:1.25rem 1rem}}.page-content{max-width:700px;margin:0 auto;padding:7rem 1.5rem 4rem}.page-intro{margin-bottom:2.5rem}.page-intro p{font-size:1rem;color:var(--muted);line-height:1.7}.projects-grid{display:flex;flex-direction:column;gap:1.25rem}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.project-card h3{font-family:"DM Serif Display",Georgia,serif;font-weight:400;font-size:1.25rem;color:var(--text)}.project-card-desc{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:1.25rem}.project-card-footer{display:flex;justify-content:space-between;align-items:center}.built-with{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--muted)}.built-with img{width:20px;height:20px;opacity:.7}.project-preview-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-style:italic;color:var(--accent);text-decoration:none;padding:.5rem 0;min-height:44px}.project-preview-link:hover{color:var(--accent-hover)}.project-preview-link svg{width:14px;height:14px;transition:transform .2s ease}.project-preview-link:hover svg{transform:translateX(3px)}.project-preview-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:500px){.project-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}}