:root{--bg:#080b0f;--bg2:#0d1117;--surface:#111820;--border:#1e2a36;--cyan:#00d4ff;--cyan-bright:#5fb8d8;--cyan-dim:#00d4ff1f;--cyan-glow:#00d4ff66;--amber:#f5a623;--violet:#a78bfa;--green:#4ade80;--text:#e8edf2;--text-dim:#8a9aab;--text-mid:#a0b0bf;--mono:"JetBrains Mono", monospace;--sans:"Inter", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;overflow-x:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10000;background:var(--cyan);color:var(--bg);font-family:var(--mono);letter-spacing:.05em;padding:12px 20px;font-size:13px;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100px;left:16px}.skip-link:focus{outline:2px solid var(--text);outline-offset:2px;top:16px}.skip-link:focus-visible{outline:2px solid var(--text);outline-offset:2px;top:16px}:focus{outline:none}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.amb-star,.amb-tag,.amb-skeleton,.amb-dots,.amb-ascii,.amb-col-line,.glow-orb,.glow-orb-2,.scroll-hint,.cp-event-marker-pulse,.bento-status-dot,.n8n-pulse,.pulse-dot,.neural-layer,.bento-modal-hero--scrolling .bento-modal-hero-img{animation:none!important}}@keyframes orb-drift{0%{transform:translate(0)}to{transform:translate(40px,60px)}}.ambient-layer{pointer-events:none;z-index:0;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.amb-col-line{background:linear-gradient(#0000 0%,#00d4ff0f 20% 80%,#0000 100%);width:1px;position:absolute;top:0;bottom:0}.amb-star{opacity:0;animation:ease-in-out infinite amb-star-pulse;position:absolute}.amb-star svg{width:100%;height:100%}@keyframes amb-star-pulse{0%{opacity:0;transform:scale(.7)rotate(0)}20%{opacity:.7;transform:scale(1)rotate(45deg)}50%{opacity:.4;transform:scale(.9)rotate(90deg)}80%{opacity:.6;transform:scale(1)rotate(135deg)}to{opacity:0;transform:scale(.7)rotate(180deg)}}.amb-ascii{font-family:var(--mono);color:#00d4ff2e;letter-spacing:.05em;opacity:0;font-size:8px;line-height:1.6;animation:ease-in-out infinite amb-breathe;position:absolute}.amb-skeleton{opacity:0;border:1px solid #00d4ff14;align-items:center;gap:8px;padding:10px 12px;animation:ease-in-out infinite amb-breathe;display:flex;position:absolute}.amb-dots{opacity:0;gap:7px;animation:ease-in-out infinite amb-breathe;display:grid;position:absolute}.amb-dots span{background:#00d4ff38;border-radius:50%;width:2px;height:2px;display:block}.amb-tag{font-family:var(--mono);letter-spacing:.12em;color:#00d4ff47;white-space:nowrap;opacity:0;border:1px solid #00d4ff1a;padding:3px 9px;font-size:9px;animation:ease-in-out infinite amb-float;position:absolute}@keyframes amb-breathe{0%{opacity:0;transform:translateY(0)}15%{opacity:1}50%{opacity:.5;transform:translateY(-6px)}85%{opacity:.8}to{opacity:0;transform:translateY(0)}}@keyframes amb-float{0%{opacity:0;transform:translateY(0)}20%{opacity:.8}50%{opacity:.5;transform:translateY(-8px)}80%{opacity:.7}to{opacity:0;transform:translateY(0)}}.nav{z-index:100;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:20px 48px;transition:border-color .3s,background .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-color:var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080b0fd9}.nav-logo{font-family:var(--mono);color:var(--text-dim);letter-spacing:.05em;font-size:13px}.nav-logo span{color:var(--cyan)}.nav-links{align-items:center;gap:32px;list-style:none;display:flex}.nav-links a{font-family:var(--mono);color:var(--text-dim);letter-spacing:.08em;font-size:12px;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-cta{font-family:var(--mono);border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;letter-spacing:.08em;background:0 0;padding:8px 20px;font-size:12px;text-decoration:none;transition:background .2s,color .2s}.nav-cta:hover{background:var(--cyan-dim)}.hero{z-index:1;text-align:left;flex-direction:column;justify-content:center;align-items:stretch;min-height:100vh;padding:120px 32px 80px;display:flex;position:relative}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:56px;width:100%;max-width:1340px;margin:0 auto;display:grid}.hero-content{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.hero-visual{justify-self:end;width:100%;max-width:490px;animation:.7s .35s both fade-up;position:relative}.n8n-flow{background:0 0;border:none;padding:0;position:relative}.n8n-flow-toolbar{z-index:2;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:6px;display:flex;position:relative}.n8n-run-btn{opacity:0;animation:.5s ease-out .2s both n8n-toolbar-in;transform:translateY(-6px)}@keyframes n8n-toolbar-in{to{opacity:1;transform:translateY(0)}}.n8n-run-btn{font-family:var(--mono);letter-spacing:.06em;min-height:28px;color:var(--cyan);cursor:pointer;-webkit-user-select:none;user-select:none;background:#00d4ff0f;border:1px solid #00d4ff73;align-items:center;gap:6px;padding:6px 12px;font-size:10px;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.n8n-run-btn:hover:not(:disabled){background:#00d4ff1f;transform:translateY(-1px)}.n8n-run-btn:disabled{cursor:progress}.n8n-run-btn--running{color:#f5a623;background:#f5a62314;border-color:#f5a6238c}.n8n-run-btn--finished{color:#4ade80;background:#4ade8014;border-color:#4ade808c}.n8n-canvas{aspect-ratio:360/260;width:100%;position:relative}.n8n-paths{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.n8n-path-bg{fill:none;stroke:#00d4ff2e;stroke-width:.6px;stroke-linecap:round;opacity:0;animation:.9s ease-out both n8n-path-fade}.n8n-path{fill:none;stroke:#8ca5be59;stroke-width:1.3px;stroke-linecap:round;opacity:0;transition:stroke .35s,filter .4s;animation:.7s ease-out both n8n-path-fade}.n8n-path--lit{stroke:var(--cyan);filter:drop-shadow(0 0 5px #00d4ffbf)}@keyframes n8n-path-fade{0%{opacity:0}to{opacity:1}}.n8n-node{aspect-ratio:1;z-index:2;opacity:0;width:12.222%;animation:.55s cubic-bezier(.34,1.5,.5,1) both n8n-node-pop;position:absolute;transform:translate(-50%,-50%)}@keyframes n8n-node-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}60%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.n8n-node-tile{width:100%;height:100%;color:var(--text-mid);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:radial-gradient(circle at 50% 30%,#141e2aeb,#0c121ae0);border:1px solid #50789659;border-radius:6px;justify-content:center;align-items:center;transition:border-color .25s,box-shadow .3s,color .25s,transform .2s;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0a,0 3px 10px -4px #00000080}.n8n-node-tile:before{content:"";border:1px solid var(--cyan);opacity:0;pointer-events:none;border-radius:9px;transition:opacity .3s;position:absolute;top:-3px;bottom:-3px;left:-3px;right:-3px}.n8n-node--trigger .n8n-node-tile{color:#f5a623d9}.n8n-node--doc .n8n-node-tile{color:#00d4ffd9}.n8n-node--call .n8n-node-tile{color:#a78bfad9}.n8n-node--if .n8n-node-tile{color:#f5a623d9}.n8n-node--success .n8n-node-tile{color:#4ade80d9}.n8n-node-title{white-space:nowrap;font-family:var(--mono);letter-spacing:.04em;color:var(--text-mid);pointer-events:none;text-align:center;font-size:10px;transition:color .25s;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.n8n-node--label-top .n8n-node-title{top:auto;bottom:calc(100% + 6px)}.n8n-node--completed .n8n-node-tile{color:#4ade80;border-color:#4ade8099;box-shadow:inset 0 0 0 1px #4ade8029,0 0 14px -2px #4ade8059}.n8n-node--completed .n8n-node-title{color:#4ade80d9}.n8n-node--active .n8n-node-tile{border-color:var(--cyan);color:var(--cyan);animation:.7s ease-in-out infinite n8n-pulse;transform:scale(1.08);box-shadow:inset 0 0 0 1px #00d4ff38,0 0 22px -2px #00d4ffa6}.n8n-node--active .n8n-node-tile:before{opacity:.4;animation:1.4s ease-out infinite n8n-ring}.n8n-node--active .n8n-node-title{color:var(--cyan)}@keyframes n8n-pulse{0%,to{box-shadow:inset 0 0 0 1px #00d4ff38,0 0 16px -2px #00d4ff8c}50%{box-shadow:inset 0 0 0 1px #00d4ff6b,0 0 26px -2px #00d4ffd9}}@keyframes n8n-ring{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}@media (max-width:1080px){.hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px}.hero-visual{max-width:280px}}@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-visual{order:-1;justify-self:center;max-width:320px}.hero-content{align-items:flex-start}}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 8px var(--cyan-glow)}50%{opacity:.5;box-shadow:0 0 3px var(--cyan-glow)}}.hero-name{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);margin-bottom:16px;font-size:clamp(42px,7vw,90px);font-weight:700;line-height:1;animation:.6s .1s both fade-up}.hero-name .accent{color:var(--cyan)}.hero-role{font-family:var(--mono);color:var(--text-dim);letter-spacing:.05em;margin-bottom:20px;font-size:clamp(14px,2vw,20px);animation:.6s .2s both fade-up}.hero-role .bracket{color:var(--cyan)}.hero-desc{font-family:var(--sans);color:var(--text-mid);max-width:560px;margin-bottom:48px;font-size:17px;line-height:1.7;animation:.6s .3s both fade-up}.what-i-do{gap:12px;width:100%;max-width:780px;margin-bottom:48px;animation:.6s .35s both fade-up;display:flex}.wid-card{border:1px solid var(--border);text-align:left;cursor:default;flex-direction:column;flex:1;gap:8px;padding:20px 20px 22px;transition:border-color .2s,background .2s;display:flex;position:relative;overflow:hidden}.wid-card:before{content:"";background:var(--cyan);transform-origin:0;height:2px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.wid-card:hover{border-color:var(--cyan);background:var(--cyan-dim)}.wid-card:hover:before{transform:scaleX(1)}.wid-label{font-family:var(--mono);letter-spacing:.1em;color:var(--cyan);font-size:11px;font-weight:600}.wid-desc{font-family:var(--sans);color:var(--text-dim);font-size:12px;line-height:1.6}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes line-appear{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.scroll-hint{font-family:var(--mono);color:var(--text-dim);letter-spacing:.15em;flex-direction:column;align-items:center;gap:8px;font-size:10px;animation:1s 1.5s both fade-up;display:flex;position:absolute;bottom:36px;left:0;right:0}.scroll-hint:after{content:"";background:linear-gradient(to bottom, var(--text-dim), transparent);width:1px;height:40px;animation:1.6s ease-in-out infinite scroll-line}@keyframes scroll-line{0%{transform-origin:top;transform:scaleY(0)}50%{transform-origin:top;transform:scaleY(1)}51%{transform-origin:bottom}to{transform-origin:bottom;transform:scaleY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pt-ring-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.2;transform:scale(1.6)}}@keyframes lb-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lb-slide-up{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.nav-burger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;margin-left:auto;padding:0;display:none}.nav-burger span{background:var(--text-dim);transform-origin:50%;width:22px;height:1.5px;transition:transform .25s,opacity .25s;display:block}.nav-burger--open span:first-child{background:var(--cyan);transform:translateY(6.5px)rotate(45deg)}.nav-burger--open span:nth-child(2){opacity:0}.nav-burger--open span:nth-child(3){background:var(--cyan);transform:translateY(-6.5px)rotate(-45deg)}.nav-mobile{z-index:99;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;background:#080b0ff7;flex-direction:column;padding:8px 0 16px;transition:transform .25s,opacity .25s;display:none;position:fixed;top:57px;left:0;right:0;transform:translateY(-8px)}.nav-mobile--open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-mobile a{font-family:var(--mono);letter-spacing:.1em;color:var(--text-dim);border-bottom:1px solid #ffffff0a;padding:14px 24px;font-size:13px;text-decoration:none;transition:color .2s}.nav-mobile a:last-child{border-bottom:none}.nav-mobile a:hover{color:var(--cyan)}.nav-mobile-cta{color:var(--cyan)!important}.nav-overlay{z-index:98;background:#0006;position:fixed;top:0;bottom:0;left:0;right:0}@media (max-width:640px){.nav{padding:16px 20px}.nav-links{display:none}.nav-burger,.nav-mobile{display:flex}.hero{padding:100px 20px 80px}.hero-name{font-size:clamp(36px,10vw,56px)}.hero-visual{max-width:300px}.n8n-node-title{font-size:9px}.what-i-do{flex-direction:column}.stats-row{flex-wrap:wrap}.stat{min-width:50%}.exp-section{padding:60px 16px 80px}.exp-section-label{margin-bottom:48px}.exp-line-track{margin-right:28px}.exp-dot{left:-33px}.exp-entries{gap:80px}.exp-card{padding:20px}.exp-company{font-size:17px}.exp-role{letter-spacing:.04em;font-size:11px}.exp-desc{font-size:14px;line-height:1.75}.exp-card-header{flex-direction:column;align-items:flex-start;gap:6px}.proj-section{padding:0 16px 100px}.proj-image-area{flex-direction:column;min-height:0;max-height:none;display:flex;overflow:visible}.proj-image{object-fit:cover;object-position:top center;flex-shrink:0;width:100%;height:200px}.proj-filename-badge{border-top:1px solid var(--border);border-bottom:1px solid var(--border);-webkit-backdrop-filter:none;backdrop-filter:none;background:#080b0ff2;padding:7px 16px;font-size:10px;position:static;top:auto;right:auto}.proj-info{gap:16px;padding:20px}.proj-title{font-size:14px}.proj-what{font-size:13px}.proj-breakdown-text{font-size:12px}.proj-breakdown-row{flex-direction:column;gap:4px}.proj-breakdown-label{white-space:normal}.proj-filename-badge{padding:2px 8px;font-size:9px}.proj-zoom-btn{-webkit-backdrop-filter:none;backdrop-filter:none;background:#00d4ff0d;border:1px solid #00d4ff33;border-left:none;border-right:none;border-radius:0;justify-content:center;width:100%;padding:10px 16px;font-size:11px;position:static}.mob-section{padding:0 16px 100px}.mob-card{flex-direction:column;gap:28px}.mob-card:nth-child(2n){flex-direction:column}.mob-phone-side{justify-content:center;width:100%;display:flex}.mob-phone{width:180px}.mob-info-side{padding:0}.mob-title{font-size:16px}}@keyframes mob-slide-left{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes mob-slide-right{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}.contact-section{z-index:1;width:100%;max-width:1340px;margin:0 auto;padding:100px 32px;position:relative}.contact-inner{grid-template-columns:1fr 1.4fr;align-items:start;gap:80px;display:grid}.contact-left{flex-direction:column;gap:24px;padding-top:8px;display:flex}.contact-left .section-head{margin-bottom:0}.contact-left .section-head-title{font-size:clamp(36px,5vw,56px)}.contact-email{font-family:var(--mono);letter-spacing:.08em;color:#00d4ff8c;align-items:center;gap:8px;font-size:11px;text-decoration:none;transition:color .15s;display:inline-flex}.contact-email:hover{color:var(--cyan)}.contact-socials{flex-wrap:wrap;align-items:center;gap:10px;margin-top:24px;display:flex}.contact-socials-label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin-right:4px;font-size:10px}.contact-social{border:1px solid var(--border);font-family:var(--mono);letter-spacing:.1em;color:var(--text-mid);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:8px 14px;font-size:11px;text-decoration:none;transition:border-color .2s,color .2s,background .2s,transform .2s;display:inline-flex}.contact-social svg{flex-shrink:0;transition:transform .25s}.contact-social:hover{border-color:var(--cyan);color:var(--cyan);background:#00d4ff0f;transform:translateY(-1px)}.contact-social:focus-visible{border-color:var(--cyan);color:var(--cyan);background:#00d4ff0f;transform:translateY(-1px)}.contact-social:hover svg{transform:rotate(-4deg)scale(1.05)}.contact-social:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}.contact-form{flex-direction:column;gap:20px;display:flex}.contact-field{flex-direction:column;gap:8px;display:flex}.contact-label{font-family:var(--mono);letter-spacing:.18em;color:var(--cyan-bright);font-size:11px}.contact-input{background:var(--bg2);border:1px solid var(--border);color:var(--text);font-family:var(--sans);-webkit-appearance:none;border-radius:0;outline:none;width:100%;padding:12px 16px;font-size:14px;transition:border-color .18s}.contact-input::placeholder{color:var(--text-dim);opacity:1}.contact-input:focus{border-color:var(--cyan)}.contact-textarea{resize:none;min-height:130px;line-height:1.6}.contact-submit{font-family:var(--mono);letter-spacing:.12em;color:var(--bg);background:var(--cyan);cursor:pointer;border:none;align-items:center;gap:9px;width:-moz-fit-content;width:fit-content;padding:13px 24px;font-size:11px;transition:opacity .15s,background .15s;display:inline-flex}.contact-submit:hover:not(:disabled){opacity:.85}.contact-submit:disabled{background:var(--surface);color:var(--text-mid);cursor:default}.contact-error{color:#f56464;font-family:var(--mono);letter-spacing:.02em;background:#f5646414;border:1px solid #f5646466;margin-top:12px;padding:10px 14px;font-size:12px;line-height:1.55}.contact-rodo{font-family:var(--sans);color:var(--text-dim);letter-spacing:.01em;margin-top:16px;font-size:11px;line-height:1.65}.skills-section{z-index:1;max-width:1340px;margin:0 auto;padding:100px 32px;position:relative}.skills-filter{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.skills-filter-btn{border:1px solid var(--border);font-family:var(--mono);letter-spacing:.06em;color:var(--text-mid);cursor:pointer;text-transform:uppercase;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:8px;padding:7px 14px;font-size:11px;transition:border-color .2s,color .2s,background .2s,transform .18s;display:inline-flex}.skills-filter-btn:hover{color:var(--text);border-color:#00d4ff73;transform:translateY(-1px)}.skills-filter-btn:focus-visible{outline:1px solid var(--cyan);outline-offset:3px}.skills-filter-btn--active{border-color:var(--cat-color);color:var(--text);box-shadow:0 0 0 1px var(--cat-color) inset;background:linear-gradient(#00d4ff0a,#00d4ff03)}.skills-filter-dot{background:var(--cat-color,var(--cyan));width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--cat-color,var(--cyan)) 60%, transparent);border-radius:50%;flex-shrink:0}.skills-filter-count{color:var(--text-dim);letter-spacing:.1em;font-size:9px}.skills-filter-btn--active .skills-filter-count{color:var(--cat-color)}.skills-chips{flex-wrap:wrap;gap:8px;min-height:220px;margin:0 0 24px;padding:0;list-style:none;display:flex}.skills-chip{font-family:var(--mono);color:var(--text);letter-spacing:.02em;cursor:default;opacity:0;background:linear-gradient(#141e2a80,#0c121a66);border:1px solid #50789638;align-items:center;gap:9px;padding:7px 12px 7px 11px;font-size:12px;transition:border-color .2s,transform .2s,background .2s;animation:.45s cubic-bezier(.34,1.4,.5,1) both skills-chip-in;display:inline-flex;transform:translateY(8px)scale(.95)}@keyframes skills-chip-in{to{opacity:1;transform:translateY(0)scale(1)}}.skills-chip:hover{border-color:var(--chip-color);background:linear-gradient(#141e2ab3,#0c121a8c);transform:translateY(-2px)}.skills-chip:hover .skills-chip-dot{box-shadow:0 0 10px var(--chip-color);transform:scale(1.25)}.skills-chip-dot{background:var(--chip-color,var(--cyan));width:6px;height:6px;box-shadow:0 0 5px color-mix(in srgb, var(--chip-color,var(--cyan)) 50%, transparent);border-radius:50%;flex-shrink:0;transition:transform .2s,box-shadow .25s}.skills-chip-name{flex:1}.skills-chip-bars{flex-shrink:0;align-items:flex-end;gap:2px;margin-left:6px;display:inline-flex}.skills-chip-bar{background:#8ca5be29;border-radius:1px;width:3px;height:9px;transition:background .25s,box-shadow .25s}.skills-chip-bar--filled{background:var(--chip-color,var(--cyan))}.skills-chip:hover .skills-chip-bar--filled{box-shadow:0 0 4px color-mix(in srgb, var(--chip-color,var(--cyan)) 60%, transparent)}.skills-meta-legend{align-items:center;gap:6px;display:inline-flex}.skills-legend-bars{align-items:flex-end;gap:2px;display:inline-flex}.skills-legend-bar{background:var(--cyan);opacity:.55;border-radius:1px;width:3px}.skills-legend-bar:first-child{height:3px}.skills-legend-bar:nth-child(2){height:5px}.skills-legend-bar:nth-child(3){height:6px}.skills-legend-bar:nth-child(4){height:8px}.skills-legend-bar:nth-child(5){height:9px}.skills-meta{font-family:var(--mono);letter-spacing:.12em;color:var(--text-dim);text-transform:uppercase;align-items:center;gap:10px;font-size:10px;display:flex}.skills-meta strong{color:var(--cyan);font-weight:600}.skills-meta-divider{opacity:.5}@media (max-width:640px){.skills-section{padding:60px 16px 80px}.skills-filter-btn{min-height:32px;padding:8px 12px;font-size:11px}.skills-chip{padding:6px 10px 6px 9px;font-size:11px}.skills-chips{min-height:280px}}@keyframes wip-pulse{0%,to{opacity:1;box-shadow:0 0 6px #f5a62399}50%{opacity:.45;box-shadow:0 0 2px #f5a62366}}@media (max-width:640px){.contact-section{padding:60px 16px 80px}.contact-inner{grid-template-columns:1fr;gap:40px}}.section-head{flex-direction:column;gap:12px;margin-bottom:56px;display:flex;position:relative}.section-head-meta{font-family:var(--mono);letter-spacing:.2em;color:var(--cyan);opacity:.85;text-transform:uppercase;font-size:11px}.section-head-title{font-family:var(--mono);letter-spacing:-.03em;color:var(--text);margin:0;font-size:clamp(48px,7vw,96px);font-weight:700;line-height:1}.section-head-title-accent{color:var(--cyan)}.section-head-sub{font-family:var(--sans);color:var(--text-mid);max-width:640px;margin:4px 0 0;font-size:16px;line-height:1.6}@media (max-width:640px){.section-head{margin-bottom:36px}.section-head-sub{font-size:14px}}.bento-page{z-index:1;max-width:1340px;margin:0 auto;padding:100px 32px;position:relative}.bento-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:16px;display:grid}.bento-item{border:1px solid var(--border);background:var(--bg2);color:inherit;isolation:isolate;opacity:0;cursor:default;flex-direction:column;justify-content:space-between;padding:18px 20px;text-decoration:none;transition:opacity .6s,transform .6s,border-color .3s,box-shadow .4s;display:flex;position:relative;overflow:hidden;transform:translateY(20px)}.bento-item--linked{cursor:pointer}.bento-item--visible{opacity:1;transform:translateY(0)}.bento-item--featured{grid-area:span 2/span 2;padding:28px 32px}.bento-item--wide{grid-column:span 3}.bento-item-bg{z-index:-2;filter:saturate(.85)brightness(.7);background-position:top;background-repeat:no-repeat;background-size:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1),filter .5s;position:absolute;top:0;bottom:0;left:0;right:0}.bento-item--featured .bento-item-bg{background-position:0 0}.bento-item--wide .bento-item-bg{background-position:top}.bento-item-overlay{background:linear-gradient(180deg, #080b0f66 0%, #080b0f8c 40%, #080b0ff2 100%), radial-gradient(circle at 80% 0%, color-mix(in srgb, var(--type-color) 22%, transparent), transparent 60%);z-index:-1;transition:opacity .4s;position:absolute;top:0;bottom:0;left:0;right:0}.bento-item-grain{opacity:.045;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:absolute;top:0;bottom:0;left:0;right:0}.bento-item--linked:hover{border-color:var(--type-color);box-shadow:0 0 0 1px var(--type-color) inset, 0 30px 60px -30px color-mix(in srgb, var(--type-color) 40%, transparent), 0 14px 30px -16px #000000b3}.bento-item--linked:hover .bento-item-bg{filter:saturate()brightness(.85);transform:scale(1.06)}.bento-item--linked:hover .bento-item-arrow{color:var(--type-color);transform:translate(2px,-2px)}.bento-item-top{z-index:1;justify-content:space-between;align-items:center;gap:10px;display:flex}.bento-type-badge{border:1px solid color-mix(in srgb, var(--type-color) 45%, transparent);background:color-mix(in srgb, var(--type-color) 8%, #080b0fb3);font-family:var(--mono);letter-spacing:.18em;color:var(--type-color);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;gap:7px;padding:4px 10px 4px 8px;font-size:9px;display:inline-flex}.bento-type-dot{background:var(--type-color);width:5px;height:5px;box-shadow:0 0 6px var(--type-color);border-radius:50%}.bento-status{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid;align-items:center;gap:6px;padding:4px 9px;font-size:9px;display:inline-flex}.bento-status-dot{border-radius:50%;width:5px;height:5px;animation:2s ease-in-out infinite bento-status-pulse}.bento-status--live .bento-status-dot{background:#4ade80;box-shadow:0 0 6px #4ade8099}.bento-status--wip{color:#f5a623;background:#f5a62314;border-color:#f5a62373}.bento-status--wip .bento-status-dot{background:#f5a623;box-shadow:0 0 6px #f5a62399}@keyframes bento-status-pulse{0%,to{opacity:1}50%{opacity:.4}}.bento-item-content{z-index:1;flex-direction:column;justify-content:flex-end;gap:14px;display:flex}.bento-item-text{flex-direction:column;gap:6px;display:flex}.bento-item-title{font-family:var(--mono);letter-spacing:-.01em;color:var(--text);margin:0;font-size:18px;font-weight:600;line-height:1.2}.bento-item--featured .bento-item-title{letter-spacing:-.02em;font-size:clamp(28px,3.2vw,42px)}.bento-item-subtitle{font-family:var(--mono);letter-spacing:.06em;color:var(--type-color);margin:0;font-size:11px}.bento-item--featured .bento-item-subtitle{font-size:13px}.bento-item-desc{font-family:var(--sans);color:var(--text-mid);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.bento-item--featured .bento-item-desc{-webkit-line-clamp:4;max-width:540px;font-size:14.5px;line-height:1.65}.bento-item-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.bento-item-tags{flex-wrap:wrap;gap:6px;display:flex}.bento-item-tag{font-family:var(--mono);letter-spacing:.06em;color:var(--text-mid);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080b0f80;border:1px solid #a0b0bf33;padding:3px 8px;font-size:10px}.bento-item-arrow{border:1px solid color-mix(in srgb, var(--type-color) 35%, transparent);width:28px;height:28px;color:var(--type-color);background:color-mix(in srgb, var(--type-color) 6%, #080b0f99);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .25s,color .25s,background .25s;display:inline-flex}.bento-footer{font-family:var(--mono);letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:48px;padding-top:24px;font-size:10px;display:flex}@media (max-width:980px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}.bento-item--featured{grid-area:span 2/span 2}.bento-item--wide{grid-column:span 2}}@media (max-width:640px){.bento-page{padding:60px 16px 80px}.bento-grid{grid-template-columns:1fr;grid-auto-rows:240px;gap:12px}.bento-item--featured{grid-area:span 2/span 1;padding:22px}.bento-item--wide{grid-column:span 1}.bento-item--featured .bento-item-title{font-size:30px}.bento-item--featured .bento-item-desc{-webkit-line-clamp:3;font-size:13px}}button.bento-item{text-align:left;cursor:pointer;width:100%;font-family:inherit}button.bento-item:focus-visible{outline:2px solid var(--type-color);outline-offset:2px}.bento-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080b0fd9;justify-content:center;align-items:center;padding:32px 16px;animation:.25s ease-out bento-modal-backdrop-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes bento-modal-backdrop-in{0%{opacity:0}to{opacity:1}}.bento-modal{border:1px solid color-mix(in srgb, var(--type-color) 30%, var(--border));width:100%;max-width:880px;max-height:92vh;box-shadow:0 0 0 1px color-mix(in srgb, var(--type-color) 12%, transparent) inset, 0 30px 80px -20px #000000b3, 0 0 80px -20px color-mix(in srgb, var(--type-color) 30%, transparent);scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:linear-gradient(#141e2af5,#0c121afa);animation:.4s cubic-bezier(.34,1.4,.5,1) bento-modal-in;position:relative;overflow-y:auto}.bento-modal::-webkit-scrollbar{width:6px}.bento-modal::-webkit-scrollbar-track{background:0 0}.bento-modal::-webkit-scrollbar-thumb{background:var(--border)}@keyframes bento-modal-in{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.bento-modal-head{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb, var(--type-color) 15%, var(--border));background:linear-gradient(#0c121af2 0%,#0c121ab3 100%);justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.bento-modal-head-left{align-items:center;gap:10px;display:flex}.bento-modal-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text-mid);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s,transform .2s;display:inline-flex}.bento-modal-close:hover{border-color:var(--cyan);color:var(--cyan);background:#00d4ff14;transform:rotate(90deg)}.bento-modal-close:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}.bento-modal-hero{background:#0006;width:100%;position:relative;overflow:hidden}.bento-modal-hero-img{object-fit:cover;object-position:top center;filter:saturate(.95);width:100%;max-height:520px;display:block}.bento-modal-hero--scrolling{--hero-h:540px;height:var(--hero-h);contain:paint;overflow:hidden}.bento-modal-hero--scrolling .bento-modal-hero-img{object-fit:contain;object-position:top center;will-change:transform;width:100%;height:auto;max-height:none;animation:50s ease-in-out infinite bento-web-scroll;transform:translate(0,0)}.bento-modal-hero--scrolling:hover .bento-modal-hero-img{animation-play-state:paused}@keyframes bento-web-scroll{0%{transform:translate(0,0)}45%{transform:translate3d(0, calc(-100% + var(--hero-h)), 0)}55%{transform:translate3d(0, calc(-100% + var(--hero-h)), 0)}to{transform:translate(0,0)}}@media (prefers-reduced-motion:reduce){.bento-modal-hero--scrolling .bento-modal-hero-img{animation:none}}.bento-modal-hero--mobile{background:linear-gradient(#080b0f66,#080b0fd9);justify-content:center;align-items:center;height:560px;display:flex}.bento-modal-hero--mobile .bento-modal-hero-img{z-index:1;object-fit:contain;object-position:center;filter:drop-shadow(0 24px 48px #0000008c)drop-shadow(0 0 1px #4ade8040);border-radius:22px;width:auto;max-width:min(46%,280px);height:100%;max-height:520px;position:relative}.bento-modal-hero-backdrop{filter:blur(48px)saturate(1.2);opacity:.45;pointer-events:none;z-index:0;background-position:50%;background-size:cover;position:absolute;top:-10%;bottom:-10%;left:-10%;right:-10%;transform:scale(1.15)}.bento-modal-hero--mobile .bento-modal-hero-fade{z-index:2}.bento-modal-hero-fade{pointer-events:none;background:linear-gradient(#0000 0%,#0c121af2 100%);height:80px;position:absolute;bottom:0;left:0;right:0}.bento-modal-thumbs{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1;background:#080b0fb3;gap:6px;padding:6px 8px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.bento-modal-thumb{border:1px solid var(--border);cursor:pointer;background:0 0;width:36px;height:48px;padding:0;transition:border-color .2s,transform .2s;overflow:hidden}.bento-modal-thumb img{object-fit:cover;object-position:top center;opacity:.55;width:100%;height:100%;transition:opacity .2s}.bento-modal-thumb:hover img{opacity:.85}.bento-modal-thumb--active{border-color:var(--type-color)}.bento-modal-thumb--active img{opacity:1}.bento-modal-hero--mobile .bento-modal-thumbs{z-index:3;gap:8px;padding:8px 10px;bottom:16px}.bento-modal-hero--mobile .bento-modal-thumb{border-radius:8px;width:52px;height:92px}.bento-modal-hero--mobile .bento-modal-thumb img{object-position:center top}.bento-modal-body{flex-direction:column;gap:24px;padding:28px 32px 36px;display:flex}.bento-modal-titles{flex-direction:column;gap:6px;display:flex}.bento-modal-title{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.1}.bento-modal-subtitle{font-family:var(--mono);letter-spacing:.04em;color:var(--type-color);margin:0;font-size:13px}.bento-modal-lead{font-family:var(--sans);color:var(--text-mid);margin:0;font-size:15px;line-height:1.7}.bento-modal-breakdown{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:18px;padding:22px 0;display:flex}.bento-modal-section{grid-template-columns:140px 1fr;align-items:start;gap:24px;display:grid}.bento-modal-label{font-family:var(--mono);letter-spacing:.18em;padding-top:4px;font-size:10px;font-weight:600}.bento-modal-label--problem{color:#f5a623}.bento-modal-label--solution{color:#4ade80}.bento-modal-text{font-family:var(--sans);color:var(--text);margin:0;font-size:14px;line-height:1.7}.bento-modal-stack{grid-template-columns:140px 1fr;align-items:start;gap:24px;display:grid}.bento-modal-stack-label{font-family:var(--mono);letter-spacing:.18em;color:var(--cyan);padding-top:4px;font-size:10px;font-weight:600}.bento-modal-stack-tags{flex-wrap:wrap;gap:6px;display:flex}.bento-modal-tag{font-family:var(--mono);letter-spacing:.04em;border:1px solid var(--border);color:var(--text-mid);background:#00d4ff0a;padding:5px 10px;font-size:11px}.bento-modal-actions{flex-wrap:wrap;align-items:center;gap:16px;padding-top:4px;display:flex}.bento-modal-cta{background:var(--type-color);color:var(--bg);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 0 24px -6px color-mix(in srgb, var(--type-color) 60%, transparent);align-items:center;gap:8px;padding:11px 18px;font-size:12px;font-weight:600;text-decoration:none;transition:opacity .2s,transform .2s,box-shadow .3s;display:inline-flex}.bento-modal-cta:hover{opacity:.92;box-shadow:0 0 32px -4px color-mix(in srgb, var(--type-color) 80%, transparent);transform:translateY(-1px)}.bento-modal-url{font-family:var(--mono);letter-spacing:.04em;color:var(--text-dim);font-size:11px}@media (max-width:720px){.bento-modal{max-height:95vh}.bento-modal-body{padding:22px 20px 28px}.bento-modal-section,.bento-modal-stack{grid-template-columns:1fr;gap:8px}.bento-modal-hero-img{max-height:360px}.bento-modal-hero--scrolling{--hero-h:380px}.bento-modal-hero--mobile{height:440px}.bento-modal-hero--mobile .bento-modal-hero-img{max-width:min(58%,240px);max-height:400px}.bento-modal-hero--mobile .bento-modal-thumb{width:42px;height:74px}}@keyframes expp-pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--cyan)}50%{opacity:.4;box-shadow:0 0 3px #00d4ff66}}.cp-page{z-index:1;max-width:1340px;margin:0 auto;padding:100px 32px;position:relative}.cp-filter{flex-wrap:wrap;gap:8px;margin-bottom:48px;display:flex}.cp-filter-btn{border:1px solid var(--border);font-family:var(--mono);letter-spacing:.06em;color:var(--text-mid);cursor:pointer;text-transform:uppercase;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:8px;padding:7px 14px;font-size:11px;transition:border-color .2s,color .2s,background .2s,transform .18s;display:inline-flex}.cp-filter-btn:hover{color:var(--text);border-color:#00d4ff73;transform:translateY(-1px)}.cp-filter-btn--active{border-color:var(--cat-color);color:var(--text);box-shadow:0 0 0 1px var(--cat-color) inset;background:linear-gradient(#00d4ff0a,#00d4ff03)}.cp-filter-dot{background:var(--cat-color,var(--cyan));width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--cat-color,var(--cyan)) 60%, transparent);border-radius:50%}.cp-filter-count{color:var(--text-dim);letter-spacing:.1em;font-size:9px}.cp-filter-btn--active .cp-filter-count{color:var(--cat-color)}.cp-timeline{flex-direction:column;display:flex}.cp-event{opacity:0;grid-template-columns:64px 1fr;gap:24px;transition:opacity .6s,transform .6s;display:grid;position:relative;transform:translateY(20px)}.cp-event--visible{opacity:1;transform:translateY(0)}.cp-event-rail{flex-direction:column;align-items:center;padding-top:4px;display:flex;position:relative}.cp-event-marker{border:1px solid var(--type-color);width:36px;height:36px;color:var(--type-color);z-index:2;box-shadow:0 0 0 1px color-mix(in srgb, var(--type-color) 12%, transparent) inset, 0 0 14px -4px color-mix(in srgb, var(--type-color) 50%, transparent);background:linear-gradient(#1a232e,#131b24);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.cp-event-marker-icon{display:inline-flex}.cp-event-marker-pulse{border:1px solid var(--type-color);opacity:0;border-radius:50%;animation:2.4s ease-out infinite cp-marker-pulse;position:absolute;top:-6px;bottom:-6px;left:-6px;right:-6px}@keyframes cp-marker-pulse{0%{opacity:.55;transform:scale(.85)}to{opacity:0;transform:scale(1.5)}}.cp-event-line{background:linear-gradient(180deg, var(--type-color) 0%, color-mix(in srgb, var(--type-color) 40%, transparent) 30%, var(--border) 100%);opacity:.5;flex:1;width:1px;min-height:24px;margin-top:6px;margin-bottom:6px}.cp-event-card{border:1px solid var(--border);background:linear-gradient(#141e2a66,#0c121a33);margin-bottom:24px;padding:18px 22px 22px;transition:border-color .25s,transform .25s,box-shadow .3s;position:relative}.cp-event-card:before{content:"";background:var(--type-color);width:0;height:1px;transition:width .7s .25s;position:absolute;top:0;left:0}.cp-event--visible .cp-event-card:before{width:35%}.cp-event-card:hover{border-color:color-mix(in srgb, var(--type-color) 40%, transparent);box-shadow:0 14px 30px -16px color-mix(in srgb, var(--type-color) 30%, transparent);transform:translateY(-2px)}.cp-event--current .cp-event-card{border-color:color-mix(in srgb, var(--type-color) 30%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--type-color) 4%, #141e2a66), #0c121a33)}.cp-event-strip{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cp-event-type-badge{border:1px solid color-mix(in srgb, var(--type-color) 35%, transparent);background:color-mix(in srgb, var(--type-color) 7%, #080b0f99);font-family:var(--mono);letter-spacing:.18em;color:var(--type-color);text-transform:uppercase;align-items:center;gap:6px;padding:4px 9px 4px 7px;font-size:9px;display:inline-flex}.cp-event-period{font-family:var(--mono);letter-spacing:.04em;color:var(--text-mid);font-size:11px}.cp-event-status{border:1px solid color-mix(in srgb, var(--type-color) 40%, transparent);background:color-mix(in srgb, var(--type-color) 7%, transparent);font-family:var(--mono);letter-spacing:.16em;color:var(--type-color);text-transform:uppercase;align-items:center;gap:6px;margin-left:auto;padding:4px 9px;font-size:9px;display:inline-flex}.cp-event-status-dot{background:var(--type-color);width:5px;height:5px;box-shadow:0 0 8px var(--type-color);border-radius:50%;animation:2s ease-in-out infinite cp-status-pulse}@keyframes cp-status-pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--type-color)}50%{opacity:.45;box-shadow:0 0 3px color-mix(in srgb, var(--type-color) 50%, transparent)}}.cp-event-body{grid-template-columns:minmax(0,1.05fr) minmax(0,1.4fr);align-items:start;gap:32px;display:grid}.cp-event-titles{flex-direction:column;gap:4px;display:flex}.cp-event-title{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(20px,2.4vw,28px);font-weight:700;line-height:1.05}.cp-event-title-accent{color:var(--type-color)}.cp-event-subtitle{font-family:var(--mono);letter-spacing:.06em;color:var(--text-dim);margin:2px 0 0;font-size:11px;line-height:1.4}.cp-event-meta{border-top:1px dashed #50789633;flex-direction:column;gap:4px;margin-top:14px;padding-top:14px;display:flex}.cp-event-meta-row{font-family:var(--mono);letter-spacing:.04em;justify-content:space-between;align-items:baseline;padding:2px 0;font-size:11px;display:flex}.cp-event-meta-label{color:var(--text-dim);letter-spacing:.16em;text-transform:uppercase;font-size:9px}.cp-event-meta-value{color:var(--text);text-align:right}.cp-event-desc{font-family:var(--sans);color:var(--text-mid);margin:0 0 14px;font-size:13.5px;line-height:1.65}.cp-event-tags{flex-wrap:wrap;gap:5px;display:flex}.cp-event-tag{font-family:var(--mono);letter-spacing:.04em;color:var(--text-mid);background:#080b0f80;border:1px solid #50789633;padding:4px 9px;font-size:10px}@media (max-width:900px){.cp-event-body{grid-template-columns:1fr;gap:18px}}@media (max-width:640px){.cp-page{padding:60px 16px 80px}.cp-event{grid-template-columns:44px 1fr;gap:16px}.cp-event-marker{width:30px;height:30px}.cp-event-card{padding:16px 18px 20px}.cp-filter-btn{min-height:32px;padding:8px 12px;font-size:11px}}.neural-layer{pointer-events:none;z-index:0;opacity:.55;mix-blend-mode:screen;will-change:transform;width:100vw;height:100vh;position:fixed;top:0;bottom:0;left:0;right:0}@media (max-width:640px){.neural-layer{opacity:.4}}
