:root{--primary-color:#000;--primary-hover:#333;--accent-color:#007aff;--brand-accent:#007aff;--brand-accent-text:#06c;--brand-accent-soft:#007aff29;--background-color:#f5f5f7;--surface-color:#fff;--text-color:#1d1d1f;--text-light:#6e6e73;--glass-bg:#ffffff73;--glass-border:#ffffff80;--border-radius:30px;--shadow-soft:0 10px 30px #0000000d;--shadow-hover:0 20px 40px #0000001a;--transition:all .4s cubic-bezier(.16, 1, .3, 1);--inverse-text:#fff;--footer-border:#ffffff1a;--section-bg:#f5f5f7;--whatsapp-color:#25d366;--cursor-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><path d='M3,2 L3,17.5 L7,14 L9.8,20 L12.2,19 L9.5,13 L15,13 Z' fill='black' stroke='white' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'/></svg>")}@media (prefers-color-scheme:dark){:root{--primary-color:#fff;--primary-hover:#e0e0e0;--accent-color:#0a84ff;--brand-accent-text:#2997ff;--background-color:#000;--surface-color:#1d1d1f;--text-color:#f5f5f7;--text-light:#a1a1a6;--glass-bg:#0006;--glass-border:#ffffff1a;--shadow-soft:0 10px 30px #ffffff0d;--shadow-hover:0 20px 40px #ffffff1a;--inverse-text:#000;--footer-border:#0000001a;--section-bg:#111;--cursor-arrow:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><path d='M3,2 L3,17.5 L7,14 L9.8,20 L12.2,19 L9.5,13 L15,13 Z' fill='white' stroke='black' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'/></svg>")}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-padding-top:80px}img{max-width:100%;display:block}button{font-family:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:3px;border-radius:6px}@media (hover:hover) and (pointer:fine){html{cursor:var(--cursor-arrow) 3 2, auto}a,button,[role=button],label{cursor:var(--cursor-arrow) 3 2, pointer}}.cursor-loader{pointer-events:none;z-index:10001;background:conic-gradient(#c7e3ff 0deg,#7cc8ff 60deg,#38a5ff 120deg,#007aff 180deg,#0057d2 240deg,#003f9c 300deg,#c7e3ff 360deg);border-radius:50%;width:26px;height:26px;animation:1.1s linear infinite cursorSpin;display:none;position:fixed;top:0;left:0;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #0003,0 2px 6px #00000040}.cursor-loader:after{content:"";background:#fffffff2;border-radius:50%;position:absolute;inset:35%}@keyframes cursorSpin{to{transform:translate(-50%,-50%)rotate(360deg)}}@media (hover:hover) and (pointer:fine){:is(body:has(.loader:not(.hidden)),body:has(.loader:not(.hidden)) *){cursor:none!important}body:has(.loader:not(.hidden)) .cursor-loader{display:block}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-loader{display:none!important}}body{background-color:var(--background-color);color:var(--text-color);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;overflow-x:hidden}body.scroll-locked,body.modal-open{overflow:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:#3a3a3c}}.navbar{z-index:1000;background:var(--glass-bg);-webkit-backdrop-filter:blur(32px)saturate(160%);width:100%;transition:var(--transition);border-bottom:1px solid #0000000d;padding:1.5rem 0;position:fixed;top:0}@media (prefers-color-scheme:dark){.navbar{border-bottom-color:#ffffff0f}}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.nav-content{justify-content:space-between;align-items:center;display:flex}.logo{color:var(--text-color);letter-spacing:-.02em;font-size:1.25rem;font-weight:600;text-decoration:none}.nav-links{align-items:center;gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text-light);transition:var(--transition);font-size:.9rem;font-weight:500;text-decoration:none;position:relative}.nav-links a:hover{color:var(--text-color);opacity:.8}.nav-links a:after{content:"";background:linear-gradient(90deg, var(--brand-accent), #7cc8ff);transform-origin:0;width:100%;height:2px;transition:transform .3s;position:absolute;bottom:-.35rem;left:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a.is-current:after{transform:scaleX(1)}.nav-links a.is-current{color:var(--brand-accent-text)}.btn-primary{background-color:var(--primary-color);transition:var(--transition);border-radius:20px;padding:.5rem 1.25rem;color:var(--inverse-text)!important}.btn-primary:hover{background-color:var(--primary-hover);transform:scale(1.02)}.section{padding:8rem 0}.hero{text-align:center;justify-content:center;align-items:center;min-height:80dvh;padding:8rem 0 3rem;display:flex;position:relative;overflow:hidden}.hero-content{text-align:center;flex-direction:column;align-items:center;gap:1.1rem;display:flex}.hero-portrait{isolation:isolate;width:clamp(180px,22vw,240px);height:clamp(180px,22vw,240px);margin-bottom:.25rem;position:relative}.hero-portrait-aurora{filter:blur(24px);opacity:.85;z-index:-2;background:radial-gradient(circle,#7cc8ffe0 0%,#007affa6 38%,#007aff47 62%,#007aff00 80%);border-radius:50%;animation:6s ease-in-out infinite alternate aurora-pulse;position:absolute;inset:-14%}@keyframes aurora-pulse{0%{opacity:.75;transform:scale(.96)}to{opacity:.95;transform:scale(1.04)}}.hero-portrait-frame{background:var(--surface-color);z-index:0;border-radius:50%;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 0 0 6px #ffffffa6,0 0 0 7px #ffffff59,0 24px 60px #0000002e}.hero-portrait-image{object-fit:cover;width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.hero-portrait-aurora{animation:none}}@media (prefers-color-scheme:dark){.hero-portrait-frame{background:#1d1d1f;box-shadow:0 0 0 6px #ffffff0f,0 0 0 7px #ffffff08,0 24px 60px #00000080}}.hero-identity{color:var(--text-color);align-items:center;gap:.4rem;font-size:1.05rem;font-weight:600;display:inline-flex}.hero-name{letter-spacing:-.005em}.hero-verified{color:#1d9bf0;flex-shrink:0;font-size:1.15rem}.hero-title{letter-spacing:-.03em;max-width:14ch;margin:.15rem 0 .35rem;font-size:clamp(2.2rem,6.5vw,4.75rem);font-weight:800;line-height:1.05}.hero-cta{color:var(--brand-accent-text);transition:var(--transition);align-items:center;gap:.5rem;padding:.5rem .25rem;font-size:1.05rem;font-weight:500;text-decoration:none;display:inline-flex}.hero-cta:hover{color:var(--brand-accent)}.hero-cta span{font-size:1.3em;line-height:1;transition:transform .25s}.hero-cta:hover span{transform:translate(4px)}.btn-secondary{color:var(--accent-color);transition:var(--transition);background-color:#0000;border-radius:20px;padding:.8rem 2rem;font-weight:500;text-decoration:none}.btn-secondary:hover{text-decoration:underline}.footer-cta-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.js-whatsapp-link.btn-secondary{color:var(--whatsapp-color);border:1px solid #25d36666;text-decoration:none}.js-whatsapp-link.btn-secondary:hover{background:#25d36614;text-decoration:none}.btn-primary.large,.btn-secondary.large{border-radius:30px;padding:1rem 2.5rem;font-size:1.1rem}.btn-secondary.large{border:1px solid #007aff66}.btn-secondary.large:hover{background:#007aff14;text-decoration:none}.hero-background-gradient{filter:blur(80px);z-index:-1;background:radial-gradient(circle,#c8c8ff33 0%,#ffe6e61a 40%,#0000 70%);width:60vw;height:60vw;animation:10s infinite alternate pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulse{0%{opacity:.5;transform:translate(-50%,-50%)scale(1)}to{opacity:.8;transform:translate(-50%,-50%)scale(1.2)}}.fade-in-up{opacity:0;animation:1s cubic-bezier(.16,1,.3,1) forwards fadeInUp;transform:translateY(30px)}.delay-1{animation-delay:.2s}.delay-2{animation-delay:.4s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.fade-in-up{opacity:1;transform:none}}.section-title{text-align:left;letter-spacing:-.035em;max-width:18ch;margin-bottom:3.5rem;font-size:clamp(2.75rem,7vw,5.25rem);font-weight:800;line-height:1.02;display:block}.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(360px,auto);gap:1.5rem;display:grid}.bento-item{text-align:left;background:var(--surface-color);border-radius:var(--border-radius);width:100%;box-shadow:var(--shadow-soft);transition:var(--transition);isolation:isolate;border:none;flex-direction:column;justify-content:space-between;padding:2rem;display:flex;position:relative;overflow:hidden}.bento-item:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.bento-item.large,.bento-item.wide{grid-column:span 2}.bento-item.medium{grid-column:span 1}.bento-content{z-index:2;display:block;position:relative}.bento-title,.bento-subtitle,.bento-description,.bento-content .tags{display:block}.bento-title{word-break:break-word;color:#fff;margin-bottom:.5rem;font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:700}.bento-description{color:#fff;margin-bottom:1rem;font-size:.85rem;line-height:1.55}.bento-content .tags{margin-top:.5rem}.tag{color:#fff;background:#0000008c;border-radius:12px;margin-right:.5rem;padding:.25rem .75rem;font-size:.8rem;font-weight:500;display:inline-block}.bento-visual{border-radius:inherit;z-index:0;background:#1a1a1a;position:absolute;inset:0;overflow:hidden}.bento-visual img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);transform:scale(1.02)}.bento-item:hover .bento-visual img{transform:scale(1.06)}.bento-item:before{content:"";z-index:1;border-radius:inherit;background:linear-gradient(#0f0f0f33 0%,#0f0f0fd1 100%);transition:background .3s;position:absolute;inset:0}.bento-item:hover:before{background:linear-gradient(#0f0f0f4d 0%,#0f0f0fdb 100%)}.bento-top{z-index:2;justify-content:flex-start;display:flex;position:relative}.bento-meta{letter-spacing:.01em;color:#ffffffeb;-webkit-backdrop-filter:blur(10px);background:#ffffff24;border:1px solid #ffffff38;border-radius:999px;align-items:center;padding:.35rem .85rem;font-size:.75rem;font-weight:600;display:inline-flex}.bento-subtitle{color:#ffffffb8;margin-bottom:.65rem;font-size:.95rem;line-height:1.55}.bento-cta{color:#fff;opacity:.72;align-items:center;gap:.4rem;margin-top:1.1rem;font-size:.9rem;font-weight:600;transition:opacity .25s,gap .25s;display:inline-flex}.bento-item:hover .bento-cta{opacity:1;gap:.7rem}.tag--soft{color:#1d1d1f;background:#0000000f;border:1px solid #00000014;font-weight:500}@media (prefers-color-scheme:dark){.tag--soft{color:#ffffffe6;background:#ffffff14;border-color:#ffffff24}}.project-preview-overlay{z-index:1500;-webkit-backdrop-filter:blur(6px);padding:1.5rem;padding-top:max(1.5rem, calc(1.5rem + env(safe-area-inset-top,0px)));padding-bottom:max(1.5rem, calc(1.5rem + env(safe-area-inset-bottom,0px)));opacity:0;background:#080808d1;justify-content:center;align-items:center;animation:.22s ease-out forwards overlayFadeIn;display:flex;position:fixed;inset:0}.project-preview-overlay.is-closing{animation:.2s ease-in forwards overlayFadeOut}.project-preview-modal{width:min(1120px,100%);max-height:min(880px,88vh);color:var(--text-color);transform-origin:50%;opacity:0;will-change:transform, opacity;background:#fff;border-radius:24px;grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1.05fr;animation:.32s cubic-bezier(.22,1,.36,1) forwards modalScaleIn;display:grid;position:relative;overflow:hidden;box-shadow:0 30px 80px #0006}@media (prefers-color-scheme:dark){.project-preview-modal{color:#fff;background:#101010}}.project-preview-modal.is-closing{animation:.2s cubic-bezier(.4,0,1,1) forwards modalScaleOut}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes modalScaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.project-preview-media{min-height:380px;position:relative;overflow:hidden}.project-preview-media img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.project-preview-media--contain{background:radial-gradient(circle at 50% 35%,#1c1c1c 0%,#0a0a0a 100%);justify-content:center;align-items:center;padding:1.75rem;display:flex}.project-preview-media--contain img{object-fit:contain;border-radius:12px;width:100%;max-width:100%;height:100%;max-height:100%;position:relative;inset:auto;box-shadow:0 18px 40px #00000073}.project-preview-content{color:var(--text-color);overscroll-behavior:contain;flex-direction:column;gap:1.5rem;min-height:0;padding:2.25rem;display:flex;overflow-y:auto}.project-preview-content h3{letter-spacing:-.02em;font-size:clamp(1.6rem,2.6vw,2rem);line-height:1.15}.project-preview-content p{color:var(--text-light)}@media (prefers-color-scheme:dark){.project-preview-content{color:#fff}.project-preview-content p{color:#ffffffd9}}.project-preview-tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-detail-subtitle{margin-top:.45rem;font-size:1rem;line-height:1.45}.project-detail-facts{border-top:1px solid #00000017;border-bottom:1px solid #00000017;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1rem 1.5rem;margin:0;padding:1.1rem 0;display:grid}.project-detail-fact dt{letter-spacing:.09em;text-transform:uppercase;color:var(--text-light);margin-bottom:.35rem;font-size:.7rem;font-weight:700}.project-detail-fact dd{margin:0;font-size:.9rem;font-weight:500;line-height:1.4}.project-detail-overview{line-height:1.65}.project-detail-block{flex-direction:column;gap:.85rem;display:flex}.project-detail-heading{letter-spacing:.11em;text-transform:uppercase;color:var(--text-light);font-size:.72rem;font-weight:700}.project-detail-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.project-detail-list li{color:var(--text-light);padding-left:1.35rem;font-size:.94rem;line-height:1.6;position:relative}.project-detail-list li:before{content:"";background:var(--brand-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.62em;left:0}.project-detail-stack{flex-direction:column;gap:.9rem;display:flex}.project-detail-stack-label{color:var(--text-light);margin-bottom:.45rem;font-size:.78rem;font-weight:600;display:block}.project-detail-links{flex-wrap:wrap;gap:.7rem;margin-top:.25rem;display:flex}.project-detail-link{color:var(--text-color);border:1px solid #00000024;border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.3rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:transform .2s,opacity .2s,background .2s;display:inline-flex}.project-detail-link:hover{background:#0000000a;transform:translateY(-2px)}.project-detail-link--primary{color:#fff;background:#1d1d1f;border-color:#1d1d1f}.project-detail-link--primary:hover{opacity:.88;background:#1d1d1f}@media (prefers-color-scheme:dark){.project-detail-facts{border-top-color:#ffffff1f;border-bottom-color:#ffffff1f}.project-detail-list li,.project-detail-subtitle{color:#ffffffc7}.project-detail-link{color:#fff;border-color:#fff3}.project-detail-link:hover{background:#ffffff14}.project-detail-link--primary{color:#101010;background:#fff;border-color:#fff}.project-detail-link--primary:hover{background:#fff}}@media (prefers-reduced-motion:reduce){.project-detail-link:hover,.bento-item:hover .bento-cta{transform:none}}.project-preview-close{color:#fff;z-index:2;background:#0009;border:0;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.6rem;line-height:1;transition:background .2s,transform .2s;display:flex;position:absolute;top:.85rem;right:.85rem}.project-preview-close:hover{background:#000000d9;transform:scale(1.08)}.github-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3rem;display:flex}.github-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--text-light);margin-bottom:.85rem;font-size:.78rem;font-weight:700}.section-title.github-title{margin-bottom:0}.github-profile-link{color:var(--text-color);white-space:nowrap;transition:var(--transition);border:1px solid #00000024;border-radius:999px;align-items:center;gap:.55rem;padding:.75rem 1.4rem;font-size:.94rem;font-weight:600;text-decoration:none;display:inline-flex}.github-profile-link:hover{background:var(--surface-color);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.gh-flow{margin:0;padding:0;list-style:none;position:relative}.gh-flow-item{grid-template-columns:92px 1fr;gap:1.75rem;padding-bottom:1.25rem;display:grid;position:relative}.gh-flow-item:last-child{padding-bottom:0}.gh-flow-rail{justify-content:flex-end;align-items:center;padding-right:1.1rem;display:flex;position:relative}.gh-flow-item:before{content:"";background:#0000001a;width:2px;position:absolute;top:0;bottom:0;left:92px;transform:translate(-1px)}.gh-flow-item:first-child:before{top:50%}.gh-flow-item:last-child:before{bottom:50%}.gh-flow-year{color:var(--text-light);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:700}.gh-flow-dot{background:var(--background-color);border:2px solid var(--brand-accent);width:11px;height:11px;transition:var(--transition);border-radius:50%;position:absolute;top:50%;right:0;transform:translate(50%,-50%)}.gh-flow-item:hover .gh-flow-dot{background:var(--brand-accent);box-shadow:0 0 0 5px var(--brand-accent-soft)}.gh-flow-item:hover .gh-flow-year{color:var(--text-color)}.gh-card{background:var(--surface-color);box-shadow:var(--shadow-soft);color:var(--text-color);transition:var(--transition);border-radius:20px;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 1.75rem;text-decoration:none;display:flex}.gh-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.gh-card-main{min-width:0}.gh-card-name{letter-spacing:-.01em;word-break:break-word;align-items:center;gap:.6rem;font-size:1.05rem;font-weight:600;display:inline-flex}.gh-card-icon{flex-shrink:0;font-size:1.1rem}.gh-card-description{color:var(--text-light);margin-top:.5rem;font-size:.94rem;line-height:1.55}.gh-card-meta{color:var(--text-light);align-items:center;gap:1.1rem;margin-top:.9rem;font-size:.82rem;font-weight:500;display:flex}.gh-card-language{align-items:center;gap:.45rem;display:inline-flex}.gh-card-language-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.gh-card-year{display:none}.gh-card-arrow{color:var(--text-light);opacity:.6;transition:var(--transition);flex-shrink:0;font-size:1.15rem}.gh-card:hover .gh-card-arrow{opacity:1;color:var(--brand-accent);transform:translate(2px,-2px)}@media (prefers-color-scheme:dark){.github-profile-link{border-color:#fff3}.gh-flow-item:before{background:#ffffff24}}@media (width<=768px){.github-header{align-items:flex-start;margin-bottom:2rem}.gh-flow-item{grid-template-columns:1fr;gap:0;padding-bottom:1rem}.gh-flow-item:before,.gh-flow-rail{display:none}.gh-card{padding:1.35rem 1.4rem}.gh-card-year{font-variant-numeric:tabular-nums;display:inline}}@media (prefers-reduced-motion:reduce){.gh-card:hover,.github-profile-link:hover,.gh-card:hover .gh-card-arrow{transform:none}}.grey-bg{background-color:var(--section-bg)}.about-stats-section{background:var(--background-color)}.about-section{background:radial-gradient(circle at 10% 10%, #007aff14, transparent 35%), radial-gradient(circle at 90% 80%, #007aff1a, transparent 40%), var(--background-color)}.about-grid{grid-template-columns:1.05fr 1fr;align-items:start;gap:2.2rem;display:grid}.about-kicker{color:var(--brand-accent-text);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.85rem;font-weight:700}.about-intro .section-title{margin-bottom:1.25rem}.about-cards{grid-template-columns:1fr;gap:1rem;display:grid}.about-card{background:var(--surface-color);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);transition:var(--transition);border-radius:20px;padding:1.5rem}.about-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.about-card h3{color:var(--text-color);margin-bottom:.5rem}.about-card p{color:var(--text-light)}.about-stats-grid{grid-template-columns:1.3fr 1fr;align-items:stretch;gap:1.5rem;display:grid}.about-stats-grid .about-card-large{grid-column:1}.about-stats-grid .pixel-card{grid-area:1/2/span 3}.about-card-large{background:var(--surface-color);box-shadow:var(--shadow-soft);transition:var(--transition);border-radius:28px;flex-direction:column;justify-content:center;padding:2.5rem;display:flex}.about-card-large:hover{box-shadow:var(--shadow-hover)}.about-card-heading{letter-spacing:-.02em;color:var(--text-color);max-width:18ch;margin-bottom:1.25rem;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:700;line-height:1.2}.about-card-body{color:var(--text-light);max-width:50ch;margin:0;font-size:1rem;line-height:1.65}.about-card-body+.about-card-body{margin-top:1rem}.clean-code-card,.duration-card{background:var(--surface-color);box-shadow:var(--shadow-soft);transition:var(--transition);border-radius:28px;flex-direction:column;gap:2.25rem;padding:2.5rem;display:flex;overflow:hidden}.clean-code-card:hover,.duration-card:hover{box-shadow:var(--shadow-hover)}.card-kicker{letter-spacing:-.01em;color:var(--text-color);font-size:1.05rem;font-weight:700}.code-stack{flex-direction:column;flex:1;gap:1.75rem;display:flex}.code-snippet+.code-snippet{border-top:1px solid #00000014;padding-top:1.75rem}.code-language{letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);background:#7d7d7d1f;border-radius:8px;margin-bottom:.9rem;padding:.2rem .6rem;font-size:.68rem;font-weight:700;display:inline-block}.code-block{margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:clamp(.8rem,1.25vw,.96rem);line-height:1.85;overflow-x:auto}.code-block code{min-width:max-content;display:block}.code-line{padding-left:calc(var(--indent,0) * 2.5ch);opacity:0;display:block;transform:translateY(6px)}.clean-code-card.is-active .code-line{animation:.45s cubic-bezier(.16,1,.3,1) forwards codeLineIn;animation-delay:calc(var(--line,0) * 80ms)}.code-token--tag{color:#d0392b}.code-token--key{color:#9333ea}.code-token--str{color:#15803d}.code-token--text{color:var(--text-color)}.code-token--punc{color:var(--text-light)}.code-token--comment{color:var(--text-light);font-style:italic}@keyframes codeLineIn{to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.code-snippet+.code-snippet{border-top-color:#ffffff1f}.code-token--tag{color:#ff6b5a}.code-token--key{color:#c084fc}.code-token--str{color:#4ade80}}.duration-swap{letter-spacing:-.035em;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:.15rem;font-weight:800;line-height:1.05;display:flex}.duration-word{display:inline-block;position:relative}.duration-word--from{color:var(--text-light);opacity:.45;font-size:clamp(2rem,4.6vw,3.35rem);transition:opacity .5s,transform .5s cubic-bezier(.16,1,.3,1);transform:translateY(8px)}.duration-card.is-active .duration-word--from{opacity:1;transform:translateY(0)}.duration-strike{background:currentColor;border-radius:999px;width:0;height:.085em;transition:width .55s cubic-bezier(.65,0,.35,1) .45s;position:absolute;top:52%;left:-.06em}.duration-card.is-active .duration-strike{width:calc(100% + .12em)}.duration-word--to{color:#0000;opacity:0;background-image:linear-gradient(100deg,#38bdf8 0%,#2563eb 55%,#1d4ed8 100%);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.75rem,6.4vw,4.5rem);transition:opacity .55s .95s,transform .55s cubic-bezier(.16,1,.3,1) .95s;transform:translateY(14px)}.duration-card.is-active .duration-word--to{opacity:1;transform:translateY(0)}.pixel-card{isolation:isolate;color:#fff;min-height:420px;box-shadow:var(--shadow-soft);transition:var(--transition);background-image:linear-gradient(197deg,#8a8a90 0%,#55555c 28%,#26262a 70%,#0b0b0d 100%);border-radius:28px;flex-direction:column;justify-content:center;padding:2.5rem;display:flex;position:relative;overflow:hidden}.pixel-card:hover{box-shadow:var(--shadow-hover)}.pixel-card-grid{z-index:-2;opacity:0;background-image:linear-gradient(90deg,#ffffff29 1px,#0000 1px),linear-gradient(#ffffff29 1px,#0000 1px);background-size:22px 22px;transition:opacity .9s,transform 1.2s cubic-bezier(.16,1,.3,1);position:absolute;inset:-1px;transform:scale(1.04)}.pixel-card.is-active .pixel-card-grid{opacity:1;transform:scale(1)}.pixel-card-glow{z-index:-1;pointer-events:none;background:radial-gradient(115% 70% at 88% 4%,#ffffff38 0%,#0000 58%),radial-gradient(90% 55% at 8% 100%,#0000006b 0%,#0000 62%);position:absolute;inset:0}.pixel-card-content{flex-direction:column;gap:1rem;display:flex;position:relative}.pixel-card-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#ffffffb8;opacity:0;font-size:.72rem;font-weight:700;transition:opacity .5s .15s,transform .5s cubic-bezier(.16,1,.3,1) .15s;transform:translateY(10px)}.pixel-card.is-active .pixel-card-eyebrow{opacity:1;transform:translateY(0)}.pixel-card-title{letter-spacing:-.03em;max-width:13ch;font-size:clamp(1.9rem,3.4vw,2.85rem);font-weight:700;line-height:1.12}.pixel-card-word{opacity:0;transition:opacity .55s,transform .6s cubic-bezier(.16,1,.3,1);transition-delay:calc(.3s + var(--word,0) * .1s);margin-right:.28em;display:inline-block;transform:translateY(16px)}.pixel-card.is-active .pixel-card-word{opacity:1;transform:translateY(0)}.pixel-card-footnote{color:#ffffffc7;opacity:0;max-width:30ch;font-size:.88rem;line-height:1.55;transition:opacity .55s .62s,transform .55s cubic-bezier(.16,1,.3,1) .62s;transform:translateY(10px)}.pixel-card.is-active .pixel-card-footnote{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.code-line,.duration-word--from,.duration-word--to,.pixel-card-grid,.pixel-card-eyebrow,.pixel-card-word,.pixel-card-footnote{opacity:1;transition:none;animation:none;transform:none}.duration-strike{transition:none}}footer{padding:8rem 0 max(7rem, calc(4rem + env(safe-area-inset-bottom,0px)));color:var(--text-color);text-align:center;background:0 0}.footer-content h2{letter-spacing:-.02em;margin-bottom:2rem;font-size:clamp(2rem,5vw,3rem);line-height:1.15}.contact-meta{color:var(--text-light);margin-top:1.15rem;font-size:.95rem}.contact-meta a{color:var(--text-light);text-decoration:none}.contact-meta a:hover{color:var(--brand-accent)}.contact-meta span{opacity:.5;margin:0 .5rem}.footer-links{border-top:1px solid var(--footer-border);color:var(--text-light);justify-content:space-between;margin-top:6rem;padding-top:2rem;display:flex}.footer-links p{color:var(--text-color)}.socials a{color:var(--text-color);margin-left:1.5rem;text-decoration:none;transition:color .25s}.socials a:hover{color:var(--brand-accent)}.loader{background:var(--surface-color);z-index:10000;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .5s;display:flex;position:fixed;top:0;left:0}.loader.hidden{opacity:0;pointer-events:none}.loader-content{text-align:center;flex-direction:column;align-items:center;display:flex}.loader-logo{color:var(--text-color);margin-bottom:2rem;font-size:3rem;font-weight:500;display:block}.progress-bar{background:#0000001a;border-radius:3px;width:200px;height:6px;margin-top:1rem;overflow:hidden}.progress{background:linear-gradient(90deg,#7cc8ff 0%,#007aff 50%,#0057d2 100%);border-radius:3px;width:0%;height:100%;transition:width .2s ease-out;box-shadow:0 0 8px #007aff73}@media (prefers-color-scheme:dark){.progress-bar{background:#333}}.scroll-reveal{opacity:0;transition:all 1s cubic-bezier(.16,1,.3,1);transform:translateY(50px)}.scroll-reveal.visible{opacity:1;transform:translateY(0)}.menu-toggle{background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;margin-right:-.75rem;padding:0;display:none}.menu-toggle .bar{background-color:var(--text-color);border-radius:2px;width:20px;height:2px;transition:transform .3s,opacity .3s;display:block}.menu-toggle.is-active .bar:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle.is-active .bar:nth-child(2){opacity:0}.menu-toggle.is-active .bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=768px){.container{padding:0 1.25rem}.section{padding:5rem 0}footer{padding:5rem 0 max(8rem, calc(6rem + env(safe-area-inset-bottom,0px)))}.footer-links{margin-top:3.5rem;padding-bottom:1.5rem}.navbar{padding:.75rem 0}.menu-toggle{display:flex}.nav-links{background:var(--surface-color);opacity:0;visibility:hidden;border-bottom:1px solid #7d7d7d2e;flex-direction:column;align-items:stretch;gap:0;padding:.25rem 1.25rem .75rem;transition:opacity .25s,transform .25s,visibility .25s;position:absolute;top:100%;left:0;right:0;transform:translateY(-8px);box-shadow:0 24px 40px #0000001f}.nav-links.active{opacity:1;visibility:visible;transform:translateY(0)}.nav-links li+li{border-top:1px solid #7d7d7d29}.nav-links a{padding:.95rem 0;font-size:1.05rem;display:block}.nav-links a:after{display:none}.hero{padding:6.5rem 1rem max(2.5rem, calc(2.5rem + env(safe-area-inset-bottom,0px)));min-height:100dvh}.hero-title{font-size:clamp(2rem,9vw,3.25rem)}.hero-portrait{width:clamp(150px,44vw,200px);height:clamp(150px,44vw,200px)}.hero-background-gradient{width:100vw;height:100vw}.bento-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:1.25rem}.bento-item.large,.bento-item.medium,.bento-item.wide{grid-column:span 1}.bento-item{min-height:320px;padding:1.5rem}.project-preview-overlay{align-items:flex-end;padding:.75rem}.project-preview-modal{overscroll-behavior:contain;grid-template-rows:none;grid-template-columns:1fr;max-height:90dvh;overflow-y:auto}.project-preview-media{min-height:220px;max-height:38vh}.project-preview-content{gap:1.25rem;padding:1.4rem;overflow-y:visible}.project-preview-content h3{font-size:1.5rem}.project-detail-facts{grid-template-columns:1fr 1fr}.project-detail-links{flex-direction:column}.project-detail-link{justify-content:center}.about-stats-grid{grid-template-columns:1fr;gap:1rem}.about-grid{grid-template-columns:1fr;gap:1.5rem}.about-stats-grid .pixel-card{grid-area:auto}.about-card-large,.clean-code-card,.duration-card,.pixel-card{padding:1.75rem}.clean-code-card,.duration-card{gap:1.75rem}.pixel-card{min-height:340px}.footer-links{text-align:center;flex-direction:column;gap:2rem}.footer-cta-actions{flex-direction:column;align-items:stretch}.footer-cta-actions a{text-align:center}.contact-meta{flex-direction:column;gap:.3rem;display:flex}.contact-meta span{display:none}.socials{margin-top:1rem}.socials a:first-child{margin-left:0}}.project-filters{flex-wrap:wrap;gap:.6rem;margin-top:-1rem;margin-bottom:2.5rem;display:flex}.project-filter{color:var(--text-light);transition:var(--transition);background:0 0;border:1px solid #7d7d7d40;border-radius:999px;padding:.55rem 1.15rem;font-size:.9rem;font-weight:500}.project-filter:hover{color:var(--text-color);border-color:var(--brand-accent)}.project-filter.is-active{background:var(--text-color);color:var(--inverse-text);border-color:var(--text-color)}.bento-empty{text-align:center;color:var(--text-light);background:var(--surface-color);border-radius:var(--border-radius);box-shadow:var(--shadow-soft);grid-column:1/-1;padding:3rem 1rem}@media (width<=640px){.section-title{margin-bottom:2rem;font-size:clamp(2.25rem,9vw,3rem)}}.projects-entry-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.projects-entry-card{background:var(--surface-color);text-align:left;box-shadow:var(--shadow-soft);min-height:260px;color:var(--text-color);border:0;border-radius:28px;flex-direction:column;gap:1.5rem;padding:2.25rem 2.25rem 2rem;font-family:inherit;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.projects-entry-card:before{content:"";background:radial-gradient(circle, var(--brand-accent-soft) 0%, transparent 70%);opacity:.6;pointer-events:none;border-radius:50%;width:70%;height:140%;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .4s;position:absolute;top:-40%;right:-30%}.projects-entry-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.projects-entry-card:hover:before{opacity:.85;transform:scale(1.08)translate(-4%,4%)}.projects-entry-top{z-index:1;justify-content:space-between;align-items:center;display:flex;position:relative}.projects-entry-count{background:var(--brand-accent-soft);color:var(--brand-accent-text);letter-spacing:.02em;border-radius:999px;align-items:center;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:inline-flex}.projects-entry-arrow{background:var(--background-color);width:42px;height:42px;color:var(--text-color);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;font-weight:500;transition:transform .4s cubic-bezier(.16,1,.3,1),background .25s,color .25s;display:inline-flex}.projects-entry-card:hover .projects-entry-arrow{background:var(--text-color);color:var(--inverse-text);transform:translate(6px)}.projects-entry-body{z-index:1;flex-direction:column;flex:1;gap:.65rem;display:flex;position:relative}.projects-entry-title{letter-spacing:-.02em;margin:0;font-size:clamp(1.55rem,2.6vw,2rem);font-weight:700;line-height:1.15}.projects-entry-description{color:var(--text-light);max-width:32ch;margin:0;font-size:1rem;line-height:1.55}.projects-entry-cta{z-index:1;color:var(--text-light);letter-spacing:.02em;font-size:.9rem;font-weight:500;transition:color .25s;position:relative}.projects-entry-card:hover .projects-entry-cta{color:var(--brand-accent)}@media (width<=720px){.projects-entry-grid{grid-template-columns:1fr;gap:1rem}.projects-entry-card{min-height:220px;padding:1.75rem 1.75rem 1.5rem}.projects-entry-arrow{width:38px;height:38px}}.page-back-button{color:var(--text-light);transition:var(--transition);background:0 0;border:1px solid #7d7d7d4d;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.45rem 1rem;font-size:.9rem;font-weight:500;display:inline-flex}.page-back-button:hover{color:var(--text-color);border-color:var(--brand-accent)}.page-back-button span{transition:transform .25s}.page-back-button:hover span{transform:translate(-3px)}.bento-placeholder{color:#ffffffd9;letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;width:100%;height:100%;font-size:.95rem;font-weight:600;transition:transform .6s cubic-bezier(.16,1,.3,1);display:flex;transform:scale(1.02)}.bento-item:hover .bento-placeholder{transform:scale(1.06)}.bento-placeholder-label{opacity:.85}.tool-groups{grid-template-columns:repeat(2,1fr);gap:2rem;display:grid}.tool-group{background:var(--surface-color);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);transition:var(--transition);border-radius:24px;padding:1.75rem}.tool-group:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.tool-group--wide{grid-column:1/-1}.tool-group-title{color:var(--brand-accent-text);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.25rem;font-size:1.1rem;font-weight:600}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.85rem;list-style:none;display:grid}.tool-card{transition:var(--transition);background:#7d7d7d0d;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;display:flex}.tool-card:hover{background:#7d7d7d1a;border-color:#007aff59;transform:translateY(-3px)}.tool-logo{justify-content:center;align-items:center;font-size:2rem;line-height:1;transition:transform .3s;display:flex}.tool-logo--mono{color:var(--text-color)}.tool-card:hover .tool-logo{transform:scale(1.1)}.tool-name{color:var(--text-light);text-align:center;text-wrap:balance;font-size:.8rem;font-weight:500;line-height:1.3}@media (prefers-color-scheme:dark){.tool-card{background:#ffffff0a}.tool-card:hover{background:#ffffff14}}@media (width<=768px){.tool-groups{grid-template-columns:1fr;gap:1.25rem}.tool-group{padding:1.25rem}}.footer-cta-subtitle{color:var(--text-light);max-width:540px;margin:-1rem auto 2.5rem;font-size:1.05rem;line-height:1.55}.contact-form{text-align:left;flex-direction:column;gap:1.1rem;max-width:620px;margin:0 auto 2rem;display:flex}.contact-form-row{grid-template-columns:1fr 1fr;gap:1.1rem;display:grid}.contact-field{flex-direction:column;gap:.4rem;display:flex}.contact-field label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);font-size:.8rem;font-weight:600}.contact-field input,.contact-field textarea{width:100%;color:var(--text-color);background:var(--background-color);resize:vertical;border:1px solid #7d7d7d33;border-radius:14px;padding:.85rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .25s,box-shadow .25s,background .25s}.contact-field textarea{min-height:140px;line-height:1.55}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--text-light);opacity:1}.contact-field input:hover,.contact-field textarea:hover{border-color:#007aff80}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--brand-accent);background:var(--surface-color);outline:none;box-shadow:0 0 0 4px #007aff26}.contact-field input:disabled,.contact-field textarea:disabled{opacity:.6;cursor:not-allowed}.contact-honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.contact-form-actions{flex-direction:column;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.contact-form-actions .btn-primary.large{border:0}.contact-form-actions .btn-primary.large:disabled{opacity:.65;cursor:not-allowed;transform:none}.contact-form-status{text-align:center;margin:0;font-size:.95rem;line-height:1.5;animation:.3s ease-out contactStatusFadeIn}.contact-form-status.is-success{color:var(--brand-accent-text);font-weight:500}.contact-form-status.is-error{color:#b91c1c}@media (prefers-color-scheme:dark){.contact-form-status.is-error{color:#f87171}}@keyframes contactStatusFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.contact-form-row{grid-template-columns:1fr;gap:1.1rem}}.footer-cta-divider{max-width:420px;color:var(--text-light);letter-spacing:.04em;align-items:center;gap:1rem;margin:1.5rem auto 1.25rem;font-size:.85rem;display:flex}.footer-cta-divider:before,.footer-cta-divider:after{content:"";background:#7d7d7d40;flex:1;height:1px}@media (prefers-reduced-motion:reduce){.project-preview-overlay,.project-preview-overlay.is-closing,.project-preview-modal,.project-preview-modal.is-closing{opacity:1;animation:none;transform:none}}
