*{box-sizing:border-box}html,body{height:100%;margin:0;scroll-behavior:smooth}img{max-width:100%;display:block}button,input,textarea{font:inherit;border:none;background:none}:root{--bg: #000000;--surface: #11172a;--surface-hover: #1b2440;--text: #fdfdfd;--muted: #94a3b8;--primary: #6c63ff;--accent: #00d4a6;--ring: rgba(108, 99, 255, .45);--radius: 1rem;--transition: .25s ease}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:radial-gradient(600px 500px at 90% 0,#400019 0%,transparent 70%),radial-gradient(600px 500px at 10% 0,#00313a 0%,transparent 70%),var(--bg);color:var(--text)}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:16px;top:16px;background:#fff;color:#111;padding:.5rem .75rem;border-radius:.5rem}.page-container{display:flex;flex-direction:column;height:100%}.center-page-content{display:flex;flex-direction:column;align-items:center}#app{width:100%;height:100%}.me-image{width:200px;height:180px;border-radius:50%;margin-bottom:20px;object-fit:contain}.intro-text{max-width:100%;overflow-x:hidden;padding-inline:0}.intro-text h1{font-size:2rem;line-height:1.25;margin-bottom:.4rem}.intro-text h2{font-size:1.2rem;line-height:1.45;font-weight:500;margin-bottom:.6rem}.intro-text p.muted{font-size:.95rem;line-height:1.5;opacity:.75;margin:.2rem 0}@media (max-width: 768px){.intro-text h1{font-size:1.6rem;line-height:1.25}.intro-text h2{font-size:1.05rem;line-height:1.4}.intro-text p.muted{font-size:.9rem;line-height:1.45}}.row{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center}.col{display:flex;flex-direction:column}.center-col-h{justify-self:center;align-items:center}.align-bottom{align-items:end}.w-full{width:100%}.text-center{text-align:center}.mt-10{margin-top:10px}.relative{position:relative}.px-2rem{padding-right:2rem;padding-left:2rem}.pt-2rem{padding-top:2rem}.pb-2rem{padding-bottom:2rem}.layout{display:flex;flex-direction:column;overflow:auto;height:100%;padding:20px}main{height:100%;display:flex}.site-header,.site-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;max-width:1200px;margin:0 auto}.site-footer{opacity:.8}.navigation-app{position:fixed;bottom:10px;width:100%;display:flex;justify-content:center;height:60px}.navigation-app-container{background:linear-gradient(180deg,#0f192f,#0b1224);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(255,255,255,.2);border-radius:20px;display:flex;flex-direction:row;padding:1px 0;width:50%;box-shadow:0 10px 25px #0006;transition:transform .3s ease,box-shadow .3s ease}.navigation-app-container:hover{transform:translateY(-5px);box-shadow:0 20px 40px #00000080}.navigation-app-container nav{width:100%;padding:0 20px}nav ul{display:flex;gap:.5rem;list-style:none;margin:0;padding:0;justify-content:space-around;align-items:center;height:100%}nav a{position:relative;display:inline-block;padding:.5rem .75rem;border-radius:999px;color:var(--text);text-decoration:none;font-size:20px;transition:color .3s ease,background .3s ease,border-color .3s ease}nav a:not(.logo):after{content:"";position:absolute;bottom:4px;left:0;width:100%;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:center;opacity:0;transition:transform .3s ease,opacity .3s ease;border-radius:20px}nav a.active:not(.logo):after,nav a[aria-current=page]:not(.logo):after{transform:scaleX(1);opacity:1}.logo{position:relative;display:flex;align-items:center;justify-content:center;padding:2px;border-radius:50%;color:var(--text);text-decoration:none;border:1px solid transparent;z-index:2}nav .logo:after{content:"";position:absolute;top:50%;left:50%;width:62px;height:62px;border-radius:50%;border:2px solid var(--primary);transform:translate(-50%,-50%) scale(.9);opacity:0;transition:transform .35s ease,opacity .35s ease;pointer-events:none;z-index:1}nav .logo[aria-current=page]:after{transform:translate(-50%,-50%) scale(1);opacity:1;box-shadow:0 0 18px color-mix(in srgb,var(--primary) 60%,transparent);animation:logoPulse 2.2s ease-in-out infinite}nav .logo[aria-current=page] img{box-shadow:0 0 22px color-mix(in srgb,var(--primary) 55%,transparent);border-radius:50%;transition:box-shadow .35s ease;position:relative;z-index:3}@keyframes logoPulse{0%,to{box-shadow:0 0 18px color-mix(in srgb,var(--primary) 60%,transparent);transform:translate(-50%,-50%) scale(.8)}50%{box-shadow:0 0 32px color-mix(in srgb,var(--primary) 90%,transparent);transform:translate(-50%,-50%) scale(.9)}}nav a:focus-visible{outline:3px solid var(--ring);outline-offset:2px}nav a.active:not(.logo),nav a[aria-current=page]:not(.logo){color:var(--primary);text-shadow:0 0 6px color-mix(in srgb,var(--primary) 60%,transparent);animation:textPulse 2.2s ease-in-out infinite}@keyframes textPulse{0%,to{text-shadow:0 0 6px color-mix(in srgb,var(--primary) 60%,transparent),0 0 12px color-mix(in srgb,var(--primary) 30%,transparent)}50%{text-shadow:0 0 10px color-mix(in srgb,var(--primary) 90%,transparent),0 0 20px color-mix(in srgb,var(--primary) 60%,transparent)}}.nav-wheel{position:fixed;bottom:25px;left:50%;transform:translate(-50%);width:200px;height:200px;border-radius:50%;-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background:linear-gradient(180deg,#0f192f,#0b1224);border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 30px #00000073;display:flex;justify-content:center;align-items:center;z-index:999}.wheel{position:relative;width:200px;height:200px;transition:transform .6s cubic-bezier(.25,.8,.25,1);border-radius:50%}.nav-item{position:absolute;left:50%;top:80%;transform-origin:0 -70px;transform:rotate(var(--angle)) translate(-50%,-50%);background:transparent;border:none;color:var(--text);font-size:17px;cursor:pointer;transition:color .3s ease,transform .3s ease,text-shadow .3s ease}.nav-item.active{color:var(--primary);font-weight:600;text-shadow:0 0 8px color-mix(in srgb,var(--primary) 60%,transparent),0 0 16px color-mix(in srgb,var(--primary) 40%,transparent);transform:rotate(var(--angle)) translate(-50%,-50%) scale(1.3)}.wheel-center{position:absolute;width:85px;height:85px;border-radius:50%;background:#0c1428;border:2px solid rgba(255,255,255,.15);box-shadow:0 0 16px #00000080;display:flex;justify-content:center;align-items:center;z-index:3}.wheel-center img{width:70%;height:70%;border-radius:50%;box-shadow:0 0 18px color-mix(in srgb,var(--primary) 50%,transparent);transition:transform .3s ease}.wheel-center img:hover{transform:scale(1.08)}@media (max-width: 500px){.nav-wheel{width:220px;height:220px}.wheel{width:170px;height:170px}}@media (max-width: 768px){.navigation-app-container{width:90%;height:72px;padding:8px 14px;border-radius:18px;box-shadow:0 8px 20px #00000073}#portfolio-nav .nav-item{width:28px;height:28px}#portfolio-nav .nav-item.active{transform:scale(1.25)}}.carousel{position:relative;overflow:hidden;border-radius:1.25rem;background:linear-gradient(180deg,#002335,#04050b)}.carousel__viewport{overflow:hidden;touch-action:pan-y pinch-zoom;will-change:transform;height:100%}.carousel__container{display:flex;height:100%;width:100%}.slide{flex:0 0 100%;height:100%;display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;padding:clamp(24px,5vw,48px) clamp(24px,5vw,48px) calc(clamp(24px,5vw,48px) + 20px);overflow-y:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.slide h1,.slide h2{margin:.2rem 0}.kpi{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 768px){.slide{padding-bottom:104px}}:root{--bg: #0b0f1a;--card-bg: #111727;--text: #e4e7ee;--subtle: #b6bad0;--primary: #4fcde7;--accent: #e14fad}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,sans-serif}.landing section{padding:clamp(60px,12vw,140px) clamp(16px,6vw,120px)}.hero{text-align:center;background:radial-gradient(circle at 50% 20%,#18223e,transparent 60%)}.title{font-size:clamp(34px,5vw,58px);font-weight:800;text-shadow:0 0 20px rgba(79,205,231,.2)}.subtitle{font-size:1.2rem;opacity:.85;margin-top:20px}.cta{gap:10px;row-gap:10px;display:flex;justify-content:center}.cta .btn{padding:14px 32px;margin:0 10px;font-size:1.1rem;border:none;border-radius:12px;cursor:pointer;transition:.25s ease}.btn.primary{background:var(--primary);color:#000;font-weight:600;box-shadow:0 0 20px #4fcde766}.btn.secondary{background:transparent;border:1px solid var(--primary);color:var(--primary)}.value{text-align:center;max-width:900px;margin:auto}.value-desc{opacity:.85;margin-top:10px}.services h2,.benefits h2,.final-cta h2{text-align:center;margin-bottom:40px}.service-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.service-card{text-align:center;display:flex;flex-direction:column;justify-content:center;background:var(--card-bg);padding:30px;border-radius:16px;border:1px solid rgba(255,255,255,.06);transition:.25s ease}.service-card:hover{transform:translateY(-6px);border-color:var(--primary);box-shadow:0 0 18px #4fcde726}.benefits-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.benefit h4{margin-bottom:10px}.final-cta{text-align:center}.final-cta .btn.large{padding:18px 42px;font-size:1.2rem;margin-top:20px}.footer{padding:40px;opacity:.6;text-align:center}.legal{max-width:900px;margin:0 auto;padding:2rem 1.5rem;line-height:1.7}.legal h1{font-size:2rem;margin-bottom:1rem}.legal h2{margin-top:2rem;font-size:1.3rem}.legal p,.legal li{margin-top:.5rem}.legal ul{padding-left:1.2rem}.legal-links{margin-top:.5rem}.legal-links a{color:inherit;text-decoration:underline}@media (max-width: 768px){.cta{display:flex;flex-direction:column;text-align:center;justify-items:center}}.btn{align-items:center;gap:.5rem;padding:.6rem .9rem;border-radius:.75rem;color:var(--text);background:var(--primary);border:1px solid transparent;text-decoration:none;transition:background var(--transition)}.btn.ghost{background:transparent;border-color:#263450}.btn-transparent{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem .9rem;border-radius:.75rem;color:var(--text);background:transparent;border:1px solid transparent;text-decoration:none;transition:border-color .25s ease,background .25s ease,transform .15s ease}.btn-transparent:hover{border-color:color-mix(in srgb,var(--primary) 40%,transparent);background:color-mix(in srgb,var(--primary) 6%,transparent);transform:translateY(-1px);cursor:pointer}.chip{border:1px solid #263450;padding:.35rem .6rem;border-radius:999px;color:var(--muted);font-size:.75rem}.card{position:relative;background:radial-gradient(125% 125% at 50% 10%,#0b1224 30%,#000 90%);border:1px solid color-mix(in srgb,var(--primary) 20%,#1e293b);border-radius:var(--radius);padding:1.2rem;transition:transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;gap:.75rem}.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 40%,#334155);box-shadow:0 0 12px color-mix(in srgb,var(--primary) 20%,transparent)}.card h3{font-size:1.1rem;margin:0}.card .tagline{font-size:.9rem;opacity:.75;margin:0}.card .desc{font-size:.95rem;line-height:1.45;opacity:.9;margin:0}.card .tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.25rem 0 .1rem}.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem}.card .role{font-size:.85rem;opacity:.7}.card .status{font-size:.75rem;color:var(--primary);opacity:.8}@media (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 40%,#334155);box-shadow:0 0 12px color-mix(in srgb,var(--primary) 20%,transparent)}}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,3fr));gap:1.2rem;padding:1rem 0}@media (max-width: 768px){.card-grid{grid-template-columns:1fr;gap:1rem;padding:.6rem 0}.card{padding:1rem;border-radius:calc(var(--radius) - 4px);gap:.65rem}.card h3{font-size:1rem}.card .desc,.card .tagline,.card .role,.card .status{font-size:.9rem;opacity:.85}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:999}.modal-backdrop.active{opacity:1;pointer-events:all}.modal{background:color-mix(in srgb,var(--surface),black 5%);width:80%;padding:0;border-radius:1rem;box-shadow:0 4px 24px #0006;overflow-y:auto;height:80%}.modal .close{position:absolute;top:1rem;right:1.2rem;color:var(--text);font-size:1.2rem;cursor:pointer}.modal-header{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,#0b1224f2,#0b1224d9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:.5rem;margin-bottom:.75rem}.modal-desc{opacity:.9}.stack-list{margin:.75rem 0;display:flex;gap:.4rem;flex-wrap:wrap}.modal-section{margin-top:1rem}.gallery{margin-top:1rem;display:grid;gap:1rem}.modal-actions{display:flex;gap:.5rem;margin-top:1.5rem}.btn.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none;filter:grayscale(1)}.modal-media-carousel{position:relative;overflow:hidden;border-radius:14px;margin-top:1.5rem}.modal-media-carousel .carousel-track{display:flex;transition:transform .35s ease;width:100%}.modal-media-carousel .carousel-item{flex:0 0 100%;display:flex;justify-content:center;align-items:center}.modal-media-carousel img,.modal-media-carousel video{width:100%;border-radius:14px;object-fit:contain;max-height:360px}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#0f141e8c;border:none;color:#fff;font-size:2rem;padding:.25rem .75rem;border-radius:8px;cursor:pointer;z-index:10}.carousel-btn.prev{left:10px}.carousel-btn.next{right:10px}.carousel-btn:hover{background:#ffffff40}.modal-media-carousel:fullscreen{background:#000;display:flex;justify-content:center;align-items:center}.modal-media-carousel:fullscreen .carousel-track{height:100vh}.modal-media-carousel:fullscreen .carousel-item{display:flex;justify-content:center;align-items:center}.modal-media-carousel:fullscreen img,.modal-media-carousel:fullscreen video{width:auto!important;height:auto!important;max-width:100vw!important;max-height:100vh!important;object-fit:contain!important}.toast-container{position:fixed;top:1rem;right:0;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:2000}.toast{background:color-mix(in srgb,var(--primary) 15%,#000);color:#fff;padding:.6rem 1rem;border-radius:.75rem;font-size:.85rem;box-shadow:0 2px 8px #00000040;opacity:0;transform:translateY(-20px);animation:toastIn .3s ease forwards,toastOut .4s ease 2.5s forwards}.icon-home{max-width:100%;max-height:100%}.icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;will-change:transform;animation:buzzX var(--buzz-duration, 15s) ease-in-out infinite;animation-delay:var(--buzz-delay, 0s)}.icon-wrapper img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;will-change:transform;animation:floatY var(--float-duration, 18s) ease-in-out infinite;animation-delay:var(--float-delay, 0s);transform-origin:center}@media (max-width: 768px){.icon-wrapper{width:34px;height:34px}}.about-me-resume{padding:10px 30px;text-align:center}#skills-area{position:relative}#skills-orbital{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#skills-orbital canvas{position:absolute;z-index:1}#skills-bubbles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.bubble{position:absolute;top:-20px;left:50%;width:85%;max-width:820px;opacity:0;pointer-events:none;transform:translate(-50%) translateY(-20px) scale(.95);background:#ffffff0f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:20px;border:1px solid rgba(255,255,255,.2);padding:0;overflow:hidden;transition:opacity .35s ease,transform .35s ease,padding .35s ease;z-index:15}.bubble.active{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0) scale(1);padding:24px 32px}.bubble ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:10px 26px}.bubble li{opacity:0;transform:translateY(10px);color:#e8faff;font-size:.85rem;padding-left:18px;position:relative;transition:opacity .35s ease,transform .35s ease}.bubble li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:#7fffd4;box-shadow:0 0 6px #7fffd4}.bubble.active li:nth-child(1){opacity:1;transform:translateY(0);transition-delay:.05s}.bubble.active li:nth-child(2){opacity:1;transform:translateY(0);transition-delay:.1s}.bubble.active li:nth-child(3){opacity:1;transform:translateY(0);transition-delay:.15s}.bubble.active li:nth-child(4){opacity:1;transform:translateY(0);transition-delay:.2s}.bubble.active li:nth-child(5){opacity:1;transform:translateY(0);transition-delay:.25s}.bubble.active li:nth-child(6){opacity:1;transform:translateY(0);transition-delay:.3s}.bubble.active li:nth-child(7){opacity:1;transform:translateY(0);transition-delay:.35s}.bubble.active li:nth-child(8){opacity:1;transform:translateY(0);transition-delay:.4s}.bubble.active li:nth-child(9){opacity:1;transform:translateY(0);transition-delay:.45s}.bubble.active li:nth-child(10){opacity:1;transform:translateY(0);transition-delay:.5s}.bubble.active li:nth-child(11){opacity:1;transform:translateY(0);transition-delay:.55s}.bubble.active li:nth-child(12){opacity:1;transform:translateY(0);transition-delay:.6s}@media (max-width: 720px){.bubble{top:-20px;left:50%;width:94%;max-width:none;padding:18px 20px;transform:translate(-50%) translateY(-15px) scale(.96)}.bubble.active{transform:translate(-50%) translateY(0) scale(1)}.bubble ul{grid-template-columns:1fr;gap:8px 0}.bubble li{font-size:.9rem;line-height:1.35}}@media (min-width: 1440px){.bubble{max-width:960px;padding:28px 40px}.bubble ul{grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px 34px}.bubble li{font-size:1rem}}#skills-controls{position:absolute;top:20px;right:-10px;display:flex;gap:10px;flex-direction:column;z-index:2000}.ctrl-btn{background:#ffffff1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);width:38px;height:38px;border-radius:8px;font-size:19px;color:#e6ffff;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:all .25s ease;position:relative}.ctrl-btn:hover{background:#ffffff38;transform:scale(1.08)}#global-tooltip{position:fixed;pointer-events:none;z-index:999999;padding:6px 10px;background:#0f1e2deb;color:#eaffff;font-size:12px;border-radius:6px;opacity:0;transform:translate(-50%,-70%);transition:opacity .2s ease;white-space:nowrap;-webkit-backdrop-filter:blur(8px) saturate(140%);backdrop-filter:blur(8px) saturate(140%);border:1px solid rgba(255,255,255,.18)}.ctrl-btn:hover:after{opacity:1}@keyframes buzzX{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(3px) rotate(1.2deg)}20%{transform:translate(-3px) rotate(-1.2deg)}50%{transform:translate(0) rotate(0)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(var(--float-amp, -6px))}}@keyframes toastIn{to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(20px)}}
