:root { --void:#020408; --void-lift:#070d18; --glass:rgba(3,18,28,.78); --glass-soft:rgba(6,31,42,.54); --cyan:#00f5ff; --cyan-pale:#b9fbff; --cyan-dim:rgba(0,245,255,.48); --cyan-line:rgba(0,245,255,.15); --text:#d7e7ec; --slate:#8e9aaf; --muted:#5d7280; --green:#80ffc3; --amber:#ffb800; --heading:'Space Grotesk',Arial,sans-serif; --mono:'JetBrains Mono',Consolas,monospace; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; background:var(--void); } body { margin:0; min-width:320px; background:var(--void); color:var(--text); font-family:var(--mono); overflow-x:hidden; } a { color:inherit; text-decoration:none; } button { font:inherit; } ::selection { background:var(--cyan); color:var(--void); } ::-webkit-scrollbar { width:7px; } ::-webkit-scrollbar-track { background:var(--void); } ::-webkit-scrollbar-thumb { background:var(--cyan-dim); }

.jarvis-bg { position:fixed; z-index:-2; inset:0; overflow:hidden; pointer-events:none; background:radial-gradient(ellipse at 50% 17%,#0a2230 0,#070d18 35%,#020408 79%); }.bg-grid { position:absolute; inset:0; opacity:.55; background-image:linear-gradient(rgba(0,245,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,255,.045) 1px,transparent 1px); background-size:40px 40px; mask-image:radial-gradient(ellipse at 50% 25%,black,transparent 76%); }.bg-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,transparent 22%,rgba(2,4,8,.7) 100%); }.bg-scan { position:absolute; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(0,245,255,.28),transparent); animation:bgScan 8s linear infinite; }.scan-two { animation-delay:4.2s; }.data-stream { position:absolute; top:0; width:1px; height:150px; background:linear-gradient(transparent,rgba(0,245,255,.38),transparent); animation:dataStream var(--duration) linear infinite var(--delay); }.stream-1{left:4%;--duration:8s;--delay:0s}.stream-2{left:12%;--duration:10s;--delay:3s}.stream-3{left:22%;--duration:7s;--delay:1.5s}.stream-4{left:35%;--duration:9s;--delay:5s}.stream-5{left:48%;--duration:11s;--delay:2s}.stream-6{left:58%;--duration:8s;--delay:6s}.stream-7{left:70%;--duration:10s;--delay:1s}.stream-8{left:80%;--duration:7s;--delay:4s}.stream-9{left:90%;--duration:9s;--delay:7s}.data-snippet { position:absolute; color:rgba(0,245,255,.25); font-size:10px; animation:snippetFade 6s ease-in-out infinite var(--delay); }.snippet-1{top:15%;left:8%;--delay:0s}.snippet-2{top:35%;left:85%;--delay:2s}.snippet-3{top:60%;left:15%;--delay:4s}.snippet-4{top:75%;left:78%;--delay:1s}.snippet-5{top:25%;left:65%;--delay:3s}.snippet-6{top:50%;left:92%;--delay:5s}

.site-loader { position:fixed; z-index:50; inset:0; display:grid; place-items:center; background:#020408; transition:opacity .6s ease,visibility .6s ease; }.site-loader.hidden { opacity:0; visibility:hidden; }.loader-core { position:relative; width:220px; display:grid; justify-items:center; gap:13px; color:var(--cyan); text-align:center; }.loader-core img { width:70px; height:70px; object-fit:cover; border-radius:50%; filter:grayscale(1) contrast(1.3) sepia(.5) hue-rotate(130deg) saturate(1.9); }.loader-core:before,.loader-core:after,.loader-ring { content:''; position:absolute; top:-14px; width:98px; height:98px; border:1px solid rgba(0,245,255,.5); border-radius:50%; }.loader-core:before { border-top-color:var(--cyan); animation:spin 1.5s linear infinite; }.loader-core:after { width:112px; height:112px; top:-21px; border-left-color:var(--cyan); border-right-color:transparent; animation:spinReverse 2.5s linear infinite; }.loader-ring { border:0; border-top:1px solid var(--cyan); transform:rotate(-30deg); }.loader-core b { margin-top:17px; color:var(--cyan-pale); letter-spacing:.23em; font-size:14px; }.loader-core small { color:var(--slate); font-size:8px; letter-spacing:.11em; }

.hud-header { height:72px; position:sticky; top:0; z-index:20; max-width:1480px; margin:0 auto; padding:0 38px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--cyan-line); background:rgba(2,7,13,.82); backdrop-filter:blur(17px); }.hud-brand { display:flex; gap:11px; align-items:center; }.brand-icon { width:30px; height:30px; display:grid; place-items:center; color:var(--cyan); border:1px solid var(--cyan); transform:rotate(45deg); font:600 13px var(--heading); }.brand-icon::first-letter { transform:rotate(-45deg); }.hud-brand>span:last-child { display:grid; gap:3px; }.hud-brand b { color:var(--cyan-pale); font:600 12px var(--heading); letter-spacing:.09em; }.hud-brand small { color:var(--muted); font-size:7px; letter-spacing:.13em; }.hud-readout { display:flex; align-items:center; gap:9px; color:#7baeb6; font-size:9px; letter-spacing:.06em; }.hud-readout time { margin-left:13px; padding-left:13px; color:var(--cyan); border-left:1px solid var(--cyan-line); }.online-dot { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 11px var(--green); animation:pulse 1.7s infinite; }.nav-toggle { display:none; }
.site-nav { position:sticky; z-index:19; top:72px; display:flex; justify-content:center; max-width:1480px; margin:0 auto; padding:0 25px; background:rgba(2,7,13,.74); border-bottom:1px solid var(--cyan-line); backdrop-filter:blur(15px); overflow-x:auto; scrollbar-width:none; }.site-nav::-webkit-scrollbar { display:none; }.site-nav a { flex:0 0 auto; position:relative; padding:13px 11px 12px; color:#4f8290; font-size:8px; white-space:nowrap; transition:color .2s; }.site-nav a span { margin-left:4px; color:#91aab3; }.site-nav a:after { content:''; position:absolute; height:2px; left:10px; right:10px; bottom:0; transform:scaleX(0); background:var(--cyan); box-shadow:0 0 9px var(--cyan); transition:transform .2s; }.site-nav a:hover,.site-nav a.active { color:var(--cyan); }.site-nav a:hover:after,.site-nav a.active:after { transform:scaleX(1); }.floating-contact { position:fixed; z-index:15; right:0; top:50%; display:flex; gap:10px; align-items:center; padding:10px 10px 10px 13px; border:1px solid var(--cyan-line); border-right:0; background:rgba(3,20,29,.87); transform:translateY(-50%); writing-mode:vertical-rl; color:var(--cyan); font-size:8px; letter-spacing:.1em; transition:background .2s,transform .2s; }.floating-contact span { width:5px; height:5px; border-radius:50%; background:var(--green); box-shadow:0 0 7px var(--green); }.floating-contact i { font-style:normal; font-size:13px; }.floating-contact:hover { background:rgba(0,245,255,.13); transform:translateY(-50%) translateX(-3px); }

main,footer { position:relative; z-index:1; max-width:1480px; margin:0 auto; }.hero { min-height:calc(100vh - 111px); padding:39px 5vw 28px; display:flex; flex-direction:column; justify-content:center; }.hero-status,.hero-footer { display:flex; justify-content:space-between; color:#5f939c; font-size:8px; letter-spacing:.12em; }.hero-status b { color:var(--green); font-weight:500; }.hero-layout { display:grid; grid-template-columns:minmax(260px,.82fr) minmax(365px,1.16fr) minmax(245px,.78fr); gap:clamp(23px,3.5vw,63px); align-items:center; margin:clamp(30px,6.5vh,70px) 0; }.hud-card { position:relative; overflow:hidden; border:1px solid var(--cyan-line); background:linear-gradient(135deg,rgba(6,50,61,.43),rgba(3,10,18,.77)); clip-path:polygon(0 0,calc(100% - 19px) 0,100% 19px,100% 100%,18px 100%,0 calc(100% - 18px)); box-shadow:inset 0 0 30px rgba(0,245,255,.025),0 15px 48px rgba(0,0,0,.24); }.hud-card:before,.hud-card:after { content:''; position:absolute; z-index:4; width:13px; height:13px; pointer-events:none; border-color:var(--cyan); }.hud-card:before { left:-1px; top:-1px; border-top:1px solid;border-left:1px solid; }.hud-card:after { right:-1px; bottom:-1px; border-right:1px solid;border-bottom:1px solid; }.card-top { height:36px; padding:0 11px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--cyan-line); color:#a3dce2; font-size:8px; letter-spacing:.09em; }.card-top b { color:var(--cyan); font-size:7px; font-weight:500; }.card-top b i { width:5px; height:5px; margin-right:5px; display:inline-block; border-radius:50%; background:var(--green); box-shadow:0 0 7px var(--green); }.geo-card { transform:translateY(-7px); }.map-area { position:relative; aspect-ratio:1.23; overflow:hidden; color:var(--cyan); }.map-area svg { width:100%; height:100%; display:block; }.map-land { fill:rgba(0,245,255,.12); stroke:rgba(69,239,248,.75); stroke-width:1.1; filter:drop-shadow(0 0 11px rgba(0,245,255,.17)); }.map-route path { fill:none; stroke:rgba(0,245,255,.26); stroke-width:1; stroke-dasharray:5 6; animation:dash 10s linear infinite; }.india-pin circle { fill:none; stroke:var(--cyan); }.india-pin circle:first-child { fill:var(--cyan-pale); stroke:none; }.india-pin circle:nth-child(2) { animation:mapPulse 2s infinite; }.india-pin circle:nth-child(3) { opacity:.32; animation:mapPulse 2s 1s infinite; }.map-tag path { stroke:var(--cyan); }.map-tag text { fill:var(--cyan-pale); font:500 9px var(--mono); letter-spacing:1px; }.map-tag text+text { fill:#6c9ba3; font-size:6px; }.asia-word { fill:rgba(157,248,255,.42); font:500 18px var(--mono); letter-spacing:9px; }.map-sweep { position:absolute; top:-20%; left:-20%; width:150%; height:15%; background:linear-gradient(transparent,rgba(0,245,255,.34),transparent); filter:blur(3px); transform:rotate(-18deg); animation:mapSweep 4.8s ease-in-out infinite; }.card-bottom { display:flex; justify-content:space-between; padding:11px; color:#62868f; border-top:1px solid var(--cyan-line); font-size:7px; letter-spacing:.06em; }
.hero-copy { position:relative; }.signal-label { display:flex; align-items:center; gap:8px; margin:0 0 14px; color:var(--cyan); font-size:9px; letter-spacing:.13em; }.signal-label i { width:25px; height:1px; background:var(--cyan); box-shadow:0 0 8px var(--cyan); }.hero h1 { margin:0; color:var(--text); font:500 clamp(2.55rem,4.2vw,5rem)/.91 var(--heading); letter-spacing:-.07em; }.hero h1 strong { color:var(--cyan); font-weight:500; text-shadow:0 0 22px rgba(0,245,255,.18); }.hero h1 em { color:transparent; font-style:normal; -webkit-text-stroke:1px var(--cyan-dim); }.hero-tagline { margin:21px 0 12px; color:#8eb8c0; font-size:9px; letter-spacing:.1em; }.hero-tagline i { color:var(--cyan); font-style:normal; padding:0 3px; }.hero-description { max-width:540px; margin:0; color:#8aa7b0; font-size:12px; line-height:1.7; }.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }.hud-button { min-width:164px; height:41px; display:flex; justify-content:space-between; align-items:center; padding:0 12px 0 15px; color:#aae5e9; border:1px solid var(--cyan-line); background:rgba(0,245,255,.035); clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); font-size:8px; letter-spacing:.07em; transition:transform .2s,background .2s,color .2s; }.hud-button b { font-size:14px; }.hud-button.primary { color:#001419; background:var(--cyan); border-color:var(--cyan); }.hud-button:hover { transform:translateY(-3px); background:rgba(0,245,255,.17); }.hud-button.primary:hover { background:var(--cyan-pale); }.biometric-card { max-width:280px; justify-self:end; transform:translateY(11px); }.verified { color:var(--green)!important; }.face-area { height:328px; position:relative; isolation:isolate; overflow:hidden; background:#0d2932; }.face-area>img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 31%; transform:scale(1.03); filter:grayscale(1) contrast(1.24) sepia(.36) hue-rotate(133deg) saturate(1.6); }.face-area:after { content:''; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(0,53,65,.44),transparent 45%,rgba(1,8,12,.3)),linear-gradient(0deg,rgba(3,17,22,.25),transparent 42%); }.face-grid { position:absolute; z-index:2; inset:0; background-image:linear-gradient(rgba(0,245,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,255,.18) 1px,transparent 1px); background-size:21px 21px; mask-image:radial-gradient(ellipse 75% 62% at 51% 45%,#000,transparent 75%); }.face-scan { position:absolute; z-index:3; top:5%; left:8%; right:8%; height:2px; background:var(--cyan-pale); box-shadow:0 0 13px 4px rgba(0,245,255,.73); animation:faceScan 3.5s ease-in-out infinite; }.face-reticle { position:absolute; z-index:4; width:82px; height:82px; top:38%; left:50%; transform:translate(-50%,-50%); border:1px solid var(--cyan); border-radius:50%; box-shadow:0 0 25px rgba(0,245,255,.4); }.face-reticle:before,.face-reticle:after { content:''; position:absolute; background:rgba(168,251,255,.8); }.face-reticle:before { width:105px;height:1px;left:-12px;top:40px; }.face-reticle:after { width:1px;height:105px;top:-12px;left:40px; }.face-reticle i { position:absolute; width:10px;height:10px;border-color:var(--cyan-pale); }.face-reticle i:nth-child(1){left:-1px;top:-1px;border-left:2px solid;border-top:2px solid}.face-reticle i:nth-child(2){right:-1px;top:-1px;border-right:2px solid;border-top:2px solid}.face-reticle i:nth-child(3){left:-1px;bottom:-1px;border-left:2px solid;border-bottom:2px solid}.face-reticle i:nth-child(4){right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid}.face-corner { position:absolute; z-index:4; width:23px;height:23px;border-color:var(--cyan); }.tl{top:12px;left:12px;border-top:1px solid;border-left:1px solid}.tr{top:12px;right:12px;border-top:1px solid;border-right:1px solid}.bl{bottom:12px;left:12px;border-bottom:1px solid;border-left:1px solid}.br{bottom:12px;right:12px;border-bottom:1px solid;border-right:1px solid}.face-data { position:absolute; z-index:4; left:15px; color:var(--cyan-pale); text-shadow:0 0 7px #002d37; font-size:6px; letter-spacing:.06em; }.face-data-one { top:27%; }.face-data-two { bottom:27px; }.identity-log { display:grid; gap:7px; margin:0; padding:12px; }.identity-log div { display:flex; justify-content:space-between; gap:5px; font-size:7px; }.identity-log dt { color:#658993; }.identity-log dd { margin:0; color:#b7dee1; }.identity-log div:nth-child(2) dd { color:var(--green); }.hero-footer { margin-top:auto; }.hero-footer i { display:inline-block; width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green); }

.content-section { padding:105px 7.2vw; }.content-section:nth-of-type(odd) { background:linear-gradient(90deg,rgba(0,245,255,.025),transparent 45%); }.section-head { display:grid; grid-template-columns:28px 30px auto 1fr; align-items:center; gap:10px; margin-bottom:49px; }.section-head>span { color:rgba(0,245,255,.48); font-size:11px; }.section-head>i { height:1px;background:var(--cyan-dim); }.section-head h2 { margin:0; color:var(--cyan); text-shadow:0 0 20px rgba(0,245,255,.21); font:500 15px var(--mono); letter-spacing:.27em; }.section-head>b { height:1px; margin-left:11px; background:linear-gradient(90deg,var(--cyan-line),transparent); }.about-grid { max-width:1120px; display:grid; grid-template-columns:.8fr 1fr; gap:90px; align-items:center; }.about-grid h3 { margin:0; color:var(--text); font:600 clamp(2.5rem,5vw,4.7rem)/.86 var(--heading); letter-spacing:-.07em; }.about-grid h3 em { color:var(--cyan); font-style:normal; text-shadow:0 0 20px rgba(0,245,255,.2); }.about-grid p { margin:0 0 16px; padding-left:19px; border-left:1px solid var(--cyan-line); color:#8faab3; font-size:12px; line-height:1.82; }.tag-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:26px; }.tag-row span { padding:7px 10px; border:1px solid var(--cyan-line); color:rgba(0,245,255,.72); font-size:8px; letter-spacing:.09em; }
.education-list { position:relative; max-width:950px; padding-left:27px; border-left:1px solid var(--cyan-line); }.education-item { position:relative; display:grid; grid-template-columns:115px 1fr; gap:27px; padding:0 0 38px 27px; }.education-item:last-child { padding-bottom:0; }.education-item:before { content:''; position:absolute; left:-6px; top:5px; width:10px;height:10px; border:1px solid var(--cyan); background:var(--void); transform:rotate(45deg); box-shadow:0 0 9px rgba(0,245,255,.45); }.education-item b { color:var(--cyan); font-size:8px; letter-spacing:.07em; }.education-item h3 { margin:0 0 8px; color:var(--text); font:500 18px var(--heading); }.education-item p { margin:0; color:#859fa8; font-size:11px; }
.skills-grid,.research-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.skill-card,.research-card { min-height:183px; position:relative; padding:20px; overflow:hidden; border:1px solid var(--cyan-line); background:linear-gradient(135deg,rgba(4,40,52,.49),rgba(3,12,20,.45)); transition:transform .25s,border .25s,background .25s; }.skill-card:hover,.research-card:hover { transform:translateY(-5px); border-color:var(--cyan-dim); background:rgba(0,245,255,.085); }.skill-card:after { content:attr(data-number); position:absolute; right:9px; bottom:-23px; color:rgba(0,245,255,.06); font-size:92px; }.skill-card>span,.research-card>span { position:relative; z-index:1; color:var(--cyan); font-size:8px; }.skill-card h3,.research-card h3 { position:relative; z-index:1; margin:32px 0 10px; color:#d4eef0; font:500 18px var(--heading); }.skill-card p,.research-card p { position:relative; z-index:1; margin:0; color:#87a5ae; font-size:11px; line-height:1.7; }.research-card { min-height:160px; border-left:2px solid var(--cyan); }.research-card h3 { margin-top:18px; font-size:16px; }
.experience-list { display:grid; gap:15px; }.experience-card { position:relative; display:grid; grid-template-columns:140px minmax(180px,.75fr) 1.7fr; gap:25px; padding:31px 27px; border:1px solid var(--cyan-line); background:rgba(3,16,25,.57); transition:background .2s; }.experience-card:hover { background:rgba(0,245,255,.055); }.experience-card:before { content:''; position:absolute; right:19px;top:19px;width:8px;height:8px;border:1px solid var(--cyan);transform:rotate(45deg); }.experience-period { color:var(--cyan); font-size:9px; letter-spacing:.08em; }.experience-card h3 { margin:0; color:var(--text); font:500 20px var(--heading); line-height:1.05; }.experience-role { margin:7px 0 0; color:#87b3bb; font-size:9px; line-height:1.6; }.experience-card ul { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:9px 20px; }.experience-card li { position:relative; padding-left:12px; color:#8ba7af; font-size:10px; line-height:1.55; }.experience-card li:before { content:'›'; position:absolute; left:0;color:var(--cyan); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }.gallery-item { cursor:zoom-in; padding:8px; border:1px solid var(--cyan-line); background:rgba(3,20,29,.56); transition:transform .24s,border .24s; }.gallery-item:hover { transform:translateY(-5px); border-color:var(--cyan-dim); }.gallery-media { position:relative; overflow:hidden; aspect-ratio:1.42; background:#07151b; }.gallery-media:after { content:'+'; position:absolute; right:8px;bottom:5px;padding:0 6px;color:var(--cyan-pale);background:rgba(0,10,14,.85);font-size:18px; }.gallery-media img { width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.74) contrast(1.08);transition:transform .35s; }.gallery-item:hover img { transform:scale(1.06); }.gallery-item h3 { margin:12px 4px 4px;color:#d9f0f1;font:500 15px var(--heading); }.gallery-item p { margin:0 4px 6px;color:#7897a0;font-size:9px;line-height:1.45; }.certificates-grid { grid-template-columns:repeat(4,1fr); }.certificates-grid .gallery-item h3 { font-size:13px; }
.publication-list { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--cyan-line); background:rgba(3,17,26,.47); }.publication { min-height:265px; padding:27px; border-right:1px solid var(--cyan-line); }.publication:last-child { border-right:0; }.publication-number { color:var(--cyan); font-size:8px;letter-spacing:.1em; }.publication h3 { margin:22px 0 13px;color:#dceff1;font:500 19px/1.25 var(--heading); }.publication p { margin:0;color:#829faa;font-size:10px;line-height:1.7; }.publication a { display:inline-block;margin-top:19px;color:var(--cyan);border-bottom:1px solid;font-size:9px; }.publication .publication-meta { margin-top:18px;color:#6c858e;font-size:9px; }
.works-list { display:grid; gap:15px; }.work-card { display:grid; grid-template-columns:minmax(160px,.6fr) 2fr; gap:34px; padding:26px; border:1px solid var(--cyan-line); background:rgba(3,16,25,.54); }.work-card.has-image { grid-template-columns:200px 1fr; }.work-image { width:100%; height:155px; object-fit:contain; padding:11px; background:#07141b; border:1px solid var(--cyan-line); }.work-tag { display:block;color:var(--cyan);font-size:9px;letter-spacing:.12em; }.work-card h3 { margin:12px 0;color:#e2f3f4;font:500 27px var(--heading);letter-spacing:-.04em; }.work-subtitle { margin:-8px 0 12px;color:#91b7bd;font-size:11px; }.work-card>div>p { color:#8ba7af;margin:0;max-width:870px;font-size:11px;line-height:1.72; }.work-card .work-note { margin-top:14px;color:#93a6ab;border-left:1px solid var(--amber);padding-left:11px;font-size:10px; }.work-links { display:flex;flex-wrap:wrap;gap:8px;margin-top:19px; }.work-links a,.credential-trigger { cursor:pointer;border:1px solid var(--cyan-line);padding:8px 10px;color:#a6dadd;background:transparent;font:8px var(--mono);letter-spacing:.05em;transition:.2s; }.work-links a:hover,.credential-trigger:hover { background:var(--cyan);border-color:var(--cyan);color:#001114; }
.achievements-grid { display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid var(--cyan-line);border-top:1px solid var(--cyan-line); }.achievement { min-height:224px;padding:21px;border-right:1px solid var(--cyan-line);border-bottom:1px solid var(--cyan-line);background:rgba(3,17,25,.4); }.achievement span { display:grid;place-items:center;width:30px;height:30px;margin-bottom:25px;color:var(--cyan);border:1px solid var(--cyan);transform:rotate(45deg);font-size:8px; }.achievement span b { transform:rotate(-45deg);font-weight:500; }.achievement h3 { margin:0 0 10px;color:#d9f0f1;font:500 15px/1.3 var(--heading); }.achievement p { margin:0;color:#829fa7;font-size:9px;line-height:1.65; }
.contact-section { min-height:530px;position:relative;overflow:hidden;padding:100px 7.2vw;background:radial-gradient(circle at 70% 48%,rgba(0,245,255,.14),transparent 29%),linear-gradient(90deg,#06131b,#071f29);border-top:1px solid var(--cyan-line); }.contact-section>*:not(.contact-orbit){position:relative;z-index:1}.contact-section h2 { margin:0;color:var(--text);font:500 clamp(3rem,7vw,6.7rem)/.82 var(--heading);letter-spacing:-.08em; }.contact-section h2 em { color:transparent;font-style:normal;-webkit-text-stroke:1px var(--cyan); }.contact-section>p:not(.signal-label) { max-width:560px;margin:26px 0;color:#90aeb5;font-size:12px;line-height:1.7; }.contact-links { display:flex;flex-wrap:wrap;gap:10px;margin-top:30px; }.contact-links a { min-width:130px;display:flex;justify-content:space-between;padding:12px;color:var(--cyan);border:1px solid var(--cyan-line);font-size:9px;letter-spacing:.08em;transition:.2s; }.contact-links a:hover { background:var(--cyan);color:#001218; }.contact-orbit { position:absolute;right:-65px;top:50%;width:420px;height:420px;transform:translateY(-50%);border:1px solid rgba(0,245,255,.25);border-radius:50%;animation:spin 30s linear infinite; }.contact-orbit:before,.contact-orbit:after,.contact-orbit i { content:'';position:absolute;border:1px solid rgba(0,245,255,.18);border-radius:50%; }.contact-orbit:before{inset:35px}.contact-orbit:after{inset:92px}.contact-orbit i:nth-child(1){inset:136px}.contact-orbit i:nth-child(2){width:530px;height:1px;left:-56px;top:208px;background:rgba(0,245,255,.21);border:0}.contact-orbit i:nth-child(3){height:530px;width:1px;top:-56px;left:208px;background:rgba(0,245,255,.21);border:0}
footer { display:flex;justify-content:space-between;gap:15px;padding:23px 7.2vw;color:#577983;background:#02090e;border-top:1px solid var(--cyan-line);font-size:8px;letter-spacing:.07em; }footer a { color:var(--cyan); }
.modal { width:min(900px,calc(100vw - 30px));max-height:calc(100vh - 30px);padding:16px;border:1px solid var(--cyan-dim);color:var(--text);background:#061219;box-shadow:0 25px 100px #000; }.modal::backdrop { background:rgba(0,7,11,.83);backdrop-filter:blur(7px); }.modal-close { position:absolute;z-index:2;right:4px;top:4px;width:31px;height:31px;color:var(--cyan-pale);border:1px solid var(--cyan);background:#08252d;cursor:pointer;font-size:20px; }.lightbox img { display:block;max-width:100%;max-height:calc(100vh - 120px);margin:0 auto;object-fit:contain; }.lightbox p { margin:12px 3px 0;color:#a5c2c8;font-size:10px; }.credential-modal { width:min(860px,calc(100vw - 30px));padding:34px; }.credential-modal h2 { margin:14px 0;color:var(--cyan-pale);font:500 30px var(--heading); }.credential-modal>p:not(.signal-label) { color:#91abb1;font-size:11px;line-height:1.6; }.credential-table-wrap { overflow:auto;margin-top:23px; }.credential-table { width:100%;border-collapse:collapse;font-size:9px; }.credential-table th,.credential-table td { padding:11px;text-align:left;border:1px solid var(--cyan-line);white-space:nowrap; }.credential-table th { color:var(--cyan);background:rgba(0,245,255,.08);font-weight:500; }.credential-table td { color:#b8d4d8; }

@keyframes spin { to { transform:rotate(360deg); } }@keyframes spinReverse { to { transform:rotate(-360deg); } }@keyframes pulse { 50% { opacity:.25;box-shadow:none; } }@keyframes bgScan { 0%{transform:translateY(0);opacity:0}10%,90%{opacity:1}100%{transform:translateY(100vh);opacity:0} }@keyframes dataStream { 0%{transform:translateY(-100%);opacity:0}10%,90%{opacity:1}100%{transform:translateY(100vh);opacity:0} }@keyframes snippetFade { 0%,100%{opacity:0}50%{opacity:.75} }@keyframes dash { to { stroke-dashoffset:-70; } }@keyframes mapPulse { 50%{transform:scale(1.28);opacity:0}100%{opacity:0} }@keyframes mapSweep { 55%,100%{top:112%} }@keyframes faceScan { 0%,100%{top:6%;opacity:.35}50%{top:91%;opacity:1} }

@media(max-width:1120px){.hero-layout{grid-template-columns:minmax(245px,.8fr) 1.2fr}.biometric-card{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr .8fr;max-width:none;justify-self:stretch}.biometric-card .card-top{grid-column:1/-1}.face-area{height:280px}.identity-log{align-content:center;padding:25px}.skills-grid,.research-grid{grid-template-columns:repeat(2,1fr)}.achievements-grid{grid-template-columns:repeat(3,1fr)}.certificates-grid{grid-template-columns:repeat(3,1fr)}.experience-card{grid-template-columns:115px .8fr 1.7fr}.work-card,.work-card.has-image{grid-template-columns:170px 1fr}.hud-header{padding:0 30px}.site-nav{justify-content:flex-start}.floating-contact{display:none}}
@media(max-width:740px){.hud-header{height:63px;padding:0 20px}.hud-readout{display:none}.hud-brand b{font-size:10px}.hud-brand small{font-size:6px}.brand-icon{width:25px;height:25px;font-size:11px}.nav-toggle{display:grid;width:44px;height:36px;padding:7px;grid-template-columns:1fr;gap:4px;border:1px solid var(--cyan-line);background:transparent;color:var(--cyan);cursor:pointer}.nav-toggle span{height:1px;background:currentColor}.nav-toggle i{font:6px var(--mono);font-style:normal;letter-spacing:.08em}.site-nav{position:fixed;display:none;top:63px;left:0;right:0;padding:7px 18px 15px;max-height:calc(100vh - 63px);flex-direction:column;align-items:stretch;overflow:auto;background:rgba(2,7,13,.97)}.site-nav.open{display:flex}.site-nav a{padding:12px 5px;border-bottom:1px solid rgba(0,245,255,.06)}.site-nav a:after{display:none}.hero{min-height:0;padding:32px 20px 36px}.hero-status{font-size:7px}.hero-status b{display:none}.hero-layout{display:flex;flex-direction:column;gap:30px;margin:32px 0}.geo-card{order:2;width:100%;transform:none}.hero-copy{order:1}.biometric-card{order:3;display:block;width:100%;max-width:390px;align-self:center;transform:none}.face-area{height:348px}.identity-log{padding:12px}.hero h1{font-size:clamp(2.75rem,13vw,4rem)}.hero-description{font-size:11px}.hero-footer{font-size:7px}.hero-footer span:nth-child(2){display:none}.content-section{padding:76px 20px}.section-head{grid-template-columns:23px 24px 1fr;margin-bottom:34px}.section-head h2{font-size:12px;letter-spacing:.18em}.section-head>b{display:none}.about-grid{grid-template-columns:1fr;gap:32px}.about-grid h3{font-size:3rem}.education-list{padding-left:20px}.education-item{grid-template-columns:1fr;gap:9px;padding-left:19px}.skills-grid,.research-grid{grid-template-columns:1fr}.skill-card{min-height:145px}.experience-card{grid-template-columns:1fr;gap:14px;padding:24px}.experience-card ul{grid-template-columns:1fr}.gallery-grid,.certificates-grid{grid-template-columns:1fr 1fr;gap:8px}.gallery-item{padding:6px}.gallery-item h3{font-size:12px;margin-top:9px}.gallery-item p{font-size:8px}.publication-list{grid-template-columns:1fr}.publication{min-height:0;border-right:0;border-bottom:1px solid var(--cyan-line);padding:22px}.publication:last-child{border:0}.work-card,.work-card.has-image{grid-template-columns:1fr;gap:17px;padding:20px}.work-image{max-width:190px;height:130px}.work-card h3{font-size:23px}.achievements-grid{grid-template-columns:1fr 1fr}.achievement{min-height:185px}.contact-section{min-height:0;padding:76px 20px 85px}.contact-section h2{font-size:clamp(3rem,13vw,4.8rem)}.contact-orbit{width:300px;height:300px;right:-188px}.contact-orbit:before{inset:26px}.contact-orbit:after{inset:65px}.contact-orbit i:nth-child(1){inset:100px}.contact-orbit i:nth-child(2){top:149px;width:400px}.contact-orbit i:nth-child(3){left:149px;height:400px}footer{padding:19px 20px;flex-wrap:wrap;font-size:7px}.credential-modal{padding:27px 17px}.credential-table th,.credential-table td{padding:9px;font-size:8px}}
@media(max-width:410px){.hero-actions .hud-button{width:100%}.gallery-grid,.certificates-grid{grid-template-columns:1fr}.achievements-grid{grid-template-columns:1fr}.hero h1{font-size:2.55rem}.face-area{height:315px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Base44-inspired interaction modules */
.hud-brand { gap:9px; }.hud-brand > a { display:grid; gap:3px; }.hud-brand > a b { color:var(--cyan-pale); font:600 12px var(--heading); letter-spacing:.09em; }.hud-brand > a small { color:var(--muted); font-size:7px; letter-spacing:.13em; }.profile-trigger { position:relative; width:36px; height:36px; padding:2px; border:1px solid var(--cyan-dim); border-radius:50%; overflow:visible; background:#061923; cursor:pointer; transition:transform .2s,border-color .2s; }.profile-trigger:hover { border-color:var(--cyan); transform:scale(1.08); }.profile-trigger img { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; filter:grayscale(.2) contrast(1.12) saturate(.8); }.profile-pulse { position:absolute; right:-1px; bottom:0; width:7px; height:7px; border:1px solid var(--void); border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); animation:pulse 1.7s infinite; }.hud-readout>div { display:grid; gap:2px; margin-left:13px; padding-left:13px; border-left:1px solid var(--cyan-line); text-align:right; }.hud-readout time { margin:0; padding:0; border:0; }.hud-readout small { color:#597783; font-size:7px; }
.floating-contact { position:fixed; z-index:16; right:20px; top:auto; bottom:74px; display:flex; flex-direction:column; gap:11px; transform:none; writing-mode:initial; background:transparent; border:0; }.floating-contact a { position:relative; display:grid; place-items:center; width:44px; height:44px; color:rgba(0,245,255,.7); border:1px solid var(--cyan-line); background:rgba(4,21,31,.77); clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px); transition:transform .2s,border-color .2s,color .2s,background .2s; }.floating-contact a:hover { color:var(--cyan); border-color:var(--cyan-dim); background:rgba(0,245,255,.11); transform:translateX(-3px); }.floating-contact a span { width:auto; height:auto; border-radius:0; background:transparent; box-shadow:none; font:500 15px var(--mono); }.floating-contact a b { position:absolute; right:calc(100% + 10px); padding:5px 8px; color:var(--cyan); border:1px solid var(--cyan-line); background:#020408; opacity:0; pointer-events:none; font-size:8px; letter-spacing:.08em; white-space:nowrap; transition:opacity .2s; }.floating-contact a:hover b { opacity:1; }
.hud-frame { pointer-events:none; position:fixed; z-index:15; inset:0; }.geo-readout,.scroll-readout { position:absolute; bottom:15px; color:rgba(0,245,255,.42); font-size:8px; line-height:1.6; }.geo-readout { left:16px; }.scroll-readout { right:16px; display:grid; justify-items:end; gap:4px; }.scroll-readout i { display:block; width:96px; height:2px; overflow:hidden; background:rgba(0,245,255,.1); }.scroll-readout i b { display:block; width:0%; height:100%; background:var(--cyan); box-shadow:0 0 5px var(--cyan); }.scroll-readout em { font-style:normal; }.frame-corner { position:absolute; width:29px; height:29px; border-color:rgba(0,245,255,.3); }.corner-tl { left:0;top:0;border-left:1px solid;border-top:1px solid; }.corner-tr { right:0;top:0;border-right:1px solid;border-top:1px solid; }.corner-bl { left:0;bottom:0;border-left:1px solid;border-bottom:1px solid; }.corner-br { right:0;bottom:0;border-right:1px solid;border-bottom:1px solid; }
.world-map-area { aspect-ratio:1.58; background:radial-gradient(ellipse at center,rgba(0,245,255,.08),transparent 65%); }.world-map-area .map-land { fill:rgba(0,245,255,.10); stroke:rgba(78,240,248,.78); }.continent-label { fill:rgba(154,248,255,.36); font:500 8px var(--mono); letter-spacing:2px; }.world-scanline { position:absolute; z-index:3; top:5%; left:4%; right:4%; height:2px; background:var(--cyan-pale); box-shadow:0 0 13px 4px rgba(0,245,255,.73); animation:faceScan 3.5s ease-in-out infinite; }.face-module { background:radial-gradient(circle at 50% 42%,rgba(0,245,255,.12),transparent 34%),#071922; }.face-module:before { content:''; position:absolute; z-index:0; left:50%; top:50%; width:220px; height:220px; transform:translate(-50%,-50%); border:1px solid rgba(0,245,255,.18); border-radius:50%; box-shadow:0 0 45px rgba(0,245,255,.07); }.face-blueprint { position:absolute; z-index:2; inset:16px auto auto 50%; width:210px; height:290px; transform:translateX(-50%); overflow:visible; color:var(--cyan); filter:drop-shadow(0 0 9px rgba(0,245,255,.35)); }.blueprint-lines { fill:rgba(0,245,255,.04); stroke:rgba(146,249,255,.86); stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }.face-points circle { fill:var(--cyan-pale); stroke:var(--cyan); stroke-width:2; }.face-module .face-grid { z-index:1; }.face-module .face-scan { z-index:5; }.face-module .face-reticle { z-index:4; top:48%; }.face-module .face-corner,.face-module .face-data { z-index:6; }

/* Globe-style world map: a local SVG, so the portfolio remains fully static. */
.world-map-area { background:#03080c; isolation:isolate; }
.world-map-area > svg { display:none; }
.world-map-area::before { content:''; position:absolute; z-index:0; inset:0; background:#03080c url('assets/world-globe-v2.svg?v=full-panel-20261018') center/cover no-repeat; transform-origin:center; animation:fullMapMotion 24s ease-in-out infinite alternate; will-change:transform; }
.map-globe { display:none!important; }
@keyframes fullMapMotion { from { transform:scale(1.015) translateX(-.65%); } to { transform:scale(1.04) translateX(.65%); } }
.map-globe { position:absolute; z-index:1; top:50%; left:50%; width:min(68%,300px); aspect-ratio:1; overflow:hidden; border:1px solid rgba(117,223,233,.5); border-radius:50%; background:#07161c; box-shadow:inset -28px -12px 42px rgba(0,0,0,.78),inset 21px 10px 36px rgba(138,245,255,.08),0 0 35px rgba(0,245,255,.08); transform:translate(-50%,-50%); }
.map-globe-texture { position:absolute; inset:0; width:400%; height:100%; background:url('assets/world-map-texture.svg?v=20261018') left center/50% 100% repeat-x; transform:translate3d(-25%,0,0); animation:mapGlobeSpin 42s linear infinite; will-change:transform; }
.map-globe::before { content:''; position:absolute; z-index:1; inset:0; background:repeating-linear-gradient(0deg,transparent 0 24px,rgba(137,242,249,.08) 25px),repeating-linear-gradient(90deg,transparent 0 24px,rgba(137,242,249,.06) 25px); mix-blend-mode:screen; pointer-events:none; }
.map-globe::after { content:''; position:absolute; z-index:2; inset:-1px; border-radius:50%; background:radial-gradient(circle at 33% 35%,transparent 0 43%,rgba(0,0,0,.16) 67%,rgba(0,0,0,.82) 100%); pointer-events:none; }
@keyframes mapGlobeSpin { from { transform:translate3d(-25%,0,0); } to { transform:translate3d(-75%,0,0); } }
@media (hover:none), (pointer:coarse) { .map-globe-texture { animation-duration:60s; } }
@media (prefers-reduced-motion:reduce) { .map-globe-texture { animation:none; } }

/* The biometric module is a moving hologram, not a floating page element. */
.face-module { perspective:700px; transform-style:preserve-3d; }
.face-module:before { animation:faceHaloSpin 16s linear infinite; }
.face-blueprint { transform:translateX(-50%) perspective(700px) rotateY(-15deg) scale(.96); transform-origin:50% 52%; backface-visibility:visible; animation:faceHologramTurn 13s ease-in-out infinite; will-change:transform,filter; }
@keyframes faceHologramTurn { 0%,100% { transform:translateX(-50%) perspective(700px) rotateY(-15deg) scale(.96); filter:drop-shadow(-11px 0 7px rgba(0,245,255,.12)) drop-shadow(0 0 9px rgba(0,245,255,.35)); } 50% { transform:translateX(-50%) perspective(700px) rotateY(15deg) scale(1.01); filter:drop-shadow(11px 0 7px rgba(0,245,255,.12)) drop-shadow(0 0 15px rgba(0,245,255,.5)); } }
@keyframes faceHaloSpin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@media (hover:none), (pointer:coarse) { .face-blueprint { animation-duration:20s; }.face-module:before { animation-duration:24s; } }
@media (prefers-reduced-motion:reduce) { .face-blueprint,.face-module:before { animation:none; } }

/* Supplied biometric face artwork, kept inside the existing scanner frame. */
.face-module .face-blueprint { display:none; }
/* Restore the original full-screen biometric composition inside this module. */
.face-module > img.biometric-face { position:absolute; z-index:2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.86; mix-blend-mode:screen; transform-origin:50% 50%; filter:contrast(1.08) saturate(1.08) drop-shadow(0 0 12px rgba(0,245,255,.36)); animation:biometricFaceTurn 18s ease-in-out infinite; will-change:transform,filter; }
@keyframes biometricFaceTurn { 0%,100% { transform:perspective(900px) rotateY(-3deg); filter:contrast(1.08) saturate(1.08) drop-shadow(-6px 0 6px rgba(0,245,255,.12)) drop-shadow(0 0 12px rgba(0,245,255,.36)); } 50% { transform:perspective(900px) rotateY(3deg); filter:contrast(1.12) saturate(1.12) drop-shadow(6px 0 6px rgba(0,245,255,.12)) drop-shadow(0 0 17px rgba(0,245,255,.52)); } }
@media (hover:none), (pointer:coarse) { .biometric-face { animation-duration:23s; } }
@media (prefers-reduced-motion:reduce) { .biometric-face { animation:none; } }
.skills-interface { display:grid; grid-template-columns:280px minmax(300px,1fr); gap:55px; align-items:center; max-width:1010px; }.skill-orbit { position:relative; width:260px; height:260px; margin:auto; }.orbit-ring { position:absolute; border:1px solid rgba(0,245,255,.13); border-radius:50%; }.orbit-ring.outer { inset:0; border-top-color:rgba(0,245,255,.48); animation:spin 20s linear infinite; }.orbit-ring.middle { inset:16px; border-bottom-color:rgba(0,245,255,.33); animation:spinReverse 30s linear infinite; }.orbit-ring.inner { inset:48px; border-color:rgba(0,245,255,.16); }.skill-node { position:absolute; left:50%; top:50%; width:34px; height:34px; margin:-17px; border:1px solid rgba(0,245,255,.23); border-radius:50%; color:var(--cyan); background:var(--void); cursor:pointer; font-size:9px; transition:border-color .2s,background .2s,box-shadow .2s,transform .2s; }.skill-node:hover,.skill-node.active { border-color:var(--cyan); background:rgba(0,245,255,.14); box-shadow:0 0 13px rgba(0,245,255,.48); }.orbit-center { position:absolute; inset:0; display:grid; align-content:center; justify-items:center; pointer-events:none; }.orbit-center small { color:rgba(0,245,255,.45); font-size:9px; }.orbit-center b { color:var(--cyan); font-size:22px; font-weight:500; text-shadow:0 0 15px rgba(0,245,255,.35); }.skill-terminal { position:relative; min-height:205px; padding:28px; border:1px solid var(--cyan-line); background:rgba(0,245,255,.035); box-shadow:inset 0 0 25px rgba(0,245,255,.025); }.skill-terminal:before,.skill-terminal:after { content:''; position:absolute; width:12px;height:12px;border-color:var(--cyan); }.skill-terminal:before { left:-1px;top:-1px;border-left:1px solid;border-top:1px solid; }.skill-terminal:after { right:-1px;bottom:-1px;border-right:1px solid;border-bottom:1px solid; }.skill-terminal>span { color:rgba(0,245,255,.52); font-size:10px; }.skill-terminal>span b { color:var(--cyan); font-weight:500; }.skill-terminal h3 { margin:9px 0 19px; color:var(--cyan); font:500 25px var(--heading); text-shadow:0 0 16px rgba(0,245,255,.19); }.skill-items { display:flex; flex-wrap:wrap; gap:8px 14px; min-height:47px; }.skill-items span { color:#ccdfe3; font-size:11px; }.skill-items span:before { content:'▸'; color:rgba(0,245,255,.45); padding-right:5px; }.skill-controls { display:flex; gap:6px; margin-top:24px; }.skill-controls button { width:12px; height:2px; padding:0; border:0; background:rgba(0,245,255,.2); cursor:pointer; transition:width .2s,background .2s; }.skill-controls button.active { width:32px; background:var(--cyan); }
@media(max-width:740px){.hud-frame { display:none; }.floating-contact { right:13px; bottom:18px; gap:8px; }.floating-contact a { width:38px; height:38px; }.floating-contact a b { display:none; }.profile-trigger{width:32px;height:32px}.hud-brand>a b{font-size:10px}.hud-brand>a small{font-size:6px}.hud-readout{font-size:7px}.skills-interface{grid-template-columns:1fr;gap:31px}.skill-terminal{padding:23px}.skill-terminal h3{font-size:21px}.world-map-area{aspect-ratio:1.42}.face-blueprint{width:195px}.geo-readout,.scroll-readout{display:none}}

/* Alternating works showcase translated from the supplied WorkPlaceholder/WorksSection */
.works-list { max-width:1080px; display:grid; gap:86px; }.work-showcase { display:grid; grid-template-columns:minmax(260px,1fr) minmax(290px,1fr); gap:clamp(28px,5vw,67px); align-items:center; }.work-showcase.reverse .work-visual { order:2; }.work-showcase.reverse .work-info { order:1; }.work-visual { position:relative; }.work-index { position:absolute; z-index:3; top:-12px; left:-12px; padding:5px 8px; color:var(--cyan); border:1px solid rgba(0,245,255,.34); background:var(--void); font-size:9px; font-weight:500; letter-spacing:.04em; }.work-image-frame,.work-placeholder { position:relative; height:256px; overflow:hidden; border:1px solid var(--cyan-line); background:rgba(0,245,255,.03); clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px)); }.work-image-frame { padding:16px; }.work-image-frame img { display:block; width:100%; height:100%; object-fit:contain; background:#050810; }.work-image-frame>span { position:absolute; z-index:2; top:0; left:0; right:0; height:2px; opacity:0; background:linear-gradient(90deg,transparent,var(--cyan),transparent); box-shadow:0 0 10px var(--cyan); transition:opacity .25s; animation:workScan 3s linear infinite; }.work-showcase:hover .work-image-frame>span { opacity:1; }.work-placeholder { display:grid; place-items:center; }.placeholder-content { position:relative; z-index:2; display:grid; gap:15px; justify-items:center; text-align:center; }.placeholder-icon { display:grid; place-items:center; width:64px; height:64px; color:rgba(0,245,255,.65); border:1px solid rgba(0,245,255,.3); background:rgba(0,245,255,.05); clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%); animation:projectFloat 6s ease-in-out infinite; }.placeholder-icon svg { width:31px; height:31px; }.placeholder-content div { display:grid; gap:6px; }.placeholder-content small { color:rgba(255,184,0,.7); font-size:9px; letter-spacing:.12em; }.placeholder-content b { color:rgba(0,245,255,.48); font:500 19px var(--heading); }.placeholder-grid { position:absolute; inset:0; opacity:.3; background-image:linear-gradient(rgba(0,245,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,255,.11) 1px,transparent 1px); background-size:27px 27px; }.placeholder-scan { position:absolute; z-index:1; top:-2px; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--cyan),transparent); box-shadow:0 0 10px var(--cyan); animation:workScan 3s linear infinite; }.placeholder-corner { position:absolute; z-index:2; width:15px; height:15px; border-color:rgba(0,245,255,.42); }.placeholder-corner.one { left:9px;top:9px;border-top:1px solid;border-left:1px solid; }.placeholder-corner.two { right:9px;top:9px;border-top:1px solid;border-right:1px solid; }.placeholder-corner.three { left:9px;bottom:9px;border-bottom:1px solid;border-left:1px solid; }.placeholder-corner.four { right:9px;bottom:9px;border-bottom:1px solid;border-right:1px solid; }.work-info .work-tag { display:block; color:rgba(255,184,0,.76); font-size:10px; letter-spacing:.13em; }.work-info h3 { margin:11px 0 13px; color:#deeff2; font:600 clamp(1.8rem,3.1vw,2.65rem)/1 var(--heading); letter-spacing:-.05em; transition:color .2s; }.work-showcase:hover .work-info h3 { color:var(--cyan); }.work-info>p { margin:0; color:#8ca5ae; font-size:11px; line-height:1.72; }.work-info .work-subtitle { margin:-5px 0 14px; color:#8fb6bd; }.work-info .work-feature { margin-top:13px; padding:11px; color:#9bafb2; border:1px solid rgba(255,184,0,.14); background:rgba(255,184,0,.03); font-size:10px; }.work-info .work-note { margin-top:13px; padding:11px; color:rgba(255,184,0,.66); border:1px solid rgba(255,184,0,.17); background:rgba(255,184,0,.05); font-size:10px; }.work-links { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }.work-links a,.work-links .credential-trigger { padding:9px 12px; color:var(--cyan); border:1px solid rgba(0,245,255,.32); background:transparent; clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%); font:8px var(--mono); letter-spacing:.07em; transition:background .2s,color .2s,border .2s; }.work-links a:hover { color:#001318; border-color:var(--cyan); background:var(--cyan); }.work-links .credential-trigger { color:var(--amber); border-color:rgba(255,184,0,.32); }.work-links .credential-trigger:hover { color:#1c1200; border-color:var(--amber); background:var(--amber); }
@keyframes workScan { 0% { top:-2px; opacity:0; } 8%,92% { opacity:1; } 100% { top:100%; opacity:0; } }@keyframes projectFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-11px); } }
@media(max-width:740px){.works-list{gap:57px}.work-showcase,.work-showcase.reverse{grid-template-columns:1fr;gap:28px}.work-showcase.reverse .work-visual,.work-showcase.reverse .work-info{order:initial}.work-image-frame,.work-placeholder{height:230px}.work-info h3{font-size:2rem}.work-index{left:-5px}.work-links a,.work-links .credential-trigger{font-size:7px;padding:9px}.placeholder-content b{font-size:17px}}

/* Requested loader, hero alignment, and Base44-inspired record layouts */
.site-loader .loader-core { --loader-photo:clamp(220px,31vw,410px); width:var(--loader-photo); gap:18px; }.site-loader .loader-core img { width:var(--loader-photo); height:var(--loader-photo); border:2px solid rgba(0,245,255,.6); box-shadow:0 0 35px rgba(0,245,255,.22); }.site-loader .loader-core:before,.site-loader .loader-core:after,.site-loader .loader-ring { left:50%; transform:translateX(-50%); }.site-loader .loader-core:before { width:calc(100% + 38px); height:calc(100% - 56px); top:-19px; left:-19px; transform:none; }.site-loader .loader-core:after { width:calc(100% + 72px); height:calc(100% - 22px); top:-36px; left:-36px; transform:none; }.site-loader .loader-ring { width:calc(100% + 18px); height:calc(100% - 76px); top:-9px; left:-9px; transform:rotate(-30deg); }.site-loader .loader-core b { margin-top:21px; font-size:clamp(14px,1.6vw,19px); }.site-loader .loader-core small { font-size:9px; white-space:nowrap; }
.cv-button { color:#fff1f1; border-color:#ff4757; background:#c92635; box-shadow:0 0 18px rgba(255,71,87,.2); }.cv-button:hover { color:#fff; background:#e33849; border-color:#ff7984; }.india-pin circle { stroke:#ff4051!important; }.india-pin circle:first-child { fill:#ffd1d6!important; }.india-pin circle:nth-child(2),.india-pin circle:nth-child(3) { stroke:#ff4051!important; }.map-tag path { stroke:#ff5967!important; }.map-tag text:first-of-type { fill:#ffb5bd!important; }
@media(min-width:1121px){.hero-layout { align-items:stretch; }.hero-copy,.geo-card,.biometric-card { height:clamp(418px,34vw,442px); }.hero-copy { display:flex; flex-direction:column; align-items:flex-start; }.hero-copy .hero-actions { margin-top:auto; }.geo-card,.biometric-card { display:flex; flex-direction:column; }.geo-card .map-area,.biometric-card .face-area { flex:1; min-height:0; height:auto; }.geo-card .world-map-area { aspect-ratio:auto; }.biometric-card { align-self:stretch; }.biometric-card .identity-log { flex:0 0 auto; }.face-blueprint { max-height:calc(100% - 22px); }}
.education-list { max-width:896px; padding:0; border:0; }.education-item { display:grid; grid-template-columns:auto 1fr; gap:24px; padding:32px 28px 32px 0; border-bottom:1px solid rgba(0,245,255,.1); transition:border-color .2s; }.education-item:last-child { padding-bottom:32px; }.education-item:before { display:none; }.education-item:hover { border-bottom-color:rgba(0,245,255,.3); }.education-item>b { padding-top:3px; color:rgba(0,245,255,.45); font-size:10px; }.education-item h3 { margin:0; color:#dce9ed; font:500 clamp(18px,2.2vw,24px) var(--heading); transition:color .2s; }.education-item:hover h3 { color:var(--cyan); }.education-item p { margin-top:8px; color:#71848e; font-size:11px; }.education-item>i { position:absolute; right:0; top:50%; width:8px; height:8px; border-radius:50%; background:rgba(0,245,255,.18); transform:translateY(-50%); transition:background .2s,box-shadow .2s; }.education-item:hover>i { background:var(--cyan); box-shadow:0 0 11px var(--cyan); }
.experience-list { max-width:896px; gap:0; }.experience-card { display:block; padding:39px 0 39px 47px; border:0; border-left:1px solid rgba(0,245,255,.15); background:transparent; transition:border-color .2s; }.experience-card:hover { background:transparent; border-left-color:rgba(0,245,255,.45); }.experience-card:before { left:-7px; right:auto; top:46px; width:12px; height:12px; border-radius:50%; border:1px solid rgba(0,245,255,.45); background:var(--void); transform:none; transition:background .2s,box-shadow .2s; }.experience-card:hover:before { background:var(--cyan); box-shadow:0 0 12px var(--cyan); }.experience-period { display:block; color:rgba(255,184,0,.72); font-size:10px; letter-spacing:.12em; margin-bottom:8px; }.experience-card h3 { margin:0 0 4px; color:#dce9ed; font:500 clamp(23px,3vw,31px) var(--heading); transition:color .2s; }.experience-card:hover h3 { color:var(--cyan); }.experience-role { margin:0 0 15px; color:rgba(0,245,255,.72); font-size:11px; }.experience-card ul { display:grid; grid-template-columns:1fr; gap:6px; max-width:770px; }.experience-card li { padding-left:14px; color:#819aa3; font-size:11px; }.experience-card li:before { content:'▸'; color:rgba(0,245,255,.45); }
.publication-list { max-width:1140px; gap:20px; border:0; background:none; }.publication { min-height:0; position:relative; padding:24px; border:1px solid rgba(0,245,255,.15)!important; background:rgba(0,245,255,.03); transition:border-color .2s,background .2s; }.publication:before { content:''; position:absolute; top:-1px; left:-1px; width:12px; height:12px; border-top:1px solid rgba(0,245,255,.48); border-left:1px solid rgba(0,245,255,.48); }.publication:hover { border-color:rgba(0,245,255,.42)!important; background:rgba(0,245,255,.06); }.publication-number { color:rgba(255,184,0,.65); font-size:9px; }.publication h3 { margin:13px 0; color:#dce9ed; font-size:16px; transition:color .2s; }.publication:hover h3 { color:var(--cyan); }.publication p { font-size:10px; }.publication a { margin-top:17px; padding:5px 8px; border:1px solid rgba(0,245,255,.3); color:var(--cyan); }.publication .publication-meta { margin-top:16px; padding-top:12px; border-top:1px solid rgba(0,245,255,.1); }
.achievements-grid { display:grid; max-width:896px; grid-template-columns:1fr; border:0; }.achievement { min-height:0; display:flex; align-items:flex-start; gap:24px; padding:23px 0; border:0; border-bottom:1px solid rgba(0,245,255,.1); background:transparent; transition:border-color .2s; }.achievement:hover { border-bottom-color:rgba(0,245,255,.3); }.achievement>span { display:block; width:64px; height:auto; margin:0; color:rgba(0,245,255,.1); border:0; transform:none; font:700 30px var(--mono); transition:color .2s; }.achievement:hover>span { color:rgba(0,245,255,.34); }.achievement h3 { margin:0 0 5px; color:#dce9ed; font:500 18px var(--heading); transition:color .2s; }.achievement:hover h3 { color:var(--cyan); }.achievement p { font-size:11px; color:#72858e; }.achievement>i { margin-left:auto; color:rgba(255,184,0,.4); font-style:normal; font-size:19px; transition:color .2s; }.achievement:hover>i { color:var(--amber); }
.gallery-grid,.certificates-grid { max-width:1140px; grid-template-columns:repeat(3,1fr); gap:20px; }.gallery-item { padding:0; overflow:hidden; border-color:rgba(0,245,255,.15); background:rgba(0,245,255,.03); clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px)); }.gallery-item:hover { border-color:rgba(0,245,255,.42); transform:none; }.gallery-media { height:278px; aspect-ratio:auto; background:#050810; }.gallery-media:after { display:none; }.gallery-media img { opacity:.5; filter:grayscale(.3); }.gallery-item:hover .gallery-media img { opacity:.8; transform:scale(1.05); }.gallery-media:before { content:''; position:absolute; z-index:1; inset:0; background:linear-gradient(to top,#020408,rgba(2,4,8,.38),transparent); }.gallery-media>span { position:absolute; z-index:2; top:13px; left:13px; color:rgba(0,245,255,.55); font-size:9px; }.gallery-media>i { position:absolute; z-index:3; left:0; right:0; top:0; height:2px; opacity:0; background:linear-gradient(90deg,transparent,var(--cyan),transparent); box-shadow:0 0 10px var(--cyan); transition:opacity .2s; animation:workScan 3s linear infinite; }.gallery-item:hover .gallery-media>i { opacity:1; }.gallery-caption { position:relative; padding:18px 19px 19px; }.gallery-item h3 { margin:0 0 5px; color:#dce9ed; font-size:16px; transition:color .2s; }.gallery-item:hover h3 { color:var(--cyan); }.gallery-item p { margin:0; color:#72858e; font-size:10px; }.certificates-grid .gallery-item h3 { font-size:16px; }
@media(max-width:1240px){.nav-toggle { display:grid; width:44px; height:36px; padding:7px; grid-template-columns:1fr; gap:4px; border:1px solid var(--cyan-line); background:transparent; color:var(--cyan); cursor:pointer; }.nav-toggle span { height:1px; background:currentColor; }.nav-toggle i { font:6px var(--mono); font-style:normal; letter-spacing:.08em; }.site-nav { position:fixed; display:none; top:72px; left:0; right:0; max-width:none; max-height:calc(100vh - 72px); padding:9px 25px 17px; flex-direction:column; align-items:stretch; overflow:auto; background:rgba(2,7,13,.98); }.site-nav.open { display:flex; }.site-nav a { padding:12px 5px; border-bottom:1px solid rgba(0,245,255,.07); }.site-nav a:after { display:none; }}
@media(max-width:740px){.site-loader .loader-core { --loader-photo:clamp(210px,65vw,300px); }.site-loader .loader-core small { font-size:7px; white-space:normal; }.site-nav { top:63px; max-height:calc(100vh - 63px); }.education-item { gap:14px; padding-right:19px; }.education-item h3 { font-size:18px; }.experience-card { padding-left:32px; }.experience-card h3 { font-size:24px; }.publication-list { grid-template-columns:1fr; }.gallery-grid,.certificates-grid { grid-template-columns:1fr; gap:15px; }.gallery-media { height:270px; }.achievement { gap:15px; }.achievement>span { width:48px; font-size:24px; }.achievement h3 { font-size:16px; }}

/* Keep certificate records clean: scan-line animation remains only for LOR previews. */
#experience-certificates .gallery-media>i,
#certificates .gallery-media>i,
#lors .gallery-media>i { display:none; }

/* Expand the interactive skills console fluidly with the viewport. */
.skills-interface { max-width:1240px; grid-template-columns:minmax(340px,.9fr) minmax(470px,1.1fr); gap:clamp(58px,8vw,140px); }.skill-orbit { width:clamp(320px,30vw,460px); height:clamp(320px,30vw,460px); }.orbit-ring.middle { inset:6%; }.orbit-ring.inner { inset:19%; }.skill-node { width:clamp(37px,3.1vw,47px); height:clamp(37px,3.1vw,47px); margin:-22px; font-size:clamp(9px,.8vw,11px); }.orbit-center small { font-size:clamp(10px,.8vw,12px); }.orbit-center b { font-size:clamp(26px,2.4vw,36px); }.skill-terminal { min-height:clamp(275px,26vw,380px); padding:clamp(30px,3.6vw,52px); display:flex; flex-direction:column; justify-content:center; }.skill-terminal>span { font-size:clamp(10px,.8vw,12px); }.skill-terminal h3 { font-size:clamp(28px,3vw,42px); }.skill-items { gap:12px 19px; }.skill-items span { font-size:clamp(12px,1vw,15px); }.skill-controls { margin-top:clamp(27px,3vw,42px); }
@media(max-width:740px){.skills-interface { grid-template-columns:1fr; gap:35px; }.skill-orbit { width:min(88vw,370px); height:min(88vw,370px); }.skill-terminal { min-height:245px; padding:26px; }.skill-terminal h3 { font-size:26px; }}

/* Content-safe layout rules: new cards flow naturally without fixed item counts. */
.content-section :where(h2,h3,p,small,span,li,a) { overflow-wrap:anywhere; }.research-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); }.publication-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }.gallery-grid,.certificates-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); }.skills-interface { width:min(100%,1240px); }.works-list,.experience-list,.education-list,.achievements-grid { width:min(100%,896px); }.gallery-media { height:clamp(230px,23vw,300px); }.work-showcase { min-width:0; }.work-info,.publication,.research-card,.gallery-item,.education-item,.experience-card,.achievement { min-width:0; }
/* If future menu labels exceed the header width, JavaScript enables this compact menu. */
.compact-nav .nav-toggle { display:grid; width:44px; height:36px; padding:7px; grid-template-columns:1fr; gap:4px; border:1px solid var(--cyan-line); background:transparent; color:var(--cyan); cursor:pointer; }.compact-nav .nav-toggle span { height:1px; background:currentColor; }.compact-nav .nav-toggle i { font:6px var(--mono); font-style:normal; letter-spacing:.08em; }.compact-nav .site-nav { position:fixed; display:none; top:72px; left:0; right:0; max-width:none; max-height:calc(100vh - 72px); padding:9px 25px 17px; flex-direction:column; align-items:stretch; overflow:auto; background:rgba(2,7,13,.98); }.compact-nav .site-nav.open { display:flex; }.compact-nav .site-nav a { padding:12px 5px; border-bottom:1px solid rgba(0,245,255,.07); }.compact-nav .site-nav a:after { display:none; }
@media(max-width:740px){.compact-nav .site-nav { top:63px; max-height:calc(100vh - 63px); }.gallery-media { height:270px; }}

/* Keep the interface anchored: decorative particles and project icons do not drift. */
.data-stream,.data-snippet { display:none; }
.placeholder-icon { animation:none; }
.ecm-image-frame > span { display:none; }

/* Phones can request a desktop-width layout. Use input capability, not only width,
   to keep that mode compact and smooth on Android and other touch devices. */
@media (hover:none), (pointer:coarse) {
  html { scroll-behavior:auto; }
  .hud-header,.site-nav { backdrop-filter:none; }
  .hud-frame,.floating-contact { display:none; }
  .jarvis-bg { background:linear-gradient(180deg,#07131d 0%,#020408 58%,#020408 100%); }
  .bg-grid { opacity:.16; mask-image:none; }
  .bg-vignette,.bg-scan { display:none; }
  .hero { min-height:0; justify-content:flex-start; padding-top:28px; padding-bottom:32px; }
  .hero-layout { margin:26px 0; }
  .hero-footer { margin-top:0; }
  /* Stop only background drift and project-card scans on touch devices.
     The map, biometric scanner and skill rings remain alive. */
  .jarvis-bg *,
  .contact-orbit,
  .placeholder-scan,
  .work-image-frame > span { animation:none!important; }
  .placeholder-scan,.work-image-frame > span { opacity:.45; }
  .map-land,.face-blueprint { filter:none; }
  .content-section { content-visibility:auto; contain-intrinsic-size:auto 850px; }
}

/* Android's “desktop site” uses a wide CSS viewport even on a phone. Avoid
   reserving a full viewport after the biometric card at those widths too. */
@media (max-width:1280px) {
  .hero { min-height:0; justify-content:flex-start; }
  .hero-layout { margin-top:28px; margin-bottom:28px; }
  .hero-footer { margin-top:0; }
}

/* Redmi Chrome may request a desktop user agent, which bypasses CSS width and
   pointer queries. `touch-device` is added before this stylesheet loads. */
html.touch-device { scroll-behavior:auto; }
html.touch-device .hud-frame,
html.touch-device .floating-contact { display:none!important; }
html.touch-device .hud-header,
html.touch-device .site-nav { backdrop-filter:none; }
html.touch-device .hero {
  min-height:0!important;
  justify-content:flex-start;
  padding-top:28px;
  padding-bottom:32px;
}
html.touch-device .hero-layout {
  display:flex!important;
  flex-direction:column;
  align-items:stretch;
  gap:22px;
  margin:26px 0!important;
}
html.touch-device .hero-copy { order:1; width:100%; }
html.touch-device .geo-card {
  order:2;
  width:100%;
  height:auto!important;
  transform:none!important;
}
html.touch-device .biometric-card {
  order:3;
  display:block!important;
  width:100%;
  max-width:none!important;
  height:auto!important;
  transform:none!important;
}
html.touch-device .hero-footer { margin-top:0!important; }
html.touch-device .map-sweep,
html.touch-device .bg-scan,
html.touch-device .data-stream,
html.touch-device .data-snippet,
html.touch-device .placeholder-scan,
html.touch-device .work-image-frame > span { display:none!important; }
/* Keep the requested, lightweight JARVIS indicators. Their slower cadence is
   intentional: it preserves the effect without the Redmi scroll jitter. */
html.touch-device .face-scan,
html.touch-device .world-scanline { display:block!important; animation:faceScan 7s ease-in-out infinite!important; }
html.touch-device .hero .map-route path { animation:dash 16s linear infinite!important; }
html.touch-device .hero .india-pin circle:nth-child(2) { animation:mapPulse 3s ease-out infinite!important; }
html.touch-device .hero .india-pin circle:nth-child(3) { animation:mapPulse 3s 1.5s ease-out infinite!important; }
html.touch-device .skill-orbit .orbit-ring.outer { animation:spin 35s linear infinite!important; }
html.touch-device .skill-orbit .orbit-ring.middle { animation:spinReverse 45s linear infinite!important; }
html.touch-device .online-dot,
html.touch-device .profile-pulse { animation:pulse 2.2s ease-in-out infinite!important; }

/* Desktop hero refinement: retain the original heights while giving the
   biometric console enough horizontal room for a full scanner image. */
@media (min-width:1121px) {
  .hero-layout {
    grid-template-columns:minmax(260px, .8fr) minmax(365px, 1.06fr) minmax(310px, .92fr);
  }

  .biometric-card {
    width:100%;
    max-width:350px;
  }
}

/* Move the map surface across its fixed globe frame, which reads as a slow
   globe rotation without changing the card dimensions or causing layout shift. */
.world-map-area::before {
  background-image:url('assets/world-globe-v2.svg?v=rotating-surface-20261018');
  background-position:42% 50%;
  background-size:auto 108%;
  animation:fullMapRotation 12s ease-in-out infinite;
  will-change:transform,background-position;
}

@keyframes fullMapRotation {
  0%,100% { transform:scale(1.015) translateX(-.8%); background-position:42% 50%; }
  50% { transform:scale(1.045) translateX(.8%); background-position:58% 50%; }
}

@media (prefers-reduced-motion:reduce) {
  .world-map-area::before { animation:none; }
}

/* A genuine globe turn: the fixed frame stays in place while the land surface
   animates inside the SVG. The square source is used only by narrow desktop
   cards, so the complete circle is never cropped. */
.world-map-area::before { display:none; }
.world-globe-asset {
  position:absolute;
  z-index:0;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
}
.world-globe-wide { object-fit:cover; object-position:center; }
.world-globe-square { display:none; }

@media (min-width:1121px) {
  .world-globe-wide { display:none; }
  .world-globe-square { display:block; object-fit:contain; object-position:center; }
}

/* The supplied face image is the visual focus. Remove the reference-style
   scan bar and use one proportional, unobtrusive recognition ring instead. */
.face-module .face-scan { display:none!important; }
.face-module:before {
  display:none!important;
  animation:none!important;
}
.face-module .face-reticle {
  width:min(80%, 288px);
  height:auto;
  max-height:88%;
  aspect-ratio:1;
  top:51%;
  border-color:rgba(0,245,255,.55);
  box-shadow:0 0 28px rgba(0,245,255,.28), inset 0 0 22px rgba(0,245,255,.05);
}
.face-module .face-reticle:before,
.face-module .face-reticle:after,
.face-module .face-reticle i { display:none; }

/* Clean replacement artwork: no scan line is embedded in this face image. */
.face-module > img.biometric-face {
  object-fit:contain;
  object-position:center;
  padding:8px 18px 0;
  opacity:.96;
  mix-blend-mode:screen;
}

/* Face scanner: same moving read-line treatment as the globe module. */
.face-module .face-scan {
  display:block!important;
  z-index:5;
  top:5%;
  left:8%;
  right:8%;
  height:2px;
  background:var(--cyan-pale);
  box-shadow:0 0 13px 4px rgba(0,245,255,.73);
  animation:faceScan 3.5s ease-in-out infinite!important;
}
