@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Bricolage+Grotesque:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&family=Poppins:wght@400;500;600;700;800&display=swap";.loader-screen{z-index:99999;background:#030303;justify-content:center;align-items:center;transition:opacity .6s,visibility .6s;display:flex;position:fixed;inset:0}.loader-screen.loader-fadeout{opacity:0;visibility:hidden;pointer-events:none}.loader-content{text-align:center;z-index:2;position:relative}.loader-text-scramble{letter-spacing:.12em;color:#f0f0ec;text-shadow:0 0 40px #5555ff4d,0 0 80px #5555ff1a;white-space:nowrap;min-height:1.3em;font-family:Bricolage Grotesque,Inter,sans-serif;font-size:clamp(2rem,6vw,4.5rem);font-weight:800}.loader-line{background:linear-gradient(90deg, var(--accent,#55f), var(--accent2,#ff5580));border-radius:2px;width:0;height:2px;margin:1.2rem auto 0;animation:2.2s cubic-bezier(.22,1,.36,1) .4s forwards loaderLineGrow}@keyframes loaderLineGrow{to{width:220px}}@keyframes pulse{0%{box-shadow:0 0 #4ade80b3}70%{box-shadow:0 0 0 10px #4ade8000}to{box-shadow:0 0 #4ade8000}}.loader-subtitle{letter-spacing:.35em;text-transform:uppercase;color:#f0f0ec59;opacity:0;margin-top:1rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:400;animation:.6s 1.6s forwards fadeUp}.loader-scanline{pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff04 2px 4px);position:absolute;inset:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--text:#0f172a;--muted:#64748b;--border:#0f172a0a;--card:#fff;--accent:#6366f1;--accent2:#ec4899;--accent3:#10b981;--font:"Inter", sans-serif;--display:"Bricolage Grotesque", sans-serif;--mono:"JetBrains Mono", monospace;--shadow:0 10px 40px -10px #0000000f;--grid-color:#00000005}[data-theme=dark]{--bg:#030303;--text:#f8fafc;--muted:#94a3b8;--border:#ffffff0f;--card:#ffffff05;--shadow:0 10px 40px -10px #00000080;--grid-color:#ffffff08}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--text);font-family:var(--font);cursor:none;min-height:100vh;transition:background-color .4s,color .4s;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:999;background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);background-size:40px 40px,40px 40px;position:fixed;inset:0}[data-theme=dark] body:before{background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px), url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.05;background-size:40px 40px,40px 40px,200px 200px}.atmospheric-container{z-index:-2;pointer-events:none;filter:blur(100px);position:fixed;inset:0;overflow:hidden}.atmospheric-shape{will-change:transform, opacity;border-radius:50%;position:absolute}#spotlight{pointer-events:none;z-index:1;opacity:0;will-change:transform;background:radial-gradient(circle,#6366f114 0%,#0000 70%);width:800px;height:800px;transition:opacity 1s;position:fixed;top:0;left:0}.custom-cursor{pointer-events:none;z-index:9999999;mix-blend-mode:difference;-webkit-backdrop-filter:none;will-change:transform;transform-origin:50%;backface-visibility:hidden;width:80px;height:80px;transform-style:preserve-3d;pointer-events:none;background-color:#fff;border:none;border-radius:50%;margin:-40px 0 0 -40px;position:fixed;top:0;left:0}[data-theme=dark] .custom-cursor,.custom-cursor.active{background-color:#fff}a,button,.dock-link,.interactive,p:hover,h1:hover,h2:hover,h3:hover,h4:hover,h5:hover,h6:hover,span:hover,li:hover,label:hover,strong:hover{transform-origin:50%;display:inline-block}a:hover,button:hover,.dock-link:hover,.interactive:hover{z-index:99}@media (width<=1024px){.custom-cursor{display:none!important}}#prog{background:linear-gradient(90deg, var(--accent), var(--accent2));z-index:9998;border-radius:0 2px 2px 0;width:0%;height:3px;transition:width .1s;position:fixed;top:0;left:0}#spotlight{pointer-events:none;z-index:1;opacity:0;will-change:transform;background:radial-gradient(circle,#5555ff12 0%,#0000 70%);width:600px;height:600px;transition:opacity .4s;position:fixed;top:0;left:0;transform:translate(-100%,-100%)}[data-theme=dark] #spotlight{opacity:1;background:radial-gradient(circle,#5555ff21 0%,#0000 70%)}nav{z-index:500;justify-content:space-between;align-items:center;padding:1.3rem 2.5rem;transition:background .3s;display:flex;position:fixed;top:0;left:0;right:0}nav.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#fff9}[data-theme=dark] nav.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#03030399}.nav-logo{background:linear-gradient(135deg, var(--accent), #a78bfa);width:58px;height:58px;font-family:var(--display);color:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;font-weight:800;animation:.6s cubic-bezier(.34,1.56,.64,1) both popIn;display:flex}.nav-links{align-items:center;gap:2rem;list-style:none;display:flex}.nav-links li{animation:.5s both fadeDown}.nav-links li:nth-child(n){animation-delay:calc(80ms * var(--i,1))}.nav-links a{color:var(--text);font-size:.92rem;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:2px;transition:width .25s;position:absolute;bottom:-3px;left:0}.nav-links a:hover{color:var(--accent)}.nav-links a:hover:after{width:100%}.theme-btn{border:2px solid var(--border);background:var(--card);cursor:none;border-radius:999px;width:44px;height:26px;transition:background .3s;position:relative}.theme-btn:after{content:"";background:var(--accent);border-radius:50%;width:18px;height:18px;transition:transform .3s;position:absolute;top:2px;left:2px}[data-theme=dark] .theme-btn:after{transform:translate(18px)}.nav-clock{font-family:var(--mono);color:var(--muted);letter-spacing:.05em;font-size:.75rem}.side-dock{z-index:400;flex-direction:column;align-items:center;gap:.7rem;display:flex;position:fixed;bottom:3rem;left:1.8rem}.side-dock:after{content:"";background:var(--border);width:1px;height:60px;margin-top:.4rem}.dock-link{background:var(--card);border:1px solid var(--border);width:36px;height:36px;color:var(--text);opacity:0;border-radius:10px;justify-content:center;align-items:center;font-size:.95rem;text-decoration:none;transition:transform .2s,background .2s,color .2s,border-color .2s;animation:.5s both fadeUp;display:flex}.dock-link:first-child{animation-delay:.8s}.dock-link:nth-child(2){animation-delay:.9s}.dock-link:nth-child(3){animation-delay:1s}.dock-link:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.25)translate(4px)}.section-dots{z-index:400;flex-direction:column;gap:.7rem;display:flex;position:fixed;top:50%;right:1.8rem;transform:translateY(-50%)}.section-dot{background:var(--border);cursor:none;border-radius:50%;width:8px;height:8px;transition:background .3s,transform .3s;position:relative}.section-dot.active{background:var(--accent);transform:scale(1.4)}.section-dot:before{content:attr(data-label);color:var(--accent);white-space:nowrap;opacity:0;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.15rem .4rem;font-size:.68rem;font-weight:600;transition:opacity .2s;position:absolute;top:50%;right:1.4rem;transform:translateY(-50%)}.section-dot:hover:before{opacity:1}#net-canvas{pointer-events:none;z-index:0;position:fixed;inset:0}section{z-index:2;min-height:100vh;padding:6rem 8rem 4rem;position:relative}#home{flex-direction:column;justify-content:center;display:flex}.hero-role-row{opacity:0;align-items:center;gap:.8rem;margin-bottom:1.2rem;animation:.6s .2s forwards fadeUp;display:flex}.hero-role{letter-spacing:.02em;font-size:2.5rem;font-weight:500}.btn-cv{background:var(--text);color:var(--bg);border-radius:7px;align-items:center;gap:.4rem;padding:.5rem 1.3rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .2s;display:inline-flex;position:relative;overflow:hidden}.btn-cv:before{content:"";background:#fff3;transition:transform .4s;position:absolute;inset:0;transform:translate(-100%)skew(-15deg)}.btn-cv:hover:before{transform:translate(120%)skew(-15deg)}.btn-cv:hover{transform:translateY(-2px)}.hero-heading{letter-spacing:normal;color:#000;max-width:100%;font-family:Poppins,sans-serif;font-size:clamp(2.2rem,4.5vw,4rem);font-weight:600;line-height:1.15}[data-theme=dark] .hero-heading{color:#f0f0ec}.hero-word{cursor:default;margin-right:.18em;display:inline-block}.hero-letter{transition:transform .3s,color .3s;display:inline-block}.hero-letter.float{transform:translateY(-8px)}.word{opacity:1;animation:.55s cubic-bezier(.22,1,.36,1) both wordIn;display:inline-block}@keyframes wordIn{0%{opacity:0;transform:translateY(38px)rotate(2.5deg)}}.hero-sub{max-width:600px;color:var(--muted);opacity:0;margin-top:2.5rem;font-size:1.15rem;font-weight:400;line-height:1.7;animation:.6s 1.1s forwards fadeUp}.hero-intro{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.8rem;font-size:1.1rem;font-weight:500;display:block}.typewriter-line{color:var(--accent);letter-spacing:-.01em;min-height:2em;margin-bottom:1.2rem;font-size:1.8rem;font-weight:700;line-height:1.2;display:block}[data-theme=dark] .typewriter-line{color:#60a5fa}.hero-desc{color:var(--muted);max-width:550px;font-size:1.15rem;line-height:1.7}.mobile-only{display:none}@media (width<=768px){.mobile-only{display:block}}.cursor-blink{background:var(--accent);vertical-align:text-bottom;border-radius:2px;width:4px;height:1.2em;margin-left:6px;animation:.7s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.scroll-hint{color:#000;opacity:0;flex-direction:column;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;animation:.6s 1.4s forwards fadeUp;display:flex;position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%)}[data-theme=dark] .scroll-hint{color:#fff}.scroll-arrow{animation:1.6s ease-in-out infinite bounceDown}@keyframes bounceDown{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}.stats-strip{z-index:2;border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid;position:relative}.stat-box{border-right:1px solid var(--border);padding:2.5rem 3rem;transition:background .25s}.stat-box:last-child{border-right:none}.stat-box:hover{background:var(--card)}.stat-num{font-family:var(--display);font-size:3.2rem;font-weight:800;line-height:1}.stat-num span{color:var(--accent)}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.4rem;font-size:.72rem;font-weight:600}.marquee-wrap{white-space:nowrap;border-bottom:1px solid var(--border);z-index:2;padding:1.1rem 0;position:relative;overflow:hidden}.marquee-track{animation:24s linear infinite marquee;display:inline-flex}.marquee-item{font-family:var(--display);color:var(--muted);padding:0 2rem;font-size:1rem;font-weight:700}.marquee-item .dot{color:var(--accent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.section-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-size:.78rem;font-weight:600}.section-title{font-family:var(--display);letter-spacing:-.03em;color:var(--text);margin-bottom:3rem;font-size:clamp(2.2rem,5vw,4.2rem);font-weight:800}.split-title .word{opacity:0;transition:opacity .5s,transform .5s;display:inline-block;transform:translateY(28px)}.split-title.vis .word{opacity:1;transform:none}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(28px)}.reveal.vis{opacity:1;transform:none}.d1{transition-delay:70ms}.d2{transition-delay:.14s}.d3{transition-delay:.21s}#skills{min-height:auto;padding-top:5rem}.skills-rings-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem;display:grid}.skill-ring-card{background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;border-radius:20px;align-items:center;gap:1.5rem;padding:2rem;transition:opacity .55s,transform .55s,box-shadow .3s,border-color .3s;display:flex;transform:translateY(24px)}.skill-ring-card.vis{opacity:1;transform:none}.skill-ring-card:hover{box-shadow:var(--shadow);border-color:#6366f166;transform:translateY(-5px)}.ring-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.ring-icon{pointer-events:none;object-fit:contain;width:36px;height:36px;transition:opacity .4s,transform .4s;position:absolute}.skill-ring-card:hover .ring-icon{opacity:0;transform:scale(.8)}.ring-pct-inner{font-family:var(--mono);color:var(--accent);opacity:0;pointer-events:none;font-size:.95rem;font-weight:700;transition:opacity .4s,transform .4s;position:absolute;transform:scale(.8)}.skill-ring-card:hover .ring-pct-inner{opacity:1;transform:scale(1)}.ring-track{fill:none;stroke:var(--border);stroke-width:5px}.ring-fill{fill:none;stroke-width:5px;stroke-linecap:round;stroke-dasharray:157;stroke-dashoffset:157px;transition:stroke-dashoffset 1.4s cubic-bezier(.22,1,.36,1)}.skill-ring-card:hover .ring-fill{stroke-dashoffset:calc(157 - (157 * var(--pct) / 100))}.ring-label{font-family:var(--display);color:var(--text);font-size:1.3rem;font-weight:800}.ring-sub{color:var(--muted);margin-top:.15rem;font-size:.75rem}.skill-showcase-wrapper{opacity:0;width:100%;max-height:0;margin-top:0;transition:max-height .6s cubic-bezier(.22,1,.36,1),margin-top .4s,opacity .4s;overflow:hidden}.skill-showcase-wrapper.open{opacity:1;max-height:350px;margin-top:2rem;margin-bottom:2rem}.skill-showcase-panel{background:var(--card);border:1px solid var(--border);will-change:transform;border-radius:16px;flex-direction:column;gap:1.5rem;padding:2.5rem;display:flex;position:relative;box-shadow:0 10px 40px -10px #0000000f}.close-showcase{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1;transition:color .2s,transform .2s;position:absolute;top:1.2rem;right:1.5rem}.close-showcase:hover{color:var(--text);transform:scale(1.1)}.showcase-header{align-items:center;gap:1.2rem;display:flex}.showcase-img{object-fit:contain;filter:drop-shadow(0 4px 6px #0000001a);width:50px;height:50px}.showcase-title{font-family:var(--display);color:var(--text);margin:0;font-size:2rem;font-weight:800;line-height:1.1}.showcase-sub{font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;margin-top:.4rem;font-size:.8rem;font-weight:600;display:block}.showcase-body p{color:var(--text);opacity:.9;margin-bottom:2rem;font-size:1.05rem;line-height:1.7}.showcase-placeholder{text-align:center;color:var(--muted);padding:2rem;font-style:italic}.stat-bar-header{justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:flex}.stat-bar-track{background:var(--border);border-radius:4px;width:100%;height:8px;overflow:hidden}.stat-bar-fill{border-radius:4px;width:0;height:100%;transition:width 1s cubic-bezier(.22,1,.36,1)}.skill-showcase-wrapper.open .stat-bar-fill{transition-delay:.2s}.skills-row{flex-wrap:wrap;gap:.5rem;display:flex}.skill-chip{background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text);cursor:default;opacity:0;border-radius:12px;padding:.4rem 1.2rem;font-size:.82rem;font-weight:500;transition:background .3s,color .3s,transform .3s,opacity .4s,border-color .3s;transform:scale(.8)}.skill-chip.vis{opacity:1;transform:scale(1)}.skill-chip:hover{color:var(--accent);border-color:var(--accent);background:#6366f11a;transform:scale(1.05)translateY(-2px)}#work{min-height:auto;padding-top:5rem}.projects-grid{grid-template-columns:repeat(2,1fr);gap:2rem;display:grid}.project-card{background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-style:preserve-3d;opacity:0;border-radius:24px;padding:2.5rem;transition:opacity .6s,transform .6s,box-shadow .3s,border-color .3s;position:relative;overflow:hidden;transform:translateY(32px)}.project-card.vis{opacity:1;transform:translateY(0)}.project-card:hover{box-shadow:var(--shadow);border-color:#6366f14d;transform:translateY(-8px)}.card-shine{background:radial-gradient(500px circle at var(--mx,50%) var(--my,50%), #ffffff1a, transparent 40%);opacity:0;pointer-events:none;border-radius:18px;transition:opacity .3s;position:absolute;inset:0}.project-card:hover .card-shine{opacity:1}.project-card-num{font-family:var(--display);color:#0000000d;font-size:5rem;font-weight:800;line-height:1;position:absolute;top:1rem;right:1.5rem}[data-theme=dark] .project-card-num{color:#ffffff0a}.project-type{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;font-size:.7rem;font-weight:600}.project-name{font-family:var(--display);color:var(--text);margin-bottom:.8rem;font-size:1.5rem;font-weight:700}.project-desc{color:var(--muted);font-size:.85rem;line-height:1.75}.project-tags{flex-wrap:wrap;gap:.4rem;margin-top:1.4rem;display:flex}.project-tag{color:var(--accent);background:#5555ff14;border:1px solid #5555ff26;border-radius:20px;padding:.3rem .8rem;font-size:.72rem;transition:background .2s,color .2s}.project-tag:hover{background:var(--accent);color:#fff}.project-card-content{z-index:2;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);position:relative}.project-card:hover .project-card-content{transform:translateY(-15px)}.project-links{opacity:0;z-index:10;pointer-events:none;justify-content:center;align-items:center;gap:1rem;width:100%;transition:opacity .3s,transform .3s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.project-card:hover .project-links{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}.project-btn{font-family:var(--display);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:40px;align-items:center;gap:.6rem;padding:.6rem 1.4rem;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s;display:flex}.live-btn{background:var(--text);color:var(--bg);border:1px solid #0000}.live-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.github-btn{color:var(--text);border:1px solid var(--border);background:#ffffff0d}.github-btn:hover{background:#ffffff1a;transform:translateY(-2px)}.terminal-btn{border:1.5px solid var(--border);color:var(--text);font-family:var(--mono);cursor:none;background:0 0;border-radius:8px;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.5rem 1.1rem;font-size:.82rem;transition:all .2s;display:inline-flex}.terminal-btn:hover{border-color:var(--accent);color:var(--accent);background:#5555ff0f}.terminal-overlay{z-index:3000;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.terminal-overlay.open{opacity:1;pointer-events:auto}.terminal-box{background:#0d1117;border:1px solid #30363d;border-radius:12px;width:min(680px,90vw);transition:transform .3s;overflow:hidden;transform:scale(.9)translateY(20px)}.terminal-overlay.open .terminal-box{transform:none}.terminal-bar{background:#161b22;border-bottom:1px solid #30363d;align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.t-dot{border-radius:50%;width:12px;height:12px}.t-close{cursor:none;background:#ff5f57}.t-min{background:#febc2e}.t-max{background:#28c840}.terminal-title{font-family:var(--mono);color:#8b949e;margin-left:auto;font-size:.75rem}.terminal-body{font-family:var(--mono);color:#c9d1d9;min-height:260px;max-height:380px;padding:1.5rem;font-size:.82rem;line-height:1.7;overflow-y:auto}.t-line{opacity:0;margin-bottom:.2rem;transition:opacity .3s,transform .3s;transform:translateY(4px)}.t-line.show{opacity:1;transform:none}.t-prompt{color:#55f}.t-green{color:#22c55e}.t-yellow{color:#f59e0b}.t-pink{color:#ec4899}.t-blue{color:#60a5fa}.t-cursor{vertical-align:text-bottom;background:#55f;width:8px;height:.9em;animation:.7s step-end infinite blink;display:inline-block}#experience{min-height:auto;padding-top:5rem}.timeline{margin-top:2rem;padding-left:2.5rem;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent2), transparent);width:2px;position:absolute;top:0;bottom:0;left:.75rem}.tl-item{opacity:0;margin-bottom:3rem;transition:opacity .6s,transform .6s;position:relative;transform:translate(-20px)}.tl-item.vis{opacity:1;transform:none}.tl-dot{background:var(--accent);border:3px solid var(--bg);border-radius:50%;width:14px;height:14px;transition:transform .25s;position:absolute;top:.35rem;left:-2.05rem;box-shadow:0 0 0 3px #5555ff40}.tl-item:hover .tl-dot{transform:scale(1.5)}.tl-date{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-size:.72rem;font-weight:600}.tl-title{font-family:var(--display);color:var(--text);margin-bottom:.2rem;font-size:1.4rem;font-weight:700}.tl-subtitle{color:var(--text);opacity:.85;margin-bottom:.6rem;font-size:.95rem;font-weight:600}.tl-body{color:var(--muted);font-size:.88rem;line-height:1.8}.tl-bullets{margin-top:.5rem;padding:0;list-style:none}.tl-bullets li{margin-bottom:.4rem;padding-left:1.2rem;position:relative}.tl-bullets li:before{content:"▹";color:var(--accent);font-size:1.1em;line-height:1.6;position:absolute;left:0}.journey-grid{grid-template-columns:1fr;gap:4rem;margin-top:1rem;display:grid}@media (width>=900px){.journey-grid{grid-template-columns:1fr 1fr;gap:3rem}}.tl-heading{font-family:var(--display);color:var(--text);margin-bottom:2rem;padding-left:2.5rem;font-size:1.8rem;font-weight:700;position:relative}.tl-tags{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.tl-tag{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:5px;padding:.25rem .65rem;font-size:.72rem}.certs-list{flex-direction:column;gap:.8rem;margin-top:3rem;display:flex}.cert-row{background:var(--card);border:1px solid var(--border);opacity:0;border-radius:12px;align-items:flex-start;gap:1.2rem;padding:1.3rem 1.8rem;transition:opacity .55s,transform .55s,box-shadow .2s;display:flex;transform:translate(-24px)}.cert-row.vis{opacity:1;transform:none}.cert-row:hover{box-shadow:var(--shadow);transform:translate(6px)}.cert-icon-box{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;transition:transform .25s;display:flex}.cert-row:hover .cert-icon-box{transform:rotate(-8deg)scale(1.1)}.cert-name{font-family:var(--display);color:var(--text);font-size:1rem;font-weight:700}.cert-desc{color:var(--muted);margin-top:.2rem;font-size:.78rem}.cert-id{color:var(--muted);white-space:nowrap;font-size:.65rem;font-family:var(--mono);margin-left:auto}#about{min-height:auto;padding-top:5rem}.about-grid{grid-template-columns:1fr 1fr;gap:5rem;margin-top:2rem;display:grid}.about-text p{color:var(--muted);margin-bottom:1.2rem;font-size:.95rem;line-height:1.85}.about-text strong{color:var(--text)}.detail-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem;font-size:.72rem;font-weight:600}.detail-val{color:var(--text);margin-bottom:1.2rem;font-size:.92rem}.detail-val a{color:var(--text);border-bottom:1px solid var(--border);text-decoration:none;transition:border-color .2s}.detail-val a:hover{border-color:var(--text)}.edu-card-wrapper{aspect-ratio:1.75;perspective:1000px;background-color:#0000;width:100%;max-width:600px;margin:0 auto}.edu-card-inner{text-align:center;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);position:relative}.edu-card-wrapper.flipped .edu-card-inner{transform:rotateY(180deg)}.edu-card-front,.edu-card-back{backface-visibility:hidden;-webkit-backdrop-filter:blur(20px);background:linear-gradient(145deg,#ffffff0f 0%,#ffffff03 100%);border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;justify-content:center;width:100%;height:100%;padding:2.5rem;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 40px -10px #00000080}.edu-card-front:before{content:"";opacity:0;pointer-events:none;z-index:0;background:radial-gradient(circle,#6366f126 0%,#ec489900 50%);width:200%;height:200%;transition:opacity .5s;position:absolute;top:-50%;left:-50%}.edu-card-wrapper:hover .edu-card-front:before{opacity:1}.edu-card-front{align-items:center}.edu-card-back{align-items:flex-start;transform:rotateY(180deg)}.edu-avatar{background:linear-gradient(135deg, var(--accent), #a78bfa);width:84px;height:84px;font-family:var(--display);color:#fff;border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.2rem;font-size:1.4rem;font-weight:800;display:flex}.edu-sep{background:var(--border);height:1px;margin:1.4rem 0}.cgpa-pill{color:#1a7a4a;background:#d0f0e4;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .9rem;font-size:.8rem;font-weight:600;animation:2.5s ease-in-out infinite pulseG;display:inline-flex}[data-theme=dark] .cgpa-pill{color:#4ade80;background:#22c55e26}@keyframes pulseG{0%,to{box-shadow:0 0 #22c55e4d}50%{box-shadow:0 0 0 8px #22c55e00}}.fun-facts{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-top:1.5rem;padding:1.8rem}.fun-facts h4{font-family:var(--display);color:var(--text);margin-bottom:1rem;font-size:1rem;font-weight:700}.fun-fact-item{color:var(--muted);gap:.6rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.fun-fact-item span:first-child{flex-shrink:0;font-size:1rem}#contact{min-height:auto;padding-top:5rem;padding-bottom:6rem}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.contact-big-title{font-family:var(--display);letter-spacing:-.03em;color:var(--text);margin-bottom:1rem;font-size:clamp(2.5rem,5vw,4rem);font-weight:800}.c-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.3rem;font-size:.72rem;font-weight:600}.c-val{color:var(--text);margin-bottom:1.3rem;font-size:.92rem}.social-links{flex-wrap:wrap;gap:1.5rem;margin-top:1rem;display:flex}.social-link{color:var(--muted);border-bottom:1px solid #0000;align-items:center;gap:.4rem;font-size:.88rem;text-decoration:none;transition:all .2s;display:flex}.social-link:hover{color:var(--text);border-bottom-color:var(--text);transform:translateY(-2px)}.s-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.contact-form{flex-direction:column;gap:1.2rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text);font-size:.88rem;font-weight:500}.form-input,.form-textarea{background:var(--card);border:1px solid var(--border);font-family:var(--font);color:var(--text);border-radius:9px;outline:none;width:100%;padding:.85rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s,transform .2s}.form-input:focus,.form-textarea:focus{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 0 0 3px #5555ff1f}.form-textarea{resize:vertical;min-height:148px}.btn-magnetic{background:var(--text);color:var(--bg);font-family:var(--font);cursor:none;border:none;border-radius:10px;align-self:flex-start;align-items:center;gap:.5rem;padding:.9rem 2rem;font-size:1rem;font-weight:600;transition:opacity .2s,transform .2s,background .3s;display:inline-flex;position:relative;overflow:hidden}.btn-magnetic:before{content:"";background:#ffffff2e;transition:transform .4s;position:absolute;inset:0;transform:translate(-100%)skew(-15deg)}.btn-magnetic:hover:before{transform:translate(120%)skew(-15deg)}.confetti-piece{pointer-events:none;z-index:9996;width:8px;height:8px;animation:confettiFall var(--dur) ease forwards;border-radius:2px;position:fixed}@keyframes confettiFall{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--dx), var(--dy)) rotate(720deg);opacity:0}}#btt{z-index:400;background:var(--accent);color:#fff;cursor:none;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;transition:opacity .3s,transform .3s;display:flex;position:fixed;bottom:3rem;right:1.8rem;transform:translateY(10px);box-shadow:0 6px 20px #5555ff59}#btt.show{opacity:1;transform:none}#btt:hover{transform:translateY(-3px);box-shadow:0 10px 28px #55f6}footer{border-top:1px solid var(--border);color:var(--muted);z-index:2;justify-content:space-between;align-items:center;padding:1.8rem 3rem;font-size:.8rem;display:flex;position:relative}.footer-clock{font-family:var(--mono);color:var(--muted);font-size:.78rem}@keyframes ripple{to{opacity:0;width:90px;height:90px}}@media (width<=768px){.projects-grid,.about-grid,.contact-grid,.stats-strip,.skills-rings-grid{grid-template-columns:1fr}.stat-box{border-right:none;border-bottom:1px solid var(--border)}nav{padding:1rem 1.5rem}.nav-links{gap:1rem}.nav-links a{font-size:.82rem}section{padding:6rem 1.5rem 3rem}footer{flex-direction:column;gap:.5rem}.side-dock,.section-dots{display:none}}.project-modal-overlay{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:1000;opacity:0;background:#0009;justify-content:center;align-items:center;padding:2rem;animation:.3s forwards fadeIn;display:flex;position:fixed;inset:0}.project-modal-content{background:var(--card);border:1px solid var(--border);opacity:0;border-radius:24px;width:100%;max-width:800px;max-height:90vh;padding:3rem;animation:.4s cubic-bezier(.175,.885,.32,1.275) .1s forwards slideUpFade;position:relative;overflow-y:auto;transform:translateY(20px)scale(.95);box-shadow:0 30px 60px #0000004d}.project-modal-content::-webkit-scrollbar{width:8px}.project-modal-content::-webkit-scrollbar-track{background:0 0}.project-modal-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.modal-close-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:all .2s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.modal-close-btn:hover{background:#ffffff1a;transform:rotate(90deg)}.modal-header{margin-bottom:2rem}.modal-type{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.9rem}.modal-name{color:var(--text);font-size:2.5rem;font-weight:800;line-height:1.2}.modal-body{margin-bottom:2.5rem}.modal-desc{color:var(--muted);margin-bottom:2rem;font-size:1.1rem;line-height:1.7}.modal-tags{flex-wrap:wrap;gap:.8rem;display:flex}.modal-actions{border-top:1px solid var(--border);gap:1.5rem;padding-top:2rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpFade{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.exp-tabs-controls{justify-content:center;gap:1rem;margin-top:-1rem;margin-bottom:2rem;display:flex}.exp-tab-btn{color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border:1px solid #ffffff1a;border-radius:50px;padding:.6rem 1.5rem;font-size:.9rem;transition:all .3s}.exp-tab-btn:hover{color:var(--text-primary);background:#ffffff1a;transform:translateY(-2px)}.exp-tab-btn.active{background:var(--accent);color:#000;border-color:var(--accent);box-shadow:0 0 15px #00f0ff66}.interactive-timeline{min-height:350px}.glass-tl-item{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#14141499;border:1px solid #ffffff0d;border-radius:12px;margin-bottom:2rem;padding:1.5rem;transition:transform .3s,box-shadow .3s;position:relative}.glass-tl-item:hover{border-color:#ffffff1a;transform:translate(10px);box-shadow:0 10px 30px -10px #00000080}.glowing-dot{width:14px!important;height:14px!important;left:-37px!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.5s forwards fadeInUp}
