@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;500;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Space+Mono:wght@400;700&display=swap";:root{--bg:#0a0a0a;--bg2:#1a1a1a;--white:#f5f5f5;--text:#b0b0b0;--text-h:#fff;--muted:gray;--accent:#c8f04d;--accent-dark:#a8d638;--border:#ffffff14;--border2:#c8f04d26;--font-display:"Bebas Neue", "Arial Black", sans-serif;--font-serif:"DM Serif Display", serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Courier New", "Courier", monospace;--text-muted:gray;--code-bg:#1a1a1a;--accent-bg:#c8f04d1a;--accent-border:#c8f04d80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--heading:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono:"Courier New", monospace;font:18px / 145% var(--sans);letter-spacing:.18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}@keyframes fadeDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes orbPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}@keyframes floatIn{0%{opacity:0;transform:scale(.72)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes anim-fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes typingCursor{0%,49%,to{border-right-color:var(--accent)}50%,99%{border-right-color:#0000}}.anim-fade-up{animation:.6s ease-out both anim-fade-up}.page-wrap{background:var(--bg);width:100%;min-height:100vh;transition:background .4s,color .4s}.hero{width:100%;height:100dvh;min-height:640px;position:relative;overflow:hidden}.hero-photo-bg{z-index:0;position:absolute;inset:0;overflow:hidden}.hero-photo-bg:before{content:"";z-index:1;aspect-ratio:1;pointer-events:none;border:1px solid #0a0a0a94;border-radius:50%;width:min(54vw,760px);position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 14px #0a0a0a0b,0 0 0 42px #0a0a0a05,0 0 24px #0000001f}.hero-photo-bg:after{display:none}.hero-bg-img{z-index:2;object-fit:cover;object-position:center top;pointer-events:none;width:100%;height:100%;transition:filter .4s;position:relative}.hero-bg-img-epic{z-index:3;opacity:0;transform-origin:top;filter:saturate(1.08)contrast(1.04);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),filter .65s;position:absolute;inset:0;transform:translate(clamp(12px,2vw,28px))translateY(clamp(22px,3.4vh,38px))scale(1.07)}.hero-photo-bg.is-person-hovered .hero-bg-img-epic{opacity:1;filter:saturate(1.12)contrast(1.06);transform:translate(clamp(12px,2vw,28px))translateY(clamp(22px,3.4vh,38px))scale(1.035)}.hero-hit-map{z-index:-1;pointer-events:none;width:0;height:0;position:absolute}@media (prefers-reduced-motion:reduce){.hero-bg-img-epic,.clean-hero-title{transition:none}}[data-theme=dark] .hero-bg-img{filter:brightness(.55)grayscale(.15)}.photo-fade-left,.photo-fade-right,.photo-fade-bottom{pointer-events:none;z-index:1;position:absolute}.photo-fade-left{background:linear-gradient(to right, var(--bg) 0%, transparent 100%);width:28%;inset:0 auto 0 0}.photo-fade-right{background:linear-gradient(to left, var(--bg) 0%, transparent 100%);width:28%;inset:0 0 0 auto}.photo-fade-bottom{background:linear-gradient(to bottom, transparent 0%, var(--bg) 100%);height:42%;bottom:0;left:0;right:0}.nav{z-index:50;justify-content:space-between;align-items:center;padding:28px 40px;animation:.7s both fadeDown;display:flex;position:absolute;top:0;left:0;right:0}.nav-logo{font-family:var(--font-serif);letter-spacing:3px;color:var(--fg);font-size:28px;font-style:italic;font-weight:300}.nav-right{align-items:center;gap:14px;display:flex}.theme-btn{background:var(--surface);width:38px;height:38px;color:var(--surface-fg);border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .25s,opacity .25s;display:flex}.theme-btn:hover{opacity:.75;transform:scale(1.08)rotate(20deg)}.nav-pill{background:var(--surface);color:var(--surface-fg);font-family:var(--font-mono);letter-spacing:1.5px;border:none;align-items:center;gap:6px;padding:11px 24px;font-size:11px;transition:opacity .25s,transform .25s;display:flex}.nav-pill:hover{opacity:.78;transform:translate(3px)}.ham-btn{-webkit-backdrop-filter:blur(12px);cursor:pointer;z-index:300;background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;transition:all .3s;display:flex;position:fixed;top:40px;right:40px}.ham-btn:hover{background-color:#ffffff24;border-color:#ffffff47}.ham-btn{background-image:url(/assets/icons/menu.png);background-position:50%;background-repeat:no-repeat;background-size:45px 45px}.ham-btn.ham-open{background-image:url(/assets/icons/X.png)}.ham-line{background:var(--fg);transform-origin:50%;border-radius:2px;width:18px;height:1.5px;transition:all .35s cubic-bezier(.16,1,.3,1);display:none}.ham-btn.ham-open .ham-line:first-child{transform:translateY(6.5px)rotate(45deg)}.ham-btn.ham-open .ham-line:nth-child(2){opacity:0;transform:scaleX(0)}.ham-btn.ham-open .ham-line:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.menu-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000002e;animation:.25s both fadeIn;position:fixed;inset:0}.glass-menu{z-index:250;-webkit-backdrop-filter:blur(28px)saturate(160%);background:#f5f5f8f2;border-left:1px solid #00000014;flex-direction:column;width:300px;height:100vh;padding:40px 32px;transition:transform .55s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(110%);box-shadow:-20px 0 60px #00000014,inset 1px 0 #ffffff80}.glass-menu:before{content:"";pointer-events:none;background:radial-gradient(circle,#fffc,#0000 70%);border-radius:50%;width:240px;height:240px;position:absolute;top:-80px;left:-60px}.glass-menu:after{content:"";pointer-events:none;background:radial-gradient(circle,#c8c8dc26,#0000 70%);border-radius:50%;width:180px;height:180px;position:absolute;bottom:-60px;right:-40px}[data-theme=dark] .glass-menu{background:#00000059;border-left-color:#ffffff1a;box-shadow:-20px 0 60px #0000001f,inset 1px 0 #ffffff1f}.glass-open{transform:translate(0)}.glass-logo{font-family:var(--font-serif);letter-spacing:4px;color:var(--fg);z-index:1;margin-bottom:48px;font-size:36px;font-style:italic;font-weight:300;position:relative}.glass-links{z-index:1;flex-direction:column;flex:1;gap:6px;list-style:none;display:flex;position:relative}.glass-links li{opacity:0;animation:none;transform:translate(20px)}.glass-open .glass-links li{animation:.5s cubic-bezier(.16,1,.3,1) both slideInRight}.glass-link{font-family:var(--font-mono);letter-spacing:3px;text-transform:uppercase;color:var(--fg);opacity:.7;border-bottom:1px solid #0000000f;align-items:center;gap:10px;padding:14px 12px;font-size:11px;transition:all .25s;display:flex;position:relative;overflow:hidden}.glass-link:before{content:"";pointer-events:none;background:#0000000a;transition:transform .3s;position:absolute;inset:0;transform:translate(-101%)}.glass-link:hover{opacity:1}.glass-link:hover:before{transform:translate(0)}[data-theme=dark] .glass-link{opacity:.65;border-bottom-color:#ffffff12}[data-theme=dark] .glass-link:before{background:#ffffff0f}.gl-arrow{opacity:.4;transition:transform .25s}.glass-link:hover .gl-arrow{opacity:1;transform:translate(4px)}.glass-divider{z-index:1;background:#00000014;height:1px;margin:24px 0;position:relative}[data-theme=dark] .glass-divider{background:#ffffff1a}.glass-theme{color:var(--fg);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;z-index:1;cursor:pointer;background:#0000000d;border:1px solid #00000014;border-radius:8px;align-items:center;gap:10px;width:100%;margin-bottom:20px;padding:12px 16px;font-size:10px;transition:all .25s;display:flex;position:relative}.glass-theme:hover{background:#0000001a}[data-theme=dark] .glass-theme{background:#ffffff12;border-color:#ffffff1f}[data-theme=dark] .glass-theme:hover{background:#ffffff1f}.glass-socials{z-index:1;gap:16px;margin-bottom:32px;display:flex;position:relative}.glass-socials a{width:38px;height:38px;color:var(--fg);opacity:.7;cursor:pointer;background:#0000000d;border:1px solid #0000001a;border-radius:8px;justify-content:center;align-items:center;transition:all .25s;display:flex}.glass-socials a:hover{opacity:1;background:#0000001f;transform:translateY(-3px)}[data-theme=dark] .glass-socials a{opacity:.6;background:#ffffff0f;border-color:#ffffff1f}[data-theme=dark] .glass-socials a:hover{background:#ffffff1f}.glass-index{z-index:1;gap:16px;display:flex;position:relative}.glass-index span{font-family:var(--font-mono);letter-spacing:2px;color:var(--fg);opacity:.2;font-size:9px}.tech-icon{z-index:70;cursor:default;flex-direction:column;align-items:center;gap:6px;transition:transform .65s cubic-bezier(.23,1,.32,1);display:flex;position:absolute}.ti-box{width:var(--size,100px);height:var(--size,100px);color:var(--fg);opacity:.72;justify-content:center;align-items:center;transition:opacity .3s,transform .3s;display:flex}.ti-img{object-fit:contain;object-position:center;filter:blur(2px);width:100%;height:100%}.tech-icon:hover .ti-img{filter:blur()}.tech-icon:hover .ti-box{opacity:1;transform:scale(1.12)}.ti-label{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--fg-muted);opacity:0;white-space:nowrap;font-size:8px;transition:all .3s;transform:translateY(4px)}.tech-icon:hover .ti-label{opacity:1;transform:translateY(0);filter:none!important}.ti-react{--size:100px;animation:.6s .3s both floatIn,4.2s ease-in-out 1.2s infinite bob;top:7%;left:30%}.ti-node{--size:100px;animation:.6s .45s both floatIn,5s ease-in-out 1.5s infinite bob;top:37%;left:20%}.ti-spring{--size:100px;animation:.6s .6s both floatIn,4.7s ease-in-out 1.8s infinite bob;top:37%;right:20%}.ti-java{--size:100px;animation:.6s .75s both floatIn,3.9s ease-in-out 2s infinite bob;top:7%;right:30%}.ti-pg{--size:60px;animation:.6s .9s both floatIn,5.2s ease-in-out 2.2s infinite bob;top:62%;left:30%}.ti-js{--size:60px;animation:.6s 1s both floatIn,4.4s ease-in-out 2.4s infinite bob;top:62%;right:30%}.text-block{z-index:20;max-width:470px;animation:.8s cubic-bezier(.16,1,.3,1) .5s both slideRight;position:absolute;top:30%;left:36px}.tb-badge{color:var(--fg);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;-webkit-backdrop-filter:blur(16px)saturate(140%);background:#ffffff26;border:1px solid #ffffff4d;border-radius:24px;align-items:center;gap:6px;margin-bottom:20px;padding:8px 14px;font-size:9px;font-weight:700;display:inline-flex;box-shadow:0 8px 32px #00000014}[data-theme=light] .tb-badge{background:#ffffff40;border-color:#fff6;box-shadow:0 8px 32px #0000001f}.tb-badge:before{content:"";background:#5af78e;border-radius:50%;width:5px;height:5px;animation:2s ease-in-out infinite pulse;display:inline-block}.tb-inner{-webkit-backdrop-filter:blur(20px)saturate(150%);color:var(--surface-fg);background:#ffffff1a;border:1px solid #ffffff40;border-radius:12px;margin-bottom:22px;padding:28px 32px;box-shadow:0 8px 32px #0000001a}[data-theme=light] .tb-inner{background:#ffffff59;border-color:#ffffff80;box-shadow:0 8px 32px #00000026}.tb-title{font-family:var(--font-display);letter-spacing:-.8px;color:var(--fg);margin-bottom:14px;font-size:38px;font-weight:700;line-height:1.15}[data-theme=light] .tb-title{color:#1a1a1a}.tb-highlight,[data-theme=light] .tb-highlight{font-family:var(--font-serif);-webkit-text-stroke:1px var(--fg);color:#0000;font-style:italic}.tb-desc{font-family:var(--font-mono);letter-spacing:.3px;color:#ffffffad;font-size:12px;line-height:1.75}[data-theme=light] .tb-desc{color:#000000a6}.tb-ctas{align-items:center;gap:12px;display:flex}.tb-btn{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:11px;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative;overflow:hidden}.tb-btn:before{content:"";z-index:-1;background:#ffffff1a;transition:transform .3s;position:absolute;inset:0;transform:translate(-101%)}.tb-btn:hover:before{transform:translate(0)}.tb-primary{background:var(--fg);color:var(--bg);box-shadow:0 8px 24px #ffffff1f}.tb-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px #ffffff2e}.tb-primary svg{transition:transform .3s}.tb-primary:hover svg{transform:translate(4px)}.tb-secondary{color:var(--fg);background:0 0;border:1.5px solid #ffffff40}.tb-secondary:hover{border-color:var(--fg);background:#ffffff0f}.hero-socials{z-index:20;gap:18px;animation:.6s 1s both fadeUp;display:flex;position:absolute;bottom:82px;left:36px}.hs-link{color:var(--fg);opacity:.5;justify-content:center;align-items:center;transition:opacity .25s,transform .25s;display:flex}.hs-link:hover{opacity:1;transform:translateY(-4px)}.zo-watermark{z-index:20;font-family:var(--font-serif);letter-spacing:5px;color:var(--fg);opacity:.45;pointer-events:none;font-size:30px;font-style:italic;font-weight:300;animation:.8s 1.2s both fadeIn;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.name-row{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-end;animation:.9s cubic-bezier(.16,1,.3,1) .15s both slideUp;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.name-first,.name-last{font-family:var(--font-display);letter-spacing:-1px;font-size:clamp(60px,10vw,128px);line-height:.84}.name-first{padding-bottom:4px;padding-left:16px}.name-last{padding-bottom:4px;padding-right:16px}.ns{color:var(--fg);-webkit-text-stroke:0}.no{color:#0000;-webkit-text-stroke:2px var(--stroke)}.name-sub{z-index:25;font-family:var(--font-mono);letter-spacing:6px;text-transform:uppercase;color:var(--fg-muted);pointer-events:none;text-shadow:0 0 20px #ffffff1a,0 0 40px #00000014;font-size:11px;font-weight:600;transition:letter-spacing .4s,text-shadow .4s;animation:.7s 1.3s both fadeIn,6s ease-in-out 2s infinite shimmerText;position:absolute;bottom:9px;right:22px}.name-sub:hover{letter-spacing:8px;text-shadow:0 0 30px #fff3,0 0 60px #0000001f}.terminal{z-index:20;cursor:text;-webkit-backdrop-filter:blur(60px)saturate(200%);background:#14141e26;border:1px solid #fff3;border-radius:24px;width:520px;transition:all .3s;animation:.8s cubic-bezier(.16,1,.3,1) .6s both slideLeft;position:absolute;top:20%;right:32px;overflow:hidden;box-shadow:0 8px 32px #0003,inset 0 1px #ffffff4d,inset 0 -1px #00000014}.terminal:hover{border-color:#ffffff4d;box-shadow:0 12px 40px #00000040,inset 0 1px #ffffff59,inset 0 -1px #0000001a}.terminal:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#ffffff26,#0000 70%);border-radius:50%;width:280px;height:280px;position:absolute;top:-100px;left:-80px}[data-theme=dark] .terminal{background:#0f0f148c;border-color:#ffffff1a}[data-theme=dark] .terminal:hover{border-color:#ffffff26}.term-bar{-webkit-backdrop-filter:blur(40px)saturate(180%);z-index:1;background:#ffffff0d;border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:16px 22px;display:flex;position:relative}.tdot{border-radius:50%;flex-shrink:0;width:15px;height:15px;transition:all .3s;box-shadow:0 3px 10px #0006}.tdot.red{background:linear-gradient(135deg,#ff5f57 0%,#ff3b30 100%)}.tdot.yellow{background:linear-gradient(135deg,#febc2e 0%,#ffb700 100%)}.tdot.green{background:linear-gradient(135deg,#28c840 0%,#00c620 100%)}.terminal:hover .tdot{transform:scale(1.2)}.term-body{-webkit-backdrop-filter:blur(35px);font-family:var(--font-mono);scrollbar-width:thin;scrollbar-color:#0003 transparent;z-index:1;background:#0a0a0f14;max-height:360px;padding:20px 24px;font-size:12px;line-height:1.9;position:relative;overflow-y:auto}.term-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px;transition:background .3s}.term-body::-webkit-scrollbar-thumb:hover{background:#ffffff40}.tline{flex-wrap:wrap;transition:opacity .2s;display:flex}.tline:hover{opacity:1.08}.tline-meta .ttext{color:#787896d9;opacity:.9;font-size:10px}.tprompt{color:#2ecc71;white-space:nowrap;text-shadow:0 0 8px #2ecc7140;font-weight:700}.term-hi{color:#ff6ac1;text-shadow:0 0 6px #ff6ac14d;font-weight:700}.terminal{z-index:20;cursor:text;-webkit-backdrop-filter:blur(48px)saturate(180%)brightness(1.05);background:linear-gradient(135deg,#ffffff38 0%,#ffffff14 50%,#ffffff24 100%);border:1px solid #ffffff73;border-color:#ffffff73 #fff3 #ffffff26 #ffffff73;border-radius:18px;width:520px;transition:all .4s cubic-bezier(.16,1,.3,1);animation:.8s cubic-bezier(.16,1,.3,1) .6s both slideLeft;position:absolute;top:12%;right:32px;overflow:hidden;box-shadow:inset 0 2px #fff9,inset 0 -1px #0000000f,inset 1px 0 #ffffff59,inset -1px 0 #ffffff1a,0 20px 60px #0000001f,0 8px 24px #00000014,0 2px 8px #0000000f}.terminal:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(#ffffff47 0%,#0000 100%);border-radius:18px 18px 0 0;height:52px;position:absolute;top:0;left:0;right:0}.terminal:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#0000,#00000012,#0000);height:2px;position:absolute;bottom:0;left:0;right:0}.terminal:hover{transform:translateY(-3px)scale(1.004);box-shadow:inset 0 2px #fff9,inset 0 -1px #0000000f,inset 1px 0 #ffffff59,0 28px 80px #00000029,0 12px 32px #0000001a,0 4px 12px #00000014}[data-theme=dark] .terminal{-webkit-backdrop-filter:blur(48px)saturate(200%)brightness(.98);background:linear-gradient(135deg,#ffffff1a 0%,#ffffff08 50%,#ffffff12 100%);border-color:#ffffff2e #ffffff14 #ffffff0f #ffffff2e;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #0003,inset 1px 0 #ffffff1f,0 30px 80px #00000059,0 10px 30px #00000040,0 3px 10px #0003}[data-theme=dark] .terminal:before{background:linear-gradient(#ffffff1f 0%,#0000 100%)}[data-theme=dark] .terminal:hover{box-shadow:inset 0 1px #ffffff38,inset 0 -1px #0003,inset 1px 0 #ffffff1f,0 40px 100px #00000073,0 16px 40px #0000004d,0 4px 14px #00000040}.term-bar{z-index:1;-webkit-backdrop-filter:blur(20px);background:linear-gradient(#ffffff2e 0%,#ffffff0f 100%);border-bottom:1px solid #ffffff40;align-items:center;gap:10px;padding:14px 18px;display:flex;position:relative;box-shadow:0 1px #0000000a}[data-theme=dark] .term-bar{background:linear-gradient(#ffffff12 0%,#ffffff05 100%);border-bottom-color:#ffffff1a}.tdot{border-radius:50%;flex-shrink:0;width:13px;height:13px;transition:all .25s;position:relative}.tdot:after{content:"";pointer-events:none;background:#ffffff80;border-radius:50%;width:5px;height:3px;position:absolute;top:2px;left:3px}.tdot.red{background:radial-gradient(at 38% 32%,#ff8c87 0%,#ff5f57 45%,#e0352e 100%);box-shadow:0 1px 3px #ff5f5780,0 0 0 .5px #0000001f}.tdot.yellow{background:radial-gradient(at 38% 32%,#ffde6b 0%,#febc2e 45%,#d4920b 100%);box-shadow:0 1px 3px #febc2e80,0 0 0 .5px #0000001f}.tdot.green{background:radial-gradient(at 38% 32%,#5ee87d 0%,#28c840 45%,#1a9c2e 100%);box-shadow:0 1px 3px #28c84080,0 0 0 .5px #0000001f}.terminal:hover .tdot.red{box-shadow:0 2px 6px #ff5f5799,0 0 0 .5px #00000026}.terminal:hover .tdot.yellow{box-shadow:0 2px 6px #febc2e99,0 0 0 .5px #00000026}.terminal:hover .tdot.green{box-shadow:0 2px 6px #28c84099,0 0 0 .5px #00000026}.term-title{font-family:var(--font-mono);color:#3c3c50bf;text-align:center;letter-spacing:.5px;flex:1;font-size:12px;font-weight:500}[data-theme=dark] .term-title{color:#c8c8dcbf}.term-body{z-index:1;-webkit-backdrop-filter:blur(10px);font-family:var(--font-mono);scrollbar-width:thin;scrollbar-color:#0000001f transparent;background:#f0ebe42e;max-height:360px;padding:18px 22px 20px;font-size:12.5px;line-height:1.9;position:relative;overflow-y:auto}[data-theme=dark] .term-body{scrollbar-color:#ffffff1a transparent;background:#00000014}.term-body::-webkit-scrollbar{width:5px}.term-body::-webkit-scrollbar-track{background:0 0}.term-body::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}[data-theme=dark] .term-body::-webkit-scrollbar-thumb{background:#ffffff1a}.tline{flex-wrap:wrap;align-items:baseline;display:flex}.tline-meta .ttext{color:#50506e99;font-size:10.5px}[data-theme=dark] .tline-meta .ttext{color:#b4b4d280}.tline-hint .ttext{color:#6464828c;font-size:10.5px;font-style:italic}[data-theme=dark] .tline-hint .ttext{color:#a0a0c88c}.tline-input .ttext{color:#141428f2;font-weight:600}[data-theme=dark] .tline-input .ttext{color:#f0f0fffa;font-weight:600}.tline-output .ttext{color:#3c3c5ad9;white-space:pre;font-size:11.5px;font-weight:400}[data-theme=dark] .tline-output .ttext{color:#bec3dce0}.tline-error .ttext{color:#e03a3a;font-size:11.5px;font-weight:600}[data-theme=dark] .tline-error .ttext{color:#ff6b6b}.tline-active{align-items:center;display:flex}.tprompt{color:#1a9c2e;white-space:nowrap;text-shadow:0 0 10px #1a9c2e40;font-size:12.5px;font-weight:700}[data-theme=dark] .tprompt{color:#4ade80;text-shadow:0 0 12px #4ade804d}.term-hi{color:#9333ea;font-weight:700}[data-theme=dark] .term-hi{color:#c084fc}.term-input{font-family:var(--font-mono);color:#141428f2;caret-color:#4ade80;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:12.5px;font-weight:600}[data-theme=dark] .term-input{color:#f0f0fffa}.section{max-width:1200px;margin:0 auto;padding:120px 48px}.sec-head{margin-bottom:64px}.sec-tag{font-family:var(--font-mono);letter-spacing:3px;text-transform:uppercase;color:var(--fg-muted);margin-bottom:16px;font-size:11px;display:block}.sec-title{font-family:var(--font-display);letter-spacing:1px;color:var(--fg);font-size:clamp(48px,6vw,84px);line-height:.92}.sec-title em{font-family:var(--font-serif);-webkit-text-stroke:1.5px var(--fg);color:#0000;font-style:italic}.proj-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.proj-card{background:var(--bg);border:1px solid var(--border);flex-direction:column;gap:14px;padding:40px 32px 32px;transition:border-color .3s,transform .3s;display:flex;position:relative;overflow:hidden}.pc-top{justify-content:space-between;align-items:center;display:flex}.pc-num{font-family:var(--font-mono);letter-spacing:2px;color:var(--fg-muted);font-size:10px}.pc-tag{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--fg-muted);border:1px solid var(--border-md);padding:4px 10px;font-size:9px}.pc-title{font-family:var(--font-serif);color:var(--fg);font-size:24px;font-weight:400;line-height:1.2}.pc-desc{font-family:var(--font-mono);color:var(--fg-muted);flex:1;font-size:11px;line-height:1.85}.pc-stack{flex-wrap:wrap;gap:6px;display:flex}.pc-chip{font-family:var(--font-mono);letter-spacing:1px;border:1px solid var(--border-md);color:var(--fg-muted);text-transform:uppercase;padding:5px 11px;font-size:9px}.pc-btn{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--fg-muted);background:0 0;border:none;align-items:center;gap:6px;margin-top:4px;padding:0;font-size:10px;transition:color .25s;display:flex}.pc-btn:hover{color:var(--fg)}.pc-ghost{font-family:var(--font-display);color:var(--fg);opacity:.03;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:130px;line-height:1;transition:opacity .4s,transform .4s;position:absolute;bottom:-10px;right:-6px}.proj-card:hover .pc-ghost{opacity:.05;transform:translate(10px,-10px)}.proj-grid{gap:18px}.proj-card{background:var(--bg);padding:0;transition:border-color .35s,transform .35s}.proj-card:hover{transform:translateY(-6px)}.skills-list{flex-direction:column;gap:18px;display:flex}.skills-section{flex-direction:column;justify-content:center;display:flex}.skills-section .sec-head{margin-bottom:34px}.certifications-section{flex-direction:column;display:flex}.certifications-section .sec-head{margin-bottom:34px}.certifications-intro{max-width:520px;color:var(--fg-muted);font:11px/1.8 var(--font-mono);margin-top:18px}.certifications-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.certification-card.reveal-on-scroll{opacity:0;border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 82%, transparent);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1),border-color .3s,background .3s;overflow:hidden;transform:translateY(10px)}.certification-card.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.certification-card:nth-child(3n+2){transition-delay:70ms}.certification-card:nth-child(3n+3){transition-delay:.14s}.certification-card.is-visible:hover{background:color-mix(in srgb, var(--bg) 90%, #b08a58 10%);border-color:#b08a58;transform:translateY(-5px);box-shadow:0 10px 28px #b08a5833,0 0 0 1px #b08a581f}.certification-image-wrap{aspect-ratio:1.45;border-bottom:1px solid var(--border);background:#e9e5dd;overflow:hidden}.certification-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1)}.certification-card:hover img{transform:scale(1.04)}.certification-copy{padding:16px 18px 18px}.certification-copy h3{font:400 21px/1.08 var(--font-serif)}.certification-copy span{color:var(--fg-muted);font:10px var(--font-mono);letter-spacing:1px;text-transform:uppercase;margin-top:8px;display:block}.certifications-footer{color:var(--fg-muted);font:11px var(--font-mono);text-align:center;margin-top:30px}.certifications-footer a{color:var(--fg);text-underline-offset:4px;text-decoration:underline}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.skill-tile{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 82%, transparent);flex-direction:column;justify-content:space-between;gap:18px;min-height:118px;padding:18px;transition:transform .3s,border-color .3s,background .3s;display:flex;position:relative}.skill-tile:hover{border-color:var(--border-md);background:color-mix(in srgb, var(--bg) 86%, var(--fg) 14%);transform:translateY(-5px)}.clean-hero{background:var(--bg)}.clean-hero .hero-photo-bg{width:100%;inset:0}.clean-hero .hero-bg-img{object-position:center top;opacity:1}.clean-hero .photo-fade-left{width:18%}.clean-hero .photo-fade-right{width:8%}.clean-hero .photo-fade-bottom{height:20%}.persistent-logo{z-index:400;line-height:0;display:block;position:fixed;top:22px;left:42px}.persistent-logo img{width:86px;height:auto;display:block}.clean-hero-nav .nav-logo img{z-index:80;height:auto;width:86px!important}.clean-hero-nav-links{font:11px var(--font-mono);color:var(--fg);align-items:center;gap:clamp(20px,3vw,48px);display:flex}.clean-hero-nav-links a{transition:color .2s}.clean-hero-nav-links a:hover{color:#b08a58}.hero-availability{border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:9px 13px;display:inline-flex;box-shadow:0 8px 22px #0000000f}.hero-availability i{background:#2fcf78;border-radius:50%;width:7px;height:7px}.clean-hero-title{z-index:1;font:400 clamp(72px, 11vw, 170px)/.82 var(--font-display);letter-spacing:-2px;color:#0000;-webkit-text-stroke:2px var(--fg);white-space:nowrap;text-align:center;opacity:.92;filter:blur();text-shadow:0 12px 36px color-mix(in srgb, var(--bg) 45%, transparent);pointer-events:auto;cursor:pointer;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1),filter .55s;position:absolute;top:21%;left:50%;transform:translate(-50%)}.clean-hero-title.is-title-hovered{z-index:4;opacity:1;filter:drop-shadow(0 10px 26px color-mix(in srgb, var(--fg) 18%, transparent));transform:translate(-50%)scale(1.025)}.clean-hero-title span{color:var(--fg);-webkit-text-stroke:0;margin-left:.18em}.clean-hero-copy{z-index:5;max-width:390px;top:auto;bottom:14%;left:4.5%}.clean-hero-copy .tb-badge,.clean-hero-copy .tb-inner{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0}.clean-hero-copy .tb-badge{color:var(--fg-muted);margin-bottom:16px}.clean-hero-copy .tb-title{margin-bottom:12px;font-size:34px}.clean-hero-copy .tb-desc{max-width:330px;color:var(--fg-muted)}.clean-hero-copy .tb-ctas{margin-top:20px}.clean-hero-copy .tb-btn{border-radius:999px;padding:11px 18px}.clean-hero-role{z-index:5;font:10px var(--font-mono);letter-spacing:2px;color:var(--fg-muted);position:absolute;bottom:7%;right:4.5%}.clean-hero-role span{color:#b08a58;margin:0 8px}.skill-tile .sk-icon{opacity:.62;width:28px;height:28px}.skill-tile-copy{flex-direction:column;gap:5px;display:flex}.skill-tile-copy strong{font:400 18px var(--font-serif);color:var(--fg)}.skill-tile-copy span{font:9px var(--font-mono);letter-spacing:1px;text-transform:uppercase;color:var(--fg-muted)}.skill-arrow{font:14px var(--font-mono);color:var(--fg-muted);transition:transform .3s,color .3s;position:absolute;top:17px;right:17px}.skill-tile:hover .skill-arrow{color:var(--fg);transform:translate(3px,-3px)}.skill-row{background:var(--bg);border:1px solid var(--border);align-items:center;gap:24px;padding:24px 32px;transition:border-color .3s;display:flex}.skill-row:hover{border-color:var(--border-md)}.sk-icon{color:var(--fg);opacity:.5;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .3s;display:flex}.sk-img{object-fit:contain;object-position:center;filter:brightness(.9);width:100%;height:100%}.skill-row:hover .sk-icon{opacity:.9}.sk-info{flex:1}.sk-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.sk-name{font-family:var(--font-serif);color:var(--fg);font-size:20px}.sk-pct{font-family:var(--font-mono);letter-spacing:1px;color:var(--fg-muted);font-size:11px}.sk-track{background:var(--border-md);width:100%;height:1.5px}.sk-fill{background:var(--fg);opacity:.32;width:34%;height:100%}.sk-lettermark{font:700 24px var(--font-display);color:var(--fg)}.contact-sec{text-align:center}.contact-sub{font-family:var(--font-mono);color:var(--fg-muted);margin-top:24px;margin-bottom:48px;font-size:11px;line-height:1.9}.contact-ctas{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-bottom:36px;display:flex}.cc-primary{background:var(--surface);color:var(--surface-fg);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;border:none;align-items:center;gap:10px;padding:16px 36px;font-size:12px;font-weight:700;transition:opacity .25s,transform .25s;display:flex}.cc-primary:hover{opacity:.78;transform:translateY(-2px)}.cc-secondary{color:var(--fg);border:1px solid var(--border-md);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;background:0 0;align-items:center;gap:8px;padding:15px 28px;font-size:12px;transition:all .25s;display:flex}.cc-secondary:hover{border-color:var(--fg);transform:translateY(-2px)}.contact-links{justify-content:center;gap:32px;display:flex}.cl-link{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--fg-muted);font-size:10px;transition:color .25s}.cl-link:hover{color:var(--fg)}.footer{border-top:0;justify-content:space-between;align-items:center;padding:24px 48px;display:flex}.foot-logo{font-family:var(--font-serif);letter-spacing:2px;color:var(--fg);font-size:22px;font-style:italic;font-weight:300}.foot-copy,.foot-loc{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--fg-dim);font-size:9px}@keyframes fadeIn{to{opacity:1}}@keyframes slideRight{0%{opacity:0;transform:translate(-36px)}to{opacity:1;transform:translate(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(36px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes grow{to{width:var(--w)}}@keyframes shimmerText{0%,to{text-shadow:0 0 20px #ffffff1a,0 0 40px #00000014}50%{text-shadow:0 0 35px #ffffff40,0 0 70px #00000026}}@media (width<=1024px){.terminal{width:420px;right:16px}.ti-spring,.ti-java{display:none}}@media (width<=768px){.skills-section{justify-content:flex-start}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skill-tile{min-height:105px;padding:15px}.nav{padding:20px}.nav-pill,.terminal{display:none}.photo-fade-left,.photo-fade-right{width:12%}.text-block{max-width:260px;left:16px}.hero-socials{left:16px}.zo-watermark{display:none}.section{padding:80px 24px}.proj-grid{grid-template-columns:1fr}.projects-head{display:block}.projects-intro{margin-top:24px}.project-filters{white-space:nowrap;gap:14px;overflow:auto}.all-work-link{display:none}.footer{text-align:center;flex-direction:column;gap:8px;padding:20px 24px}.ti-pg,.ti-node,.ti-react{display:none}.ti-js{left:45%}}.projects-head{justify-content:space-between;align-items:end;gap:48px;display:flex}.projects-intro{max-width:280px;font-family:var(--font-mono);color:var(--fg-muted);font-size:11px;line-height:1.8}.project-filters{border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:26px;margin-bottom:26px;padding:15px 0;display:flex}.filter-btn{color:var(--fg-muted);font:10px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;transition:color .25s}.filter-btn span{color:var(--fg-dim);margin-left:5px}.filter-btn:hover,.filter-btn.is-active{color:var(--fg)}.all-work-link{color:var(--fg);font:10px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;align-items:center;gap:8px;margin-left:auto;display:flex}.proj-grid{grid-template-columns:repeat(3,1fr);gap:18px}.proj-card{border:1px solid var(--border);background:var(--bg);padding:0;transition:border-color .35s,transform .35s}.proj-card:hover{border-color:var(--border-md);transform:translateY(-6px)}.project-art{aspect-ratio:16/9;border-bottom:1px solid var(--border);background:#d8d4cc;height:auto;position:relative;overflow:hidden}.project-art-image{object-fit:contain;object-position:center;opacity:.94;filter:saturate(.78)contrast(.96);background:#dcd8d0b8;width:100%;height:100%;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .35s;position:absolute;inset:0}.proj-card:hover .project-art-image{opacity:1;transform:scale(1.045)}.project-art-image+.art-browser{z-index:2}.project-art-image~.art-content{z-index:1;text-shadow:0 2px 12px #00000052}.project-art:has(.project-art-image) .art-content{display:none}.art-nova{color:#143526;background:linear-gradient(135deg,#dce6db,#a9c2ae)}.art-atlas{color:#e6e9ee;background:linear-gradient(135deg,#24272e,#0d0f14)}.art-zackweb{color:#25211e;background:linear-gradient(135deg,#d7d1c8,#a9a097)}.art-browser{font:8px var(--font-mono);opacity:.7;align-items:center;gap:5px;display:flex;position:absolute;inset:13px 13px auto}.art-browser i{opacity:.5;background:currentColor;border-radius:50%;width:5px;height:5px}.art-browser span{letter-spacing:1px;margin-left:9px}.art-content{position:absolute;inset:60px 24px 20px}.art-content small{font:8px var(--font-mono);letter-spacing:1.5px;opacity:.68}.art-content strong{font:400 30px/1.02 var(--font-serif);letter-spacing:-1px;margin-top:23px;display:block}.art-content em{font-style:italic}.art-product{background:linear-gradient(160deg,#fff8e9,#9aab8f);border-radius:55px 55px 10px 10px;width:110px;height:145px;position:absolute;bottom:-20px;right:12px;transform:rotate(13deg);box-shadow:10px 12px 20px #43634c55}.art-chart{border-bottom:1px solid #ffffff38;align-items:end;gap:8px;width:115px;height:74px;display:flex;position:absolute;bottom:20px;right:8px}.art-chart b{background:#b4e96d;border-radius:3px 3px 0 0;width:12px;height:35%;display:block}.art-chart b:nth-child(2){height:62%}.art-chart b:nth-child(3){height:45%}.art-chart b:nth-child(4){height:82%}.art-chart b:nth-child(5){height:100%}.art-orbit{border:1px solid #25211e77;border-radius:50%;width:160px;height:160px;position:absolute;bottom:-70px;right:-12px;box-shadow:0 0 0 18px #25211e12,0 0 0 36px #25211e10}.art-index{font:9px var(--font-mono);letter-spacing:1px;opacity:.6;position:absolute;top:16px;right:16px}.pc-body{flex-direction:column;gap:14px;min-height:270px;padding:23px 23px 26px;display:flex}.pc-body .pc-desc{min-height:42px}.pc-body .pc-btn{margin-top:auto}.reveal-on-scroll{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.reveal-on-scroll.is-visible{opacity:1;transform:none}.delay-1{transition-delay:50ms}.delay-2{transition-delay:.14s}.delay-3{transition-delay:.23s}@media (prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transition:none;transform:none}}@media (width<=768px){.projects-head{display:block}.projects-intro{margin-top:24px}.project-filters{white-space:nowrap;gap:14px;overflow:auto}.all-work-link{display:none}}.stack-section{z-index:2;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);width:100%;max-width:none;min-height:auto;box-shadow:none;border-top:0;border-radius:0;margin:0;padding-left:max(48px,50vw - 552px);padding-right:max(48px,50vw - 552px);position:sticky;top:0}.stack-hero{z-index:1;isolation:isolate;position:sticky;top:0}.section-shell{position:relative}.mobile-swipe-cue{display:none}.projects-section{z-index:3;min-height:100dvh;position:sticky;overflow:visible}.projects-scroll-shell{height:calc(200svh + 3000px);position:relative}.projects-section{overflow:hidden}.project-rail{will-change:transform;flex-wrap:nowrap;gap:18px;width:max-content;padding-right:480px;transition:transform 80ms linear;display:flex}.project-rail .proj-card{flex:0 0 min(36vw,420px)}.project-rail .proj-card.reveal-on-scroll{opacity:1;transition:border-color .35s,box-shadow .35s;transform:none}.projects-empty{border:1px solid var(--border);background:linear-gradient(145deg,#c8f04d1f,#0000 55%);flex-direction:column;flex:0 0 min(36vw,420px);justify-content:center;min-height:420px;padding:34px;display:flex}.projects-empty span,.projects-empty p{font:10px var(--font-mono);letter-spacing:2px;color:var(--fg-muted);text-transform:uppercase}.projects-empty strong{font:400 34px/1.05 var(--font-serif);color:var(--fg);margin:20px 0}.projects-empty em{font-style:italic}.projects-empty p{letter-spacing:1px;text-transform:none;max-width:220px;line-height:1.7}.experience-section{z-index:4}.experience-heading{justify-content:space-between;align-items:end;gap:48px;margin-bottom:56px;display:flex}.experience-list{border-top:1px solid var(--border)}.experience-item{border-bottom:1px solid var(--border)}.experience-summary{text-align:left;width:100%;color:var(--fg);grid-template-columns:56px minmax(0,1fr) auto 24px;align-items:center;gap:20px;padding:26px 0;display:grid}.experience-summary:hover .experience-main strong{color:#b08a58}.experience-index,.experience-period,.experience-location,.experience-skills span,.experience-link{font:10px var(--font-mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--fg-muted)}.experience-main{flex-direction:column;gap:6px;display:flex}.experience-main strong{font:400 24px var(--font-serif);transition:color .25s}.experience-main span{font:11px var(--font-mono);color:var(--fg-muted);letter-spacing:1px}.experience-period{white-space:nowrap}.experience-chevron{color:var(--fg-muted);transition:transform .35s}.experience-item.is-open .experience-chevron{transform:rotate(180deg)}.experience-details{opacity:0;grid-template-columns:minmax(0,1fr) 240px;gap:48px;max-height:0;padding:0 80px 0 76px;transition:max-height .55s cubic-bezier(.16,1,.3,1),opacity .35s,padding .55s;display:grid;overflow:hidden}.experience-item.is-open .experience-details{opacity:1;max-height:420px;padding-bottom:30px}.experience-detail-copy{max-width:680px}.experience-location{margin-bottom:15px;display:block}.experience-details p,.experience-details li{font:12px/1.75 var(--font-mono);color:var(--fg-muted)}.experience-details ul{margin:12px 0 18px;padding-left:18px}.experience-details li+li{margin-top:6px}.experience-skills{flex-wrap:wrap;gap:7px;display:flex}.experience-skills span{border:1px solid var(--border-md);padding:7px 10px}.experience-details img{aspect-ratio:16/10;object-fit:cover;filter:grayscale(.15);border:1px solid var(--border);align-self:end;width:100%}.experience-link{color:var(--fg);align-items:center;gap:8px;margin-top:30px;display:inline-flex}.experience-link:hover{color:var(--accent-dark)}.education-section{z-index:5}.education-heading{justify-content:space-between;align-items:end;gap:48px;margin-bottom:56px;display:flex}.education-list{border-top:1px solid var(--border)}.education-item{border-bottom:1px solid var(--border);grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:20px;padding:30px 0;transition:background .25s,padding .25s;display:grid}.education-item:hover{background:color-mix(in srgb, var(--bg) 88%, #b08a58 12%);padding-left:14px;padding-right:14px}.education-index,.education-period,.education-main span{font:10px var(--font-mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--fg-muted)}.education-main h3{font:400 25px var(--font-serif);color:var(--fg)}.education-main p{font:12px var(--font-mono);color:var(--fg-muted);margin-top:7px}.education-main span{margin-top:10px;display:block}.education-main small{max-width:700px;font:11px/1.6 var(--font-mono);color:#b08a58;margin-top:10px;display:block}.education-period{white-space:nowrap}#certifications{z-index:5}#contact{z-index:6}#certifications{margin-top:0}.section-shell#certifications .certifications-section:not(.project-stage-done){visibility:hidden;opacity:0;pointer-events:none}.section-shell#certifications .certifications-section.project-stage-done{visibility:visible;opacity:1;transition:opacity .45s}#contact{margin-top:0}.stack-section:before{content:"";background:linear-gradient(90deg, transparent, var(--fg-muted), transparent);opacity:.15;height:1px;position:absolute;top:0;left:12%;right:12%}@media (width<=768px){.clean-hero{height:100dvh;min-height:560px}.clean-hero .hero-photo-bg{width:100%;left:0}.persistent-logo{top:20px;left:24px}.persistent-logo img{width:76px}.clean-hero-nav-links{gap:12px;font-size:9px}.clean-hero-nav-links a,.hero-availability{display:none}.clean-hero-title{letter-spacing:-1px;font-size:clamp(54px,17vw,92px);top:18%;left:50%}.clean-hero-copy{max-width:none;bottom:13%;left:5%;right:5%}.clean-hero-copy .tb-title{max-width:320px;font-size:clamp(27px,8vw,36px);line-height:1.02}.clean-hero-copy .tb-desc{max-width:290px;font-size:11px;line-height:1.55}.clean-hero-copy .tb-ctas{flex-wrap:wrap;gap:8px;display:flex}.clean-hero-copy .tb-btn{padding:10px 13px;font-size:9px}.clean-hero-role{font-size:8px;bottom:5%;right:5%}.hero-photo-bg:before{width:88vw;top:42%}.hero-photo-bg:after{width:78vw;height:78vw;top:48%}.stack-section{border-radius:0;padding-left:24px;padding-right:24px}.mobile-swipe-cue{z-index:6;color:var(--fg-muted);font:9px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;writing-mode:vertical-rl;flex-direction:column-reverse;align-items:center;gap:7px;transition:opacity .35s;animation:1.8s ease-in-out infinite swipeCue;display:inline-flex;position:absolute;top:52%;bottom:auto;right:6%}.mobile-swipe-cue.is-hidden{opacity:0;pointer-events:none}.projects-section{padding-top:80px;padding-bottom:80px;position:relative}.projects-scroll-shell{height:auto}.project-rail{grid-template-columns:1fr;width:100%;padding-right:0;display:grid;transform:none!important}.project-rail .proj-card,.projects-empty{flex:none;width:100%}.experience-heading{display:block}.certifications-grid{grid-template-columns:1fr;gap:16px}.certification-image-wrap{aspect-ratio:1.5}.certification-copy h3{font-size:20px}.education-heading{margin-bottom:34px;display:block}.education-heading .projects-intro{max-width:100%;margin-top:20px}.education-item{grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;padding:24px 0}.education-index{padding-top:4px;font-size:9px}.education-main h3{font-size:21px;line-height:1.08}.education-main p{font-size:10px;line-height:1.55}.education-main span,.education-main small,.education-period{font-size:9px;line-height:1.55}.education-period{white-space:normal;grid-area:2/2;margin-top:8px}.experience-summary{grid-template-columns:34px minmax(0,1fr) 20px;gap:12px;padding:20px 0}.experience-period{grid-area:2/2;font-size:9px}.experience-main strong{font-size:20px}.experience-details{padding-left:46px;padding-right:0;display:block}.experience-item.is-open .experience-details{max-height:650px}.experience-details img{max-width:280px;margin-top:22px}#certifications,#contact{margin-top:0}.project-art{height:auto}.pc-body{min-height:220px;padding:18px}}@keyframes swipeCue{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.stack-section{position:relative}}.loader-container{color:#fff;perspective:1000px;z-index:9999;pointer-events:auto;opacity:1;transition:opacity .8s ease forwards, pointer-events .8s ease forwards;background:#0a0a0a;flex-direction:column;justify-content:center;align-items:center;font-family:Space Grotesk,monospace;display:flex;position:fixed;inset:0;overflow:hidden}.loader-container.exit-active{pointer-events:none;opacity:0}.grid-bg{opacity:0;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:50px 50px;animation:20s linear infinite gridMove,.5s forwards fadeIn;position:absolute;inset:0}@keyframes gridMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.scanlines{pointer-events:none;opacity:.4;background:repeating-linear-gradient(0deg,#00000026 0 1px,#0000 1px 3px);animation:4s ease-in-out infinite scanlineFlicker;position:absolute;inset:0}@keyframes scanlineFlicker{0%,to{opacity:.4}50%{opacity:.35}}.binary-rain{opacity:.04;pointer-events:none;font-family:monospace;font-size:12px;line-height:16px;position:absolute;inset:0;overflow:hidden}.binary-column{color:#fff9;flex-direction:column;animation:linear infinite rainFall;display:flex;position:absolute;top:-100%}@keyframes rainFall{to{transform:translateY(200vh)}}.type-container{z-index:10;flex-direction:column;align-items:center;gap:3rem;display:flex;position:relative}.main-text{letter-spacing:.4em;align-items:center;font-size:clamp(3rem,12vw,8rem);font-weight:700;display:flex;position:relative}.char{opacity:0;filter:blur(8px);text-shadow:0 0 40px #ffffff1a;animation:.7s cubic-bezier(.16,1,.3,1) forwards charReveal;display:inline-block;position:relative;transform:translateY(80px)rotateX(-90deg)}.char:before{content:attr(data-char);color:#0000;-webkit-text-stroke:1px #fff3;opacity:0;animation:.3s forwards strokeFade;animation-delay:inherit;position:absolute;top:0;left:0}@keyframes charReveal{0%{opacity:0;filter:blur(8px);transform:translateY(80px)rotateX(-90deg)}60%{filter:blur()}to{opacity:1;filter:blur();transform:translateY(0)rotateX(0)}}@keyframes strokeFade{to{opacity:.3}}.cursor{opacity:0;vertical-align:baseline;background:#fff;width:3px;height:.9em;margin-left:.1em;animation:.8s step-end infinite blink,.3s forwards cursorGrow;display:inline-block;box-shadow:0 0 10px #ffffff80}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes cursorGrow{0%{opacity:0;height:0}to{opacity:1;height:.9em}}.progress-wrapper{flex-direction:column;align-items:center;gap:1rem;width:min(400px,80vw);display:flex}.progress-container{background:#ffffff14;width:100%;height:1px;position:relative;overflow:hidden}.progress-bar{background:#fff;width:0%;height:100%;transition:width .1s linear;position:relative;box-shadow:0 0 20px #fff9,0 0 40px #fff3}.progress-bar:after{content:"";background:#fff;width:4px;height:5px;position:absolute;top:-2px;right:0;box-shadow:0 0 10px #fffc}.progress-text{letter-spacing:.4em;color:#666;text-transform:uppercase;opacity:0;font-size:.7rem;transition:all .3s;transform:translateY(10px)}.progress-text.visible{opacity:1;transform:translateY(0)}.glitch-layer{pointer-events:none;z-index:20;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.glitch-text{letter-spacing:.4em;color:#0000;-webkit-text-stroke:1px #fffc;opacity:0;font-size:clamp(3rem,12vw,8rem);font-weight:700;animation:.4s forwards glitchShake;position:absolute}.glitch-text:first-child{clip-path:polygon(0 0,100% 0,100% 35%,0 35%);transform:translate(-3px,-2px)}.glitch-text:nth-child(2){clip-path:polygon(0 35%,100% 35%,100% 70%,0 70%);-webkit-text-stroke:1px #fff6;transform:translate(3px,2px)}.glitch-text:nth-child(3){clip-path:polygon(0 70%,100% 70%,100% 100%,0 100%);-webkit-text-stroke:1px #fff3;transform:translate(-2px,1px)}@keyframes glitchShake{0%{opacity:0;transform:translate(0)}10%{opacity:1;transform:translate(-8px,4px)}20%{transform:translate(8px,-4px)}30%{transform:translate(-6px,3px)}40%{transform:translate(6px,-3px)}50%{transform:translate(-4px,2px)}60%{transform:translate(4px,-2px)}70%{transform:translate(-2px,1px)}80%{transform:translate(2px,-1px)}90%{opacity:1}to{opacity:0;transform:translate(0)}}.exit-overlay{transform-origin:bottom;z-index:100;background:#0a0a0a;position:absolute;inset:0;transform:scaleY(0)}.exit-active .exit-overlay{animation:.8s cubic-bezier(.16,1,.3,1) forwards exitReveal}@keyframes exitReveal{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.loader-container:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 0%,#0006 100%);position:absolute;inset:0}:root{--bg:#f4f1ec;--fg:#111;--fg-muted:#11111180;--fg-dim:#11111147;--surface:#111;--surface-fg:#f4f1ec;--border:#1111111f;--border-md:#11111138;--stroke:#111;--font-display:"Bebas Neue", sans-serif;--font-serif:"Cormorant Garamond", serif;--font-mono:"Space Mono", monospace}[data-theme=dark]{--bg:#0d0d0d;--fg:#f0ede8;--fg-muted:#f0ede880;--fg-dim:#f0ede840;--surface:#f0ede8;--surface-fg:#111;--border:#f0ede81a;--border-md:#f0ede833;--stroke:#f0ede8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;transition:background .4s,color .4s;overflow-x:hidden}button{cursor:pointer}a{color:inherit;text-decoration:none}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;display:block}
