/*
=========================================================
PORTFOLIO CSS — SECTION GUIDE
---------------------------------------------------------
01. Base / Reset
02. Global typography & layout
03. Header / Navigation
04. Hero
05. Buttons & links
06. About / Stats
07. Tools / Skills
08. Projects
09. Let's Talk / Contact
10. Footer
11. Animations / Hover effects
12. Light mode
13. Responsive / Mobile
=========================================================
*/

/* =========================================================
   00. PREMIUM PAGE LOADER
   Shows the IH logo first, then reveals the portfolio.
   ========================================================= */
body.is-loading{overflow:hidden}
.premium-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#050706;opacity:1;visibility:visible;transition:opacity .85s cubic-bezier(.2,.7,.2,1),visibility .85s;overflow:hidden}
.premium-loader:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,rgba(186,255,56,.10),transparent 28%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:auto,55px 55px,55px 55px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}
.premium-loader:after{content:"";position:absolute;width:min(62vw,720px);height:min(62vw,720px);border:1px solid rgba(186,255,56,.08);border-radius:50%;box-shadow:0 0 90px rgba(186,255,56,.04) inset}
.premium-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-center{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center}
.loader-logo{width:118px;height:92px;display:grid;place-items:center;opacity:0;transform:translateY(14px) scale(.86);filter:drop-shadow(0 0 0 rgba(186,255,56,0));animation:loaderLogoIn 1s cubic-bezier(.16,.8,.2,1) .12s forwards}
.loader-logo img{width:118px;height:92px;object-fit:contain;display:block}
.loader-name{margin-top:20px;color:#f5f6f2;font:600 13px/1 "Space Grotesk",sans-serif;letter-spacing:6px;opacity:0;transform:translateY(8px);animation:loaderTextIn .7s ease .55s forwards}
.loader-status{display:flex;align-items:center;gap:9px;margin-top:17px;color:#737a73;font:9px/1 "Space Grotesk",sans-serif;letter-spacing:2.2px;opacity:0;animation:loaderTextIn .7s ease .78s forwards}
.loader-status span{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 13px var(--lime);animation:loaderPulse 1.2s ease-in-out infinite}
.loader-progress{width:190px;height:1px;margin-top:27px;background:rgba(255,255,255,.12);overflow:hidden;opacity:0;animation:loaderTextIn .5s ease .88s forwards}
.loader-progress i{display:block;width:0;height:100%;background:var(--lime);box-shadow:0 0 12px var(--lime);animation:loaderProgress 1.85s cubic-bezier(.65,0,.25,1) .45s forwards}
.loader-orbit{position:absolute;z-index:2;border:1px solid rgba(186,255,56,.13);border-radius:50%;pointer-events:none}
.orbit-a{width:260px;height:260px;animation:loaderOrbitA 5s linear infinite}
.orbit-b{width:390px;height:390px;border-color:rgba(255,255,255,.045);animation:loaderOrbitB 8s linear infinite reverse}
.loader-corner{position:absolute;bottom:32px;color:#4d554e;font:8px/1 "Space Grotesk",sans-serif;letter-spacing:2.5px;z-index:3;opacity:0;animation:loaderTextIn .7s ease 1s forwards}
.loader-corner-left{left:42px}.loader-corner-right{right:42px}
@keyframes loaderLogoIn{0%{opacity:0;transform:translateY(14px) scale(.86);filter:drop-shadow(0 0 0 rgba(186,255,56,0))}55%{opacity:1;transform:translateY(-3px) scale(1.04);filter:drop-shadow(0 0 25px rgba(186,255,56,.34))}100%{opacity:1;transform:translateY(0) scale(1);filter:drop-shadow(0 0 14px rgba(186,255,56,.18))}}
@keyframes loaderTextIn{to{opacity:1;transform:translateY(0)}}
@keyframes loaderProgress{0%{width:0}100%{width:100%}}
@keyframes loaderPulse{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@keyframes loaderOrbitA{to{transform:rotate(360deg)}}
@keyframes loaderOrbitB{to{transform:rotate(-360deg)}}
@media(max-width:720px){.loader-logo,.loader-logo img{width:94px;height:74px}.loader-name{font-size:11px;letter-spacing:4px}.loader-progress{width:150px}.loader-corner{bottom:22px;font-size:7px;letter-spacing:1.7px}.loader-corner-left{left:18px}.loader-corner-right{right:18px}.orbit-a{width:210px;height:210px}.orbit-b{width:310px;height:310px}}
@media(prefers-reduced-motion:reduce){.loader-logo,.loader-name,.loader-status,.loader-progress,.loader-corner{animation-duration:.01ms!important;animation-delay:0s!important}.loader-progress i{animation:none;width:100%}.loader-orbit{animation:none}}

:root{--bg:#070909;--panel:#0d110f;--text:#f5f6f2;--muted:#858a86;--line:rgba(255,255,255,.1);--lime:#baff38;--lime2:#d9ff83;--max:1390px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 76% 35%,rgba(150,255,30,.06),transparent 26%),var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.03;z-index:100;background-image:radial-gradient(#fff .5px,transparent .5px);background-size:4px 4px}.progress{position:fixed;top:0;left:0;width:0;height:2px;background:var(--lime);z-index:200;box-shadow:0 0 15px var(--lime)}.cursor-glow{position:fixed;width:260px;height:260px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(186,255,56,.08),transparent 65%);transform:translate(-50%,-50%);filter:blur(8px)}a{text-decoration:none;color:inherit}.site-header{height:88px;position:fixed;inset:0 0 auto;z-index:90;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(7,9,9,.74);backdrop-filter:blur(18px)}.header-inner{width:min(var(--max),calc(100% - 100px));height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:18px}.ih-logo{width:78px;height:62px;display:flex;align-items:center;justify-content:center;position:relative;transition:.45s;filter:drop-shadow(0 0 10px rgba(186,255,56,.14))}.ih-logo img{width:78px;height:62px;display:block;object-fit:contain}.brand:hover .ih-logo{transform:translateY(-1px) scale(1.06);filter:drop-shadow(0 0 18px rgba(186,255,56,.42))}.brand-divider{width:1px;height:35px;background:var(--lime)}.brand-name{font:700 18px/1 "Space Grotesk";letter-spacing:4px}.brand-name b{color:var(--lime);font-weight:600}.nav-area{display:flex;align-items:center;gap:30px}nav{display:flex;gap:42px;align-items:center}nav a{font:13px "Space Grotesk";letter-spacing:1.2px;color:#b6b9b6;position:relative;padding:34px 0;transition:.3s}nav a:after{content:"";position:absolute;left:0;right:0;bottom:20px;height:2px;background:var(--lime);transform:scaleX(0);transition:.3s;box-shadow:0 0 12px var(--lime)}nav a:hover,nav a.active{color:var(--lime)}nav a:hover:after,nav a.active:after{transform:scaleX(1)}.theme-toggle{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#0e1110;color:#fff;cursor:pointer;font-size:20px;transition:.35s}.theme-toggle:hover{border-color:var(--lime);color:var(--lime);transform:rotate(25deg)}.menu-btn{display:none}.hero{min-height:100vh;position:relative;overflow:hidden;padding:155px 0 70px}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}.hero-grid{width:min(var(--max),calc(100% - 100px));margin:auto;display:grid;grid-template-columns:48% 52%;min-height:720px;position:relative;z-index:2}.hero-copy{padding-top:30px}.hero-meta-top{display:flex;align-items:center;gap:20px;color:#a1a5a1;font:12px "Space Grotesk";letter-spacing:3px;margin-bottom:48px}.hero-meta-top span{display:flex;align-items:center;gap:12px}.hero-meta-top i{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime)}.hero-meta-top b{margin-left:auto;margin-right:45%;color:var(--lime)}.hero-intro{color:var(--lime);font:700 13px "Space Grotesk";letter-spacing:6px;margin-bottom:25px}.hero-title{font:700 clamp(64px,6.2vw,104px)/.93 "Space Grotesk";letter-spacing:-5px;max-width:760px}.hero-title span{display:block;color:#f6f7f3}.title-rule{height:2px;width:105px;background:var(--lime);margin:40px 0 28px;box-shadow:0 0 14px rgba(186,255,56,.35)}.hero-description{font-size:18px;line-height:1.7;color:#a8ada8;max-width:620px}.hero-actions{display:flex;gap:16px;margin-top:38px}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;gap:30px;border-radius:999px;padding:16px 23px;font:600 13px "Space Grotesk";transition:.35s}.primary-btn{background:var(--lime);color:#10140d;box-shadow:0 0 35px rgba(186,255,56,.2)}.primary-btn span{font-size:20px}.primary-btn:hover{box-shadow:0 0 45px rgba(186,255,56,.42);transform:translateY(-3px)}.secondary-btn{border:1px solid #444a45}.secondary-btn:hover{border-color:var(--lime);color:var(--lime);transform:translateY(-3px)}.socials{display:flex;gap:12px;margin-top:68px}.socials a{width:42px;height:42px;border:1px solid #303531;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#cdd1cc;transition:.3s}.socials a:hover{border-color:var(--lime);color:var(--lime);transform:translateY(-5px);box-shadow:0 0 18px rgba(186,255,56,.16)}.hero-visual{position:relative;min-height:690px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.visual-grid{position:absolute;inset:8% 0 4%;background:radial-gradient(circle at 50% 45%,rgba(186,255,56,.07),transparent 42%)}.green-halo{position:absolute;width:475px;height:475px;border-radius:50%;border:1px solid rgba(186,255,56,.8);box-shadow:0 0 35px rgba(186,255,56,.18),inset 0 0 35px rgba(186,255,56,.07);animation:pulseHalo 4s ease-in-out infinite}.orbit{position:absolute;border:1px solid rgba(186,255,56,.14);border-radius:50%;animation:spin 18s linear infinite}.orbit-one{width:590px;height:590px}.orbit-two{width:690px;height:690px;animation-direction:reverse;animation-duration:27s}.orbit-three{width:780px;height:300px;transform:rotate(-24deg);animation-duration:23s}.portrait-card{width:520px;height:610px;position:relative;overflow:hidden;border-radius:48% 48% 12% 12%/35% 35% 10% 10%;z-index:2;box-shadow:0 35px 100px rgba(0,0,0,.55)}.portrait-card:before{content:"";position:absolute;inset:0;border:1px solid rgba(186,255,56,.28);border-radius:inherit;z-index:4}.portrait-card img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:.8s}.hero-visual:hover .portrait-card img{transform:scale(1.045)}.portrait-fade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,9,9,.75)),linear-gradient(90deg,rgba(7,9,9,.18),transparent 30%,transparent 70%,rgba(7,9,9,.25));z-index:3}.availability,.code-card,.skill-pills,.hero-side-mark,.hero-signature{position:absolute;z-index:6}.availability{top:54px;right:-8px;border:1px solid rgba(186,255,56,.23);background:rgba(10,13,11,.72);backdrop-filter:blur(15px);padding:15px 18px;border-radius:15px;display:flex;gap:12px;align-items:center;font-size:12px}.availability i{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 13px var(--lime);animation:blink 1.7s infinite}.availability b{color:var(--lime);font-size:18px}.code-card{left:0;top:170px;border:1px solid rgba(186,255,56,.18);background:rgba(8,11,9,.72);backdrop-filter:blur(15px);padding:18px 20px;border-radius:14px;width:170px}.code-card strong{color:var(--lime);font:24px monospace;display:block;margin-bottom:9px}.code-card span{color:#c2c6c1;font-size:11px;line-height:1.5}.skill-pills{right:-8px;top:230px;display:flex;flex-direction:column;gap:9px}.skill-pills span{border:1px solid rgba(255,255,255,.08);background:rgba(14,17,15,.75);padding:8px 14px;border-radius:999px;font-size:10px;color:#d8ddd7;backdrop-filter:blur(10px)}.skill-pills span:before{content:"";display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:8px}.hero-signature{right:35px;bottom:80px;color:var(--lime);font:italic 27px "Playfair Display";transform:rotate(-7deg);text-shadow:0 0 12px rgba(186,255,56,.25)}.hero-side-mark{right:10px;bottom:220px;display:flex;flex-direction:column;align-items:center;color:#6c716d}.hero-side-mark strong{font:78px/1 "Space Grotesk";color:#1a1e1b}.hero-side-mark span{font-size:9px;letter-spacing:4px;margin-top:5px}.hero-side-mark b{font-size:11px;color:var(--lime);margin-top:8px}.scroll-cue{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#9aa09a;z-index:5}.mouse{width:22px;height:35px;border:1px solid #aaa;border-radius:15px;position:relative}.mouse i{position:absolute;width:3px;height:7px;background:var(--lime);border-radius:5px;left:50%;top:6px;transform:translateX(-50%);animation:scroll 1.5s infinite}.scroll-cue small{font-size:10px}.scroll-cue b{animation:bounce 1.5s infinite}.section{width:min(var(--max),calc(100% - 100px));margin:auto;padding:130px 0;border-top:1px solid var(--line)}.section-head{display:flex;align-items:center;gap:20px;color:#777d78;font:10px "Space Grotesk";letter-spacing:2px}.section-head i{height:1px;flex:1;background:var(--line)}.section-head small{font-size:10px;color:#676d68}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:55px}.about h2,.section-title-row h2{font:clamp(48px,5vw,78px)/1 "Space Grotesk";letter-spacing:-4px}.about h2 em,.section-title-row em,.contact h2 em{color:var(--lime);font-style:normal}.about-grid p{font-size:18px;line-height:1.8;color:#9ca19d}.stats{display:flex;gap:60px;margin-top:60px}.stats strong{display:block;font:34px "Space Grotesk"}.stats span{font-size:10px;color:#707670;letter-spacing:1px}.section-title-row{display:flex;justify-content:space-between;align-items:end;margin:40px 0 55px}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tool-card{min-height:225px;border:1px solid var(--line);border-radius:18px;padding:19px;background:#0c0f0d;transition:.45s;position:relative;overflow:hidden}.tool-card:before{content:"";position:absolute;width:170px;height:170px;right:-80px;top:-90px;border-radius:50%;background:rgba(186,255,56,.08);filter:blur(20px);transition:.5s}.tool-card:hover{transform:translateY(-8px);border-color:rgba(186,255,56,.4);box-shadow:0 25px 50px rgba(0,0,0,.25)}.tool-card:hover:before{transform:scale(1.4)}.tool-top{display:flex;justify-content:space-between;align-items:center}.tool-top small{font-size:9px;color:#555b56}.tool-icon{width:50px;height:50px;border:1px solid #292e2a;background:#151916;border-radius:14px;display:grid;place-items:center}.tool-icon img{width:28px;height:28px;object-fit:contain;transition:.35s}.tool-card:hover .tool-icon img{transform:scale(1.14) rotate(4deg)}.tool-name{display:flex;justify-content:space-between;align-items:center;margin-top:45px}.tool-name strong{font:16px "Space Grotesk"}.tool-name b{color:#666;transition:.3s}.tool-card:hover .tool-name b{color:var(--lime);transform:translate(3px,-3px)}.meter{height:3px;background:#292d2a;border-radius:5px;margin-top:28px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--lime),var(--lime2));transition:width 1.2s cubic-bezier(.2,.7,.2,1)}.tool-bottom{display:flex;justify-content:space-between;margin-top:10px;color:#5e645f;font-size:9px}.tool-bottom b{color:#aeb4ae}.work-title{margin-bottom:55px}.work-title a{font-size:11px;color:#a2a7a2;border-bottom:1px solid #343936;padding-bottom:8px}.work-title a b{color:var(--lime);margin-left:8px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#0c0f0d;transition:.45s}.project:hover{transform:translateY(-8px);border-color:#454b46;box-shadow:0 28px 65px rgba(0,0,0,.3)}.project.featured{grid-column:1/-1;display:grid;grid-template-columns:1.45fr .55fr}.project-visual{height:365px;position:relative;background:#0b0e0c;overflow:hidden}.featured .project-visual{height:480px}.project-number,.live-label{position:absolute;top:17px;z-index:5;font-size:9px;letter-spacing:1.5px;color:#818781}.project-number{left:19px}.live-label{right:19px}.live-label i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px var(--lime);margin-right:7px}.browser{position:absolute;left:28px;right:28px;top:49px;bottom:-30px;border:1px solid #2c322e;border-radius:14px 14px 0 0;overflow:hidden;background:#111512;box-shadow:0 20px 60px rgba(0,0,0,.45);transition:.5s}.project:hover .browser{transform:translateY(-7px) scale(1.012)}.browser-bar{height:32px;border-bottom:1px solid #282e2a;display:flex;align-items:center;padding:0 12px;gap:5px;color:#606761;font-size:7px}.browser-bar i{width:5px;height:5px;border-radius:50%;background:#555c56}.browser-bar span{margin:auto}.screen{position:absolute;inset:32px 0 0;overflow:hidden;background:#f3f5f4}.screen img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:.7s}.project:hover .screen img{transform:scale(1.03)}.screen-overlay{position:absolute;left:20px;bottom:18px;display:flex;flex-direction:column;padding:10px 14px;border:1px solid rgba(255,255,255,.2);background:rgba(7,9,9,.68);backdrop-filter:blur(10px);border-radius:10px}.screen-overlay strong{font-size:10px;letter-spacing:1px}.screen-overlay span{font-size:8px;color:#a9aea9;margin-top:3px}.mock-project{height:100%;padding:45px 35px;color:#f6f7f3;background:linear-gradient(135deg,#111513,#242b25);position:relative}.mock-project small{font-size:7px;letter-spacing:2px;color:#9da49e}.mock-project strong{display:block;font:43px/.86 "Space Grotesk";margin-top:25px;letter-spacing:-2px}.mock-project em{color:var(--lime);font-style:normal}.mock-project>span{position:absolute;right:35px;top:55px;width:70px;height:70px;border:1px solid #606761;border-radius:50%;display:grid;place-items:center;color:var(--lime);font-size:22px}.portfolio{background:linear-gradient(135deg,#0d110f,#252a27)}.portfolio>span{right:30px;top:auto;bottom:25px;width:auto;height:auto;border:0;font:65px "Space Grotesk";color:#fff}.project-info{padding:28px 30px 32px;display:flex;justify-content:space-between;gap:25px}.featured .project-info{padding:42px;flex-direction:column}.project-info small{font-size:9px;color:#727972;letter-spacing:1px}.project-info h3{font:29px "Space Grotesk";letter-spacing:-1px;margin-top:9px}.featured .project-info h3{font-size:42px}.project-info p{font-size:12px;line-height:1.65;color:#8e958f;max-width:520px;margin-top:8px}.project-info>a{align-self:flex-end;border:1px solid #343a35;border-radius:999px;padding:11px 13px 11px 16px;display:flex;gap:20px;align-items:center;font-size:10px;transition:.3s}.project-info>a b{background:var(--lime);color:#10130e;width:24px;height:24px;border-radius:50%;display:grid;place-items:center}.project-info>a:hover{border-color:var(--lime);transform:translateY(-3px)}.contact{padding-bottom:100px}.contact-card{border:1px solid var(--line);border-radius:26px;padding:70px;display:grid;grid-template-columns:1fr .65fr;gap:70px;background:radial-gradient(circle at 90% 0%,rgba(186,255,56,.07),transparent 30%),#0b0e0c}.contact-card>div>span{font-size:10px;color:#747a75;letter-spacing:2px}.contact h2{font:clamp(48px,5vw,76px)/.98 "Space Grotesk";letter-spacing:-4px;margin-top:25px}.contact-card p{color:#919791;line-height:1.7}.contact-card a{display:inline-block;margin-top:25px;font:18px "Space Grotesk";color:var(--lime);border-bottom:1px solid rgba(186,255,56,.4);padding-bottom:8px}footer{border-top:1px solid var(--line);padding:28px 50px;display:flex;justify-content:space-between;color:#676d68;font-size:10px}footer a:hover{color:var(--lime)}@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pulseHalo{0%,100%{transform:scale(.98);opacity:.75}50%{transform:scale(1.03);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.35}}@keyframes scroll{0%,100%{transform:translate(-50%,0);opacity:1}50%{transform:translate(-50%,8px);opacity:.35}}@keyframes bounce{50%{transform:translateY(5px)}}.reveal{animation:fadeUp 1s both}.hero-copy{animation-delay:.15s}.hero-visual{animation-delay:.3s}
@media(max-width:1050px){.header-inner,.hero-grid,.section{width:calc(100% - 48px)}nav{gap:20px}.hero-grid{grid-template-columns:1fr}.hero-copy{padding-top:10px}.hero-visual{min-height:610px;margin-top:40px}.hero-meta-top b{margin-right:0}.skills-grid{grid-template-columns:repeat(2,1fr)}.project.featured{grid-template-columns:1fr}.featured .project-visual{height:430px}.featured .project-info{padding:30px}.about-grid,.contact-card{grid-template-columns:1fr;gap:40px}}
@media(max-width:720px){.site-header{height:72px}.header-inner{width:calc(100% - 30px)}.ih-logo{width:44px;height:44px;font-size:28px}.brand{gap:11px}.brand-divider{height:27px}.brand-name{font-size:13px;letter-spacing:2px}.theme-toggle{width:42px;height:42px}.menu-btn{display:flex;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:none;border:0}.menu-btn span{display:block;width:20px;height:1px;background:#fff}.nav-area{gap:10px}nav{position:absolute;top:72px;left:15px;right:15px;background:#0b0e0c;border:1px solid var(--line);border-radius:14px;display:none;flex-direction:column;gap:0;padding:10px}nav.open{display:flex}nav a{width:100%;padding:14px 12px;font-size:12px}nav a:after{bottom:6px;left:12px;right:auto;width:35px}.hero{padding-top:110px}.hero-grid,.section{width:calc(100% - 30px)}.hero-title{font-size:56px;letter-spacing:-3px}.hero-description{font-size:15px}.hero-actions{flex-wrap:wrap}.socials{margin-top:40px}.hero-visual{min-height:500px}.portrait-card{width:330px;height:430px}.green-halo{width:320px;height:320px}.orbit-one{width:390px;height:390px}.orbit-two{width:450px;height:450px}.orbit-three{width:520px;height:230px}.availability{top:25px;right:0}.code-card{left:0;top:100px;transform:scale(.8);transform-origin:left top}.skill-pills{right:0;top:190px;transform:scale(.8);transform-origin:right top}.hero-signature{right:15px;bottom:50px;font-size:20px}.hero-side-mark{display:none}.scroll-cue{display:none}.section{padding:85px 0}.about-grid{gap:40px;margin-top:40px}.about h2,.section-title-row h2,.contact h2{font-size:46px;letter-spacing:-2.5px}.stats{gap:20px;flex-wrap:wrap}.stats strong{font-size:28px}.skills-grid{grid-template-columns:1fr 1fr}.tool-card{min-height:195px}.project.featured{display:block}.featured .project-visual{height:340px}.project-visual{height:280px}.browser{left:15px;right:15px}.featured .project-info h3{font-size:32px}.projects{grid-template-columns:1fr}.contact-card{padding:38px 25px}footer{padding:22px 15px;gap:15px;flex-wrap:wrap}}
@media(max-width:460px){.brand-name{display:none}.skills-grid{grid-template-columns:1fr}.hero-title{font-size:48px}.portrait-card{width:285px;height:380px}.green-halo{width:280px;height:280px}.code-card{display:none}.skill-pills{right:-4px}.availability{font-size:10px;padding:11px 12px}.section-head small{display:none}}

.hero-title>span{display:block}.typing-caret{display:none!important}

/* Heading typewriter animation */
.typing-heading .type-char{display:inline-block;opacity:0;transform:translateY(12px);filter:blur(4px);white-space:pre;will-change:transform,opacity,filter;}
.typing-heading.typing-play .type-char{animation:typeCharIn .52s cubic-bezier(.2,.75,.2,1) forwards;animation-delay:var(--type-delay);}
@keyframes typeCharIn{0%{opacity:0;transform:translateY(12px);filter:blur(4px)}70%{opacity:1;transform:translateY(-2px);filter:blur(0)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
@media (prefers-reduced-motion:reduce){.typing-heading .type-char{opacity:1!important;transform:none!important;filter:none!important}.typing-heading.typing-play .type-char{animation:none!important}}

/* Premium social icons */
.socials a svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:.3s}.socials a svg .fill{fill:currentColor;stroke:none}.socials a:hover svg{transform:scale(1.08)}

/* Premium contact / CTA section */
.contact-intro{margin-bottom:34px}.contact-premium{position:relative;overflow:hidden;min-height:0;grid-template-columns:1.15fr .85fr!important;gap:0!important;padding:0!important;background:linear-gradient(135deg,#0b0f0c 0%,#0d120f 52%,#101711 100%);border-color:rgba(186,255,56,.16);box-shadow:0 35px 90px rgba(0,0,0,.28)}.contact-premium:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-190px;top:-250px;border:1px solid rgba(186,255,56,.13);box-shadow:0 0 80px rgba(186,255,56,.07),inset 0 0 80px rgba(186,255,56,.035);pointer-events:none}.contact-premium:after{content:"";position:absolute;left:-120px;bottom:-230px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(186,255,56,.08),transparent 65%);filter:blur(5px);pointer-events:none}.contact-main{padding:68px 62px 62px;position:relative;z-index:2}.contact-kicker{display:flex;align-items:center;gap:10px;color:#858b85;font:10px "Space Grotesk";letter-spacing:2.4px}.contact-kicker i{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 15px var(--lime);animation:blink 1.7s infinite}.contact h2{font-size:clamp(56px,5.8vw,92px);max-width:780px;margin-top:24px}.contact-copy{max-width:640px!important;margin-top:28px;font-size:15px!important;line-height:1.8!important;color:#929992!important}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}.contact-primary,.contact-secondary{display:inline-flex!important;align-items:center;gap:26px;margin:0!important;padding:14px 18px 14px 20px!important;border-radius:999px!important;font:600 11px "Space Grotesk"!important;transition:.35s}.contact-primary{background:var(--lime);color:#0d120c!important;border:1px solid var(--lime)!important;box-shadow:0 0 30px rgba(186,255,56,.15)}.contact-primary b,.contact-secondary b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center}.contact-primary b{background:#10150e;color:var(--lime)}.contact-secondary{border:1px solid #3a403b!important;color:#d7dbd6!important}.contact-secondary b{background:#222822;color:var(--lime)}.contact-primary:hover,.contact-secondary:hover{transform:translateY(-4px)}.contact-primary:hover{box-shadow:0 0 42px rgba(186,255,56,.32)}.contact-secondary:hover{border-color:var(--lime)!important;color:var(--lime)!important}.contact-side{border-left:1px solid rgba(255,255,255,.08);padding:68px 38px 45px;position:relative;z-index:2;background:rgba(255,255,255,.012)}.contact-side-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.08);color:#747b75;font:10px "Space Grotesk";letter-spacing:2px}.contact-side-top strong{color:var(--lime);font:11px "Space Grotesk"}.contact-line{display:grid;grid-template-columns:42px 1fr 18px;gap:13px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.07);transition:.3s}.contact-line:hover{padding-left:7px}.contact-icon{width:38px;height:38px;border:1px solid #303731;border-radius:12px;display:grid;place-items:center;color:var(--lime);font:700 11px "Space Grotesk";background:#111611}.contact-line div{display:flex;flex-direction:column;gap:6px;min-width:0}.contact-line small{font:8px "Space Grotesk";letter-spacing:1.5px;color:#666d67}.contact-line a{margin:0!important;padding:0!important;border:0!important;font:13px "Space Grotesk";color:#dce0db;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-line>b{color:#626a63;font-size:15px;transition:.3s}.contact-line:hover>b{color:var(--lime);transform:translate(2px,-2px)}.contact-note{display:flex;align-items:center;gap:9px;margin-top:24px;color:#687069;font-size:9px}.contact-note i{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}.contact-bottom{display:flex;justify-content:space-between;align-items:center;padding:20px 4px 0;color:#555d56;font:9px "Space Grotesk";letter-spacing:1.5px}.contact-bottom b{color:#858c85;font-weight:500}.contact-bottom em{font-style:normal;color:#555d56;margin-left:8px}
@media(max-width:1050px){.contact-premium{grid-template-columns:1fr!important}.contact-side{border-left:0;border-top:1px solid rgba(255,255,255,.08);padding:38px 42px 45px}.contact-main{padding:55px 42px}.contact h2{font-size:clamp(50px,7vw,76px)}}
@media(max-width:720px){.contact-main{padding:42px 25px}.contact-side{padding:30px 25px 35px}.contact h2{font-size:45px;letter-spacing:-2.5px}.contact-copy{font-size:14px!important}.contact-actions{margin-top:28px}.contact-primary,.contact-secondary{width:100%;justify-content:space-between}.contact-bottom{flex-direction:column;align-items:flex-start;gap:10px;padding-top:18px}.contact-line{grid-template-columns:38px 1fr 15px}.contact-icon{width:34px;height:34px}.contact-line a{font-size:12px}.contact-premium:before{width:350px;height:350px;right:-180px;top:-180px}}

/* Direct contact links */
.contact-direct-actions{gap:12px}
.contact-direct-actions a{min-width:132px;justify-content:space-between}
.contact-instagram-btn:hover{border-color:#d94d8b!important;color:#ff79b0!important}
.contact-whatsapp-btn:hover{border-color:#31d879!important;color:#55ef91!important}
@media(max-width:720px){.contact-direct-actions a{width:100%;min-width:0}}


/* =========================================================
   FINAL LIVE-POLISH FIXES
   Prevent unnecessary empty space before the footer.
   ========================================================= */
.contact{min-height:0;padding-bottom:70px;}

/* Functional light theme for the existing theme toggle. */
body.light{
  --bg:#f4f6f1;
  --panel:#ffffff;
  --text:#10130f;
  --muted:#626a63;
  --line:rgba(16,19,15,.12);
  background:radial-gradient(circle at 76% 35%,rgba(130,180,40,.10),transparent 28%),var(--bg);
}
body.light .site-header{background:rgba(244,246,241,.82);border-bottom-color:rgba(16,19,15,.10);}
body.light nav a{color:#555d56;}
body.light .theme-toggle{background:#fff;color:#10130f;}
body.light .hero:before{background:linear-gradient(rgba(16,19,15,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(16,19,15,.035) 1px,transparent 1px);}
body.light .hero-description,body.light .about-grid p,body.light .contact-copy{color:#5d665f!important;}
body.light .secondary-btn{border-color:#b7beb8;}
body.light .tool-card,body.light .project{background:#fff;}
body.light .tool-icon{background:#f1f4ef;border-color:#d9ded9;}
body.light .meter{background:#dfe4df;}
body.light .browser{background:#f8faf7;border-color:#d5dbd5;}
body.light .browser-bar{border-bottom-color:#dce1dc;}
body.light .contact-premium{background:linear-gradient(135deg,#fff 0%,#f6f8f3 55%,#eef3e9 100%);}
body.light .contact-side{background:rgba(16,19,15,.018);border-color:rgba(16,19,15,.10);}
body.light .contact-line{border-bottom-color:rgba(16,19,15,.08);}
body.light .contact-line a{color:#20251f;}
body.light .contact-icon{background:#f1f4ef;border-color:#d6dcd6;}
body.light footer{border-top-color:rgba(16,19,15,.12);color:#69716b;}

@media(max-width:720px){.contact{padding-bottom:45px;}}


/* =========================================================
   JS-DRIVEN ANIMATION STATES
   Restores scroll/hover animations without changing layout.
   ========================================================= */
.js-reveal{opacity:0;transform:translateY(28px);filter:blur(3px);transition:opacity .8s cubic-bezier(.2,.75,.2,1),transform .8s cubic-bezier(.2,.75,.2,1),filter .8s ease;transition-delay:var(--reveal-delay,0s)}
.js-reveal.reveal-in{opacity:1;transform:none;filter:none}
.stats>div{will-change:transform,opacity}
.stat-counter{display:inline-block;min-width:1.2ch}
.project{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .js-reveal{opacity:1;transform:none;filter:none;transition:none}
  .project{transform:none!important}
}


/* TOOL CARDS - PREMIUM ENTRANCE + METER ANIMATION */
.skills-grid .tool-card{opacity:0;transform:translateY(42px) scale(.96);filter:blur(7px);transition:opacity .8s cubic-bezier(.2,.75,.2,1),transform .8s cubic-bezier(.2,.75,.2,1),filter .8s ease,border-color .45s ease,box-shadow .45s ease;}
.skills-grid .tool-card.tool-visible{opacity:1;transform:translateY(0) scale(1);filter:none;}
.skills-grid .tool-card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 25%,rgba(186,255,56,.12) 50%,transparent 75%);transform:translateX(-130%);opacity:0;}
.skills-grid .tool-card.tool-visible:after{opacity:1;animation:toolShine 1.1s ease .35s both;}
.skills-grid .tool-card:nth-child(1){transition-delay:.02s}.skills-grid .tool-card:nth-child(2){transition-delay:.08s}.skills-grid .tool-card:nth-child(3){transition-delay:.14s}.skills-grid .tool-card:nth-child(4){transition-delay:.20s}.skills-grid .tool-card:nth-child(5){transition-delay:.26s}.skills-grid .tool-card:nth-child(6){transition-delay:.32s}.skills-grid .tool-card:nth-child(7){transition-delay:.38s}.skills-grid .tool-card:nth-child(8){transition-delay:.44s}
.skills-grid .tool-card.tool-visible .tool-icon{animation:toolIconPop .65s cubic-bezier(.2,.8,.2,1) both;}
.skills-grid .tool-card.tool-visible .tool-name strong{animation:toolTextIn .65s .12s ease both;}
.skills-grid .tool-card.tool-visible .tool-name b{animation:toolArrowIn .55s .22s ease both;}
.skills-grid .tool-card .meter i{width:0!important;}
.skills-grid .tool-card.tool-visible .meter i{width:var(--tool-width)!important;}
@keyframes toolIconPop{0%{opacity:0;transform:scale(.65) rotate(-8deg)}70%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes toolTextIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes toolArrowIn{from{opacity:0;transform:translate(-6px,6px)}to{opacity:1;transform:none}}
@keyframes toolShine{from{transform:translateX(-130%)}to{transform:translateX(130%)}}
@media(max-width:720px){.skills-grid .tool-card{transform:translateY(24px) scale(.985);}}
