:root{--bg: #09090b;--bg-rgb: 9, 9, 11;--fg: #fafafa;--fg-secondary: #a1a1aa;--surface: #151518;--surface-raised: #1c1c22;--primary: #6366f1;--primary-light: #818cf8;--primary-dark: #4f46e5;--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .08);--border: rgba(255, 255, 255, .07);--border-hover: rgba(255, 255, 255, .14);--shadow: 0 1px 3px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.2);--shadow-hover: 0 2px 8px rgba(0,0,0,.3), 0 8px 32px rgba(0,0,0,.25);--radius: 14px;--radius-lg: 18px;--font-heading: "Sora", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif}body.light-theme{--bg: #ffffff;--bg-rgb: 255, 255, 255;--fg: #09090b;--fg-secondary: #71717a;--surface: #f7f7f8;--surface-raised: #ffffff;--primary: #4f46e5;--primary-light: #6366f1;--primary-dark: #4338ca;--accent: #8b5cf6;--accent-soft: rgba(139, 92, 246, .06);--border: rgba(0, 0, 0, .07);--border-hover: rgba(0, 0, 0, .14);--shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.06);--shadow-hover: 0 2px 8px rgba(0,0,0,.06), 0 8px 32px rgba(0,0,0,.08)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:16px;background:var(--bg);color:var(--fg);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}.skip-link{position:absolute;left:1rem;top:-100%;background:var(--bg);color:var(--fg);border:1px solid var(--primary);border-radius:var(--radius);padding:.5rem .75rem;z-index:2000}.skip-link:focus{top:1rem}a:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a{color:var(--primary-light);text-decoration:none;transition:color .2s}a:hover{color:var(--accent)}a:visited{color:var(--primary-light)}.loading{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;justify-content:center;align-items:center;z-index:1000}.loading-spinner{width:32px;height:32px;border:2px solid var(--surface);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cursor-glow{width:400px;height:400px;background:var(--primary);filter:blur(150px);opacity:0;position:fixed;pointer-events:none;z-index:0;border-radius:50%}.cursor-glow--inner{width:150px;height:150px;background:var(--accent);filter:blur(60px)}.app{position:relative;min-height:100vh;z-index:1}nav{position:sticky;top:0;padding:0 2rem;height:64px;display:flex;align-items:center;background:rgba(var(--bg-rgb),.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:1000;border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,transform .3s}nav.scrolled{border-bottom-color:var(--border)}.nav-content{max-width:1080px;width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo img{height:32px;width:auto;transition:opacity .2s}.logo:hover img{opacity:.7}.nav-links{display:flex;gap:2px}.nav-link{color:var(--fg-secondary);font-size:.8125rem;font-weight:500;padding:.375rem .875rem;border-radius:10px;transition:color .2s,background .2s;text-decoration:none}.nav-link:hover{color:var(--fg)}.nav-link.active{color:var(--fg);background:var(--surface)}.theme-toggle{background:none;border:none;color:var(--fg-secondary);cursor:pointer;width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:color .2s;margin-left:.5rem}.theme-toggle:hover{color:var(--fg)}.view{min-height:100vh;display:none;opacity:0;transition:opacity .3s}.view.active{display:block;opacity:1}.view[hidden]{display:none!important}.container{max-width:720px;width:100%;margin:0 auto;padding:0 2rem;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 64px);text-align:center}h1{font-family:var(--font-heading);font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.2;color:var(--fg)}h2{font-family:var(--font-heading);font-size:1.075rem;font-weight:600;letter-spacing:-.02em;color:var(--fg)}.tagline{font-size:.9375rem;color:var(--fg-secondary);line-height:1.7;margin-bottom:2.5rem;max-width:480px}.hero-container{align-items:flex-start;text-align:left}.hero-label{font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem;opacity:0}.hero-title{font-family:var(--font-heading);font-size:clamp(2.75rem,6.5vw,4.5rem);font-weight:600;line-height:1.08;margin-bottom:.75rem;letter-spacing:-.04em;color:var(--fg)}.hero-subtitle{font-family:var(--font-heading);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:300;color:var(--fg-secondary);margin-bottom:2rem;letter-spacing:-.01em;opacity:0}.hero-roles{margin-bottom:1.5rem;min-height:1.5em}.hero-role{font-size:.875rem;font-weight:500;color:var(--accent);opacity:0}.hero-tagline{font-size:.9375rem;color:var(--fg-secondary);max-width:420px;line-height:1.7;margin-bottom:2.5rem;opacity:0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius);font-family:var(--font-body);font-weight:500;font-size:.875rem;text-decoration:none;transition:all .2s;cursor:pointer}.btn-primary{background:var(--primary);color:#fff;border:none;box-shadow:0 2px 8px #6366f140}.btn-primary:hover{background:var(--primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 4px 16px #6366f159}.btn-primary svg{transition:transform .2s}.btn-primary:hover svg{transform:translate(3px)}.section-header{display:flex;align-items:baseline;justify-content:center;gap:1rem;margin-bottom:.5rem}.experience-badge{display:flex;align-items:baseline;gap:.35rem;color:var(--fg-secondary);font-size:.8rem}.experience-number{font-family:var(--font-heading);font-weight:600;color:var(--accent)}.experience-label{font-weight:400}.skills-layout{display:flex;flex-direction:column;gap:1rem;width:100%}.skill-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;display:flex;align-items:flex-start;gap:1.25rem;box-shadow:var(--shadow);transition:border-color .25s,box-shadow .25s,transform .25s;opacity:0;transform:translateY(12px);text-align:left}.skill-block:hover{border-color:var(--border-hover);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.skill-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.skill-body{flex:1;min-width:0}.skill-body h2{margin-bottom:.5rem}.skill-body p{color:var(--fg-secondary);font-size:.875rem;line-height:1.7;margin-bottom:1rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.375rem}.skill-tags span{color:var(--fg-secondary);font-size:.72rem;font-weight:500;padding:.2rem .6rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;transition:color .2s,border-color .2s}.skill-tags span:hover{color:var(--accent);border-color:var(--accent)}.cases-layout{display:flex;flex-direction:column;gap:1rem;width:100%}.case{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:1.5rem;align-items:center;padding:1.5rem;box-shadow:var(--shadow);transition:border-color .25s,box-shadow .25s,transform .25s;opacity:0;transform:translateY(12px);text-align:left}.case:hover{border-color:var(--border-hover);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.case-visual{width:72px;height:72px;flex-shrink:0;border-radius:16px;display:flex;align-items:center;justify-content:center;transition:transform .3s}.case:hover .case-visual{transform:scale(1.05)}.case-visual:before{display:none}.case-visual-inner{color:var(--primary-light);opacity:.6;transition:opacity .2s}.case:hover .case-visual-inner{opacity:.9}.case-content{flex:1;min-width:0}.case-content h2{margin-bottom:.3rem}.case-content p{color:var(--fg-secondary);font-size:.85rem;line-height:1.6;margin-bottom:.6rem}.case-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:0}.case-tags span{color:var(--fg-secondary);font-size:.68rem;font-weight:500;padding:.15rem .5rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px}.case-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--primary-light);font-size:.8125rem;font-weight:500;margin-top:.6rem;transition:color .2s,gap .2s}.case-link:hover{color:var(--accent);gap:.5rem}.august-seo{background:linear-gradient(135deg,#161625 0%,#1e1a3a 100%)}.cda-seo{background:linear-gradient(135deg,#161625 0%,#142038 100%)}.spokane-ai{background:linear-gradient(135deg,#161625 0%,#201830 100%)}body.light-theme .august-seo{background:linear-gradient(135deg,#f0f0ff,#e8e0ff)}body.light-theme .cda-seo{background:linear-gradient(135deg,#eef2ff,#dde8ff)}body.light-theme .spokane-ai{background:linear-gradient(135deg,#f4eeff,#ece0ff)}.connect-layout{display:flex;flex-direction:column;gap:2.5rem;width:100%}.connect-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;opacity:0;transform:translateY(12px);text-align:left}.connect-item{display:flex;align-items:center;gap:1.25rem;padding:1.25rem 1.75rem;transition:background .2s}.connect-item:not(:last-child){border-bottom:1px solid var(--border)}.connect-item:hover{background:var(--accent-soft)}.connect-item svg{color:var(--accent);flex-shrink:0;opacity:.7}.connect-item div{display:flex;flex-direction:column;gap:.1rem}.connect-link{font-weight:500;font-size:.9375rem;color:var(--fg);transition:color .2s}.connect-link:hover{color:var(--primary-light)}.connect-text{font-weight:500;font-size:.9375rem;color:var(--fg)}.connect-note{font-size:.78rem;color:var(--fg-secondary)}.connect-links{display:flex;flex-wrap:wrap;gap:.6rem;opacity:0;transform:translateY(12px)}.connect-external{display:inline-flex;align-items:center;gap:.5rem;color:var(--fg-secondary);font-size:.8125rem;font-weight:500;padding:.6rem 1.15rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);transition:all .2s;text-decoration:none}.connect-external:hover{color:var(--fg);border-color:var(--border-hover);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.connect-external img,.connect-external svg{flex-shrink:0;opacity:.6}.connect-external:hover img,.connect-external:hover svg{opacity:1}.verified-badge{width:16px;height:16px;opacity:1!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.cursor-glow,.cursor-glow--inner{display:none}.loading-spinner{animation:none}.hero-label,.hero-subtitle,.hero-role,.hero-tagline,.skill-block,.case,.connect-info,.connect-links{opacity:1!important;transform:none!important}}@media (max-width: 768px){nav{padding:0 1rem;height:56px}.container{padding:0 1.25rem}h1{font-size:1.625rem}.hero-container{padding:0 0 3rem}.hero-title{font-size:clamp(2.25rem,10vw,3rem)}.tagline{margin-bottom:2rem}.nav-link{font-size:.75rem;padding:.35rem .625rem}.skill-block{flex-direction:column;gap:1rem;padding:1.5rem}.case{flex-direction:column;gap:1rem;align-items:flex-start;padding:1.25rem}.case-visual{width:56px;height:56px;border-radius:14px}.connect-external{width:100%;justify-content:center}.connect-links{flex-direction:column}.btn{width:100%;justify-content:center}}@media (max-width: 480px){h1{font-size:1.375rem}.hero-title{font-size:clamp(1.875rem,11vw,2.5rem)}.nav-link{font-size:.7rem;padding:.3rem .5rem}}[data-reveal]{opacity:0;transform:translateY(12px)}[data-reveal].revealed{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
