@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500..800&family=Hind+Siliguri:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:25px}body{color:#f5f4fa;background:#101014;min-width:320px;min-height:100vh;font-family:Inter,sans-serif}button,input,textarea{font:inherit}a{-webkit-tap-highlight-color:transparent}::selection{color:#171321;background:#a78bfa}img{max-width:100%}.portfolio{--paper:#f5f6f1;--paper-2:#ebeee7;--surface:#fff;--ink:#0e1f19;--muted:#55665e;--line:#0e1f191f;--green-900:#0a2e23;--green-800:#0f3d30;--green-600:#0a6b50;--red:#e63950;--on-dark:#edf4ef;--on-dark-muted:#9db4a9;--ease:cubic-bezier(.22, .8, .24, 1);--font-body:"Hind Siliguri", "Noto Sans Bengali", system-ui, sans-serif;--font-display:"Bricolage Grotesque", "Hind Siliguri", "Noto Sans Bengali", system-ui, sans-serif;--shadow:0 18px 50px #0a2e231a;background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-body);text-align:left;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;line-height:1.75;position:relative;overflow-x:clip}.portfolio *,.portfolio :before,.portfolio :after{box-sizing:border-box}:where(.portfolio) :is(h1,h2,h3,p,ul,ol,dl,dd){margin:0;padding:0}:where(.portfolio) a{color:inherit;text-decoration:none}:where(.portfolio) button{font-family:inherit}:where(.portfolio) img{max-width:100%}.portfolio ::selection{background:var(--red);color:#fff}.portfolio :focus-visible{outline:2px solid var(--green-600);outline-offset:3px;border-radius:8px}.portfolio.is-loading{height:100vh;overflow:hidden}html,body{background:#f5f6f1;margin:0}html{scroll-padding-top:96px}.icon{flex-shrink:0;display:block}.wrap{width:100%;max-width:1160px;margin-inline:auto;padding-inline:28px}.section{padding:130px 0;scroll-margin-top:40px}.hero h1,.section-title,.panel-top h3,.project-main h3{font-family:var(--font-display);text-wrap:balance}.portfolio p{text-wrap:pretty}.preloader{z-index:3000;background:var(--green-900);color:var(--on-dark);transition:transform .9s var(--ease) .1s, visibility 0s linear 1s;place-items:center;display:grid;position:fixed;inset:0}.preloader.is-done{visibility:hidden;transform:translateY(-100%)}.preloader-inner{justify-items:center;gap:22px;display:grid}.preloader-disc{background:var(--red);width:18px;height:18px;animation:discPulse 1.2s var(--ease) infinite;border-radius:50%}.preloader-name{font-family:var(--font-display);letter-spacing:-.01em;animation:fadeIn .8s var(--ease) both;font-size:22px;font-weight:600}.preloader-line{background:#ffffff26;border-radius:2px;width:140px;height:2px;overflow:hidden}.preloader-line i{background:var(--red);transform-origin:0;height:100%;animation:lineLoad 1.2s var(--ease) infinite;display:block}@keyframes discPulse{50%{transform:scale(1.7)}}@keyframes lineLoad{0%{transform-origin:0;transform:scaleX(0)}50%{transform-origin:0;transform:scaleX(1)}51%{transform-origin:100%}to{transform-origin:100%;transform:scaleX(0)}}@keyframes fadeIn{0%{opacity:0}}.scroll-progress{z-index:2000;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0}.scroll-progress div{background:var(--red);transform-origin:0;height:100%;transform:scaleX(0)}.navbar{z-index:1500;pointer-events:none;padding:16px 20px;position:fixed;top:0;left:0;right:0}.nav-inner{pointer-events:auto;-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);max-width:1120px;transition:background .4s, box-shadow .4s, transform .5s var(--ease);background:#ffffff9e;border:1px solid #0e1f1914;border-radius:999px;justify-content:space-between;align-items:center;gap:20px;margin-inline:auto;padding:8px 8px 8px 26px;display:flex;position:relative}.navbar.is-scrolled .nav-inner{background:#ffffffdb;box-shadow:0 12px 40px #0a2e231f}.logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);white-space:nowrap;align-items:center;gap:3px;font-size:20px;font-weight:700;display:inline-flex}.logo-dot{background:var(--red);width:8px;height:8px;transition:transform .5s var(--ease);border-radius:50%;margin-top:8px}.logo:hover .logo-dot{transform:scale(1.8)}.nav-links{align-items:center;gap:4px;display:flex}.nav-links a:not(.nav-contact){color:var(--muted);border-radius:999px;padding:9px 16px;font-size:15px;font-weight:500;transition:color .3s,background .3s;position:relative}.nav-links a:not(.nav-contact):hover{color:var(--ink);background:#0e1f190d}.nav-links a.active:not(.nav-contact){color:var(--ink);background:#0e1f1912}.nav-links .nav-contact{background:var(--green-900);color:#fff;transition:background .35s, transform .35s var(--ease);border-radius:999px;align-items:center;gap:8px;margin-left:8px;padding:11px 20px;font-size:15px;font-weight:600;display:inline-flex}.nav-links .nav-contact:hover{background:var(--red);transform:translateY(-1px)}.nav-links .nav-contact .icon{transition:transform .35s var(--ease)}.nav-links .nav-contact:hover .icon{transform:translate(2px,-2px)}.language-toggle{border:1px solid var(--line);min-width:52px;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;margin-left:8px;padding:9px 14px;font-size:14px;font-weight:600;transition:background .3s,color .3s,border-color .3s}.language-toggle:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.menu-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;width:46px;height:46px;display:none;position:relative}.menu-btn span{background:var(--ink);height:2px;transition:transform .45s var(--ease);border-radius:2px;position:absolute;left:14px;right:14px}.menu-btn span:first-child{top:18px}.menu-btn span:nth-child(2){top:26px}.menu-open .menu-btn span:first-child{transform:translateY(4px)rotate(45deg)}.menu-open .menu-btn span:nth-child(2){transform:translateY(-4px)rotate(-45deg)}.btn{cursor:pointer;min-height:54px;transition:background .35s, color .35s, border-color .35s, transform .35s var(--ease), box-shadow .35s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:12px;padding:10px 10px 10px 26px;font-size:16px;font-weight:600;line-height:1.2;display:inline-flex;position:relative}.btn-primary{background:var(--green-900);color:#fff;box-shadow:0 12px 30px #0a2e2338}.btn-primary:hover{background:var(--green-800);transform:translateY(-3px);box-shadow:0 18px 40px #0a2e234d}.btn-icon{background:var(--red);color:#fff;width:36px;height:36px;transition:transform .45s var(--ease);border-radius:50%;place-items:center;display:grid}.btn-primary:hover .btn-icon{transform:rotate(45deg)}.btn-outline{color:var(--ink);background:0 0;border-color:#0e1f1940;padding:10px 26px}.btn-outline:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-3px)}.btn:active{transform:translateY(0)scale(.98)}.btn:disabled{opacity:.8;cursor:progress;transform:none}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero{padding-top:150px;position:relative}.hero:before{content:"";pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.35;background-size:72px 72px;height:100%;position:absolute;inset:0 0 auto;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 30%,#000,#0000 75%)}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:center;gap:64px;padding-bottom:90px;display:grid;position:relative}.availability{background:var(--surface);border:1px solid var(--line);letter-spacing:.04em;color:var(--green-800);border-radius:999px;align-items:center;gap:10px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex}.status-dot{background:#22b573;border-radius:50%;width:8px;height:8px;animation:2s ease-out infinite ping}@keyframes ping{0%{box-shadow:0 0 #22b5738c}80%,to{box-shadow:0 0 0 9px #22b57300}}.hello{color:var(--muted);margin-top:30px;font-size:20px;font-weight:500}.hero h1{letter-spacing:-.04em;margin-top:10px;font-size:clamp(2.4rem,4.7vw,4.1rem);font-weight:700;line-height:1.06}.h1-line{display:block}.h1-accent{color:var(--green-600)}.hero-description{max-width:540px;color:var(--muted);margin-top:26px;font-size:18px}.hero-buttons{flex-wrap:wrap;gap:14px;margin-top:38px;display:flex}.hero-socials,.footer-socials{flex-wrap:wrap;gap:10px;margin-top:40px;display:flex}.hero-socials a,.footer-socials a{border:1px solid var(--line);width:44px;height:44px;transition:transform .4s var(--ease), box-shadow .4s, border-color .3s;background:#fff;border-radius:50%;place-items:center;display:grid}.hero-socials a:hover,.footer-socials a:hover{border-color:var(--red);transform:translateY(-5px);box-shadow:0 12px 26px #0a2e2329}.hero-socials img,.footer-socials img{object-fit:contain;width:20px;height:20px;display:block}.hero-visual{justify-self:center;width:100%;max-width:410px;position:relative}.hero-disc{z-index:0;aspect-ratio:1;background:var(--red);border-radius:50%;width:66%;animation:9s ease-in-out infinite floatSlow;position:absolute;top:-7%;right:-16%}@keyframes floatSlow{50%{transform:translate(-10px,14px)}}.hero-arch{z-index:1;aspect-ratio:4/5;border:6px solid var(--surface);background:linear-gradient(110deg,#dde5dd 30%,#eef2ec 50%,#dde5dd 70%) 0 0/200% 100%;border-radius:999px 999px 36px 36px;animation:1.6s linear infinite skeleton;position:relative;overflow:hidden;box-shadow:0 40px 80px #0a2e2338}@keyframes skeleton{to{background-position:-200% 0}}.profile-image{object-fit:cover;object-position:center 30%;width:100%;height:100%;transition:transform 1.2s var(--ease);display:block;position:absolute;inset:0}.hero-arch:hover .profile-image{transform:scale(1.04)}.image-caption{color:#fff;letter-spacing:.08em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a2e23b8;border-radius:18px;justify-content:space-between;gap:10px;padding:12px 16px;font-size:11px;font-weight:600;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.image-caption span:last-child{color:#ff9aa8}.floating-tag{z-index:2;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:13px 20px;font-size:15px;font-weight:600;animation:5s ease-in-out infinite floatY;display:flex;position:absolute;top:56%;left:-34px}.tag-dot{background:var(--red);border-radius:50%;width:9px;height:9px}@keyframes floatY{50%{transform:translateY(-9px)}}.marquee{border-block:1px solid var(--line);background:var(--paper-2);padding:20px 0;position:relative;overflow:hidden}.marquee-track{width:max-content;animation:55s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-group{flex-shrink:0;display:flex}.marquee-group span{white-space:nowrap;font-family:var(--font-display);color:var(--green-800);align-items:center;font-size:20px;font-weight:500;display:inline-flex}.marquee-group span:after{content:"";background:var(--red);border-radius:50%;width:7px;height:7px;margin-inline:30px}@keyframes marquee{to{transform:translate(-50%)}}.section-head{grid-template-columns:1.1fr .9fr;align-items:end;gap:60px;margin-bottom:64px;display:grid}.section-label{background:var(--surface);border:1px solid var(--line);letter-spacing:.06em;color:var(--green-800);border-radius:999px;align-items:center;gap:10px;margin-bottom:18px;padding:6px 14px 6px 12px;font-size:13px;font-weight:600;display:inline-flex}.section-label:before{content:"";background:var(--red);border-radius:50%;width:7px;height:7px}.section-title{letter-spacing:-.035em;font-size:clamp(2rem,4.2vw,3.3rem);font-weight:700;line-height:1.1}.section-title span{color:var(--green-600)}.section-description{color:var(--muted);max-width:520px;padding-bottom:6px;font-size:17px}.about-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:64px;display:grid}.about-text p{color:var(--muted);max-width:62ch;font-size:18px;line-height:1.85}.about-text p+p{margin-top:20px}.about-text strong{color:var(--ink);font-weight:600}.text-link{color:var(--green-800);border-bottom:2px solid var(--red);transition:gap .4s var(--ease), color .3s;align-items:center;gap:10px;margin-top:30px;padding-bottom:5px;font-weight:600;display:inline-flex}.text-link:hover{color:var(--red);gap:16px}.about-info{background:var(--green-900);color:var(--on-dark);box-shadow:var(--shadow);border-radius:28px;padding:14px 34px;position:relative;overflow:hidden}.about-info:after{content:"";aspect-ratio:1;background:var(--red);opacity:.95;border-radius:50%;width:150px;position:absolute;top:-60px;right:-60px}.info-item{z-index:1;overflow-wrap:anywhere;border-bottom:1px solid #ffffff1f;padding:22px 0;position:relative}.info-item:last-child{border-bottom:0}.info-item dt{color:var(--on-dark-muted);font-size:13px;font-weight:500}.info-item dd{margin-top:4px;font-size:18px;font-weight:600}.info-item:first-child dd{max-width:calc(100% - 70px)}.skills-section{background:var(--paper-2);border-block:1px solid var(--line)}.skills-layout{grid-template-columns:380px 1fr;align-items:start;gap:28px;display:grid}.skill-tabs{gap:8px;display:grid}.skill-tab{width:100%;color:var(--ink);text-align:left;cursor:pointer;transition:background .35s, border-color .35s, box-shadow .35s, transform .35s var(--ease);background:0 0;border:1px solid #0000;border-radius:20px;align-items:center;gap:16px;padding:18px 20px;display:flex;position:relative}.skill-tab:hover{background:#fff9;transform:translate(4px)}.skill-tab.active{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow);transform:none}.skill-tab:before{content:"";background:var(--red);width:4px;transition:transform .45s var(--ease);border-radius:4px;position:absolute;top:24%;bottom:24%;left:-1px;transform:scaleY(0)}.skill-tab.active:before{transform:scaleY(1)}.skill-tab-icon{width:46px;height:46px;color:var(--green-600);background:#0a6b501a;border-radius:14px;flex-shrink:0;place-items:center;transition:background .35s,color .35s;display:grid}.skill-tab.active .skill-tab-icon{background:var(--green-900);color:#fff}.skill-tab-text{gap:2px;min-width:0;display:grid}.skill-tab small{letter-spacing:.05em;color:var(--muted);font-size:12px;font-weight:600}.skill-tab strong{font-size:17px;font-weight:600;line-height:1.4}.skill-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);animation:panelIn .6s var(--ease) both;border-radius:32px;padding:44px}@keyframes panelIn{0%{opacity:0;transform:translateY(16px)}}.panel-top{align-items:center;gap:18px;display:flex}.panel-icon{background:var(--green-900);color:#fff;border-radius:18px;flex-shrink:0;place-items:center;width:60px;height:60px;display:grid}.expertise-number{letter-spacing:.06em;color:var(--red);font-size:13px;font-weight:600;display:block}.panel-top h3{letter-spacing:-.02em;margin-top:2px;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;line-height:1.25}.skill-panel>p{border-bottom:1px solid var(--line);color:var(--muted);margin-top:22px;padding-bottom:28px;font-size:17px}.skill-panel ul{grid-template-columns:repeat(2,1fr);gap:14px 28px;margin-top:28px;list-style:none;display:grid}.skill-panel li{animation:panelIn .6s var(--ease) both;animation-delay:calc(var(--i) * 60ms + .12s);align-items:flex-start;gap:12px;font-size:16px;font-weight:500;line-height:1.55;display:flex}.tick{width:24px;height:24px;color:var(--red);background:#e639501f;border-radius:50%;flex-shrink:0;place-items:center;margin-top:1px;display:grid}.project-list{border-top:1px solid var(--line);list-style:none}.project-row{border-bottom:1px solid var(--line);isolation:isolate;grid-template-columns:64px 1.15fr 1fr 52px;align-items:center;gap:28px;padding:38px 24px;display:grid;position:relative}.project-row:before{content:"";z-index:-1;background:var(--green-900);transform-origin:bottom;transition:transform .55s var(--ease);border-radius:24px;position:absolute;inset:0 -1px;transform:scaleY(0)}.project-row:hover:before{transform:scaleY(1)}.project-row>*{transition:color .4s, transform .5s var(--ease), background .4s, border-color .4s}.project-index{font-family:var(--font-display);color:var(--red);font-size:28px;font-weight:600}.project-kicker{letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.project-main h3{letter-spacing:-.02em;font-size:clamp(1.3rem,2.2vw,1.75rem);font-weight:700;line-height:1.3}.project-main p{max-width:46ch;color:var(--muted);margin-top:10px;font-size:16px}.project-tags{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.project-tags span{border:1px solid var(--line);background:var(--surface);color:var(--green-800);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:500;line-height:1.5}.project-icon{border:1px solid var(--line);width:52px;height:52px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.project-row:hover{color:var(--on-dark)}.project-row:hover .project-index{color:#ff8d9c;transform:translate(6px)}.project-row:hover .project-kicker,.project-row:hover .project-main p{color:var(--on-dark-muted)}.project-row:hover .project-tags span{color:var(--on-dark);background:#ffffff14;border-color:#ffffff2e}.project-row:hover .project-icon{background:var(--red);border-color:var(--red);color:#fff;transform:rotate(45deg)}.contact-section{background:var(--green-900);color:var(--on-dark);position:relative;overflow:hidden}.contact-section:before{content:"";aspect-ratio:1;pointer-events:none;border:1px solid #ffffff17;border-radius:50%;width:560px;position:absolute;top:-180px;right:-180px;box-shadow:0 0 0 70px #ffffff05,0 0 0 140px #ffffff04}.contact-section .wrap{position:relative}.contact-section .section-label{color:var(--on-dark);background:#ffffff0f;border-color:#ffffff24}.contact-section .section-title{color:#fff}.contact-section .section-title span{color:#ff8d9c}.contact-section .section-description{color:var(--on-dark-muted)}.contact-grid{grid-template-columns:1fr 1.05fr;align-items:start;gap:28px;display:grid}.contact-details{gap:14px;display:grid}.contact-card{min-width:0;transition:background .4s, border-color .4s, transform .45s var(--ease);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:22px;align-items:center;gap:16px;padding:20px 22px;display:flex}.contact-card:hover{background:#ffffff1a;border-color:#ffffff40;transform:translate(8px)}.contact-icon{color:#fff;width:48px;height:48px;transition:background .4s, transform .5s var(--ease);background:#ffffff1a;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.contact-card:hover .contact-icon{background:var(--red);transform:scale(1.08)}.contact-card div{gap:2px;min-width:0;display:grid}.contact-card small{color:var(--on-dark-muted);font-size:14px}.contact-card strong{overflow-wrap:anywhere;font-size:17px;font-weight:600;line-height:1.5}.contact-arrow{color:var(--on-dark-muted);transition:transform .4s var(--ease), color .3s;margin-left:auto}.contact-card:hover .contact-arrow{color:#fff;transform:translate(3px,-3px)}.contact-form{background:var(--surface);color:var(--ink);border-radius:30px;flex-direction:column;gap:10px;padding:34px;display:flex;box-shadow:0 40px 80px #0000004d}.contact-form label{margin-top:8px;font-size:15px;font-weight:600}.contact-form input,.contact-form textarea{background:var(--paper);width:100%;color:var(--ink);border:1.5px solid #0000;border-radius:16px;outline:none;padding:15px 18px;font-family:inherit;font-size:16px;line-height:1.6;transition:border-color .3s,background .3s,box-shadow .3s}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8a9890}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green-600);background:#fff;box-shadow:0 0 0 5px #0a6b501f}.contact-form textarea{resize:vertical;min-height:140px}.submit-btn{justify-content:center;width:100%;margin-top:14px}.submit-btn:not(.is-sending){justify-content:space-between;padding-left:28px}.footer{background:var(--green-900);color:var(--on-dark);text-align:center;border-top:1px solid #ffffff1a;padding:70px 0 34px;position:relative}.footer-inner{flex-direction:column;align-items:center;display:flex}.footer .logo{color:#fff;font-size:26px}.footer-tagline{color:var(--on-dark-muted);margin-top:12px;font-size:16px}.footer-socials{justify-content:center;margin:30px 0 36px}.footer .copyright{width:100%;color:var(--on-dark-muted);border-top:1px solid #ffffff1a;padding-top:26px;font-size:14px}.toast{z-index:2500;background:var(--ink);color:#fff;max-width:calc(100vw - 40px);animation:toastIn .5s var(--ease) both;border-radius:999px;padding:15px 24px;font-size:15px;font-weight:500;line-height:1.5;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 20px 50px #0000004d}.toast.success{border-left:6px solid #22b573}.toast.error{border-left:6px solid var(--red)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,20px)}}.back-to-top{z-index:1400;border:1px solid var(--line);background:var(--surface);width:48px;height:48px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity .4s, visibility .4s, transform .45s var(--ease), background .3s, color .3s;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:22px;right:22px;transform:translateY(14px)}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--red);color:#fff;transform:translateY(-4px)}@keyframes rise{0%{opacity:0;transform:translateY(26px)}}.reveal{opacity:0}.reveal.in-view{opacity:1;animation:rise .9s var(--ease) backwards;animation-delay:var(--d,0s)}.section-head.reveal .section-description{animation:none}.about-info.reveal{--d:.12s}.contact-form.reveal{--d:.14s}.skills-layout.reveal{--d:80ms}.portfolio:not(.is-loaded) .hero-content>*,.portfolio:not(.is-loaded) .hero-visual{opacity:0}.is-loaded .hero-content>*{animation:rise 1s var(--ease) backwards}.is-loaded .hero-content>:first-child{animation-delay:.25s}.is-loaded .hero-content>:nth-child(2){animation-delay:.32s}.is-loaded .hero-content>:nth-child(3){animation-delay:.4s}.is-loaded .hero-content>:nth-child(4){animation-delay:.5s}.is-loaded .hero-content>:nth-child(5){animation-delay:.6s}.is-loaded .hero-content>:nth-child(6){animation-delay:.7s}.is-loaded .hero-visual{animation:rise 1.2s var(--ease) .35s backwards}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (width<=1024px){.section{padding:100px 0}.hero-grid{gap:40px}.skills-layout{grid-template-columns:320px 1fr}.skill-panel{padding:34px}.project-row{grid-template-columns:48px 1.2fr 1fr 48px;gap:20px}.floating-tag{left:-16px}}@media (width<=900px){.hero{padding-top:130px}.hero-grid{text-align:center;grid-template-columns:1fr;gap:70px;padding-bottom:70px}.hero-description{margin-inline:auto}.hero-buttons,.hero-socials,.availability{justify-content:center}.hero-content{flex-direction:column;align-items:center;display:flex}.hero-visual{max-width:360px}.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:48px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:36px}.skills-layout{grid-template-columns:1fr}.skill-tabs{scroll-snap-type:x proximity;scrollbar-width:none;gap:10px;padding-bottom:8px;display:flex;overflow-x:auto}.skill-tabs::-webkit-scrollbar{display:none}.skill-tab{scroll-snap-align:start;border-color:var(--line);background:#ffffff8c;flex-shrink:0;width:auto;min-width:270px}.skill-tab:hover{transform:none}.skill-tab:before{display:none}.project-row{grid-template-columns:44px 1fr 48px;padding:32px 16px}.project-tags{grid-area:2/2/auto/-1;justify-content:flex-start}.project-icon{grid-area:1/3}}@media (width<=768px){.navbar{padding:12px 14px}.nav-inner{padding:7px 7px 7px 20px}.menu-btn{display:block}.nav-links{border:1px solid var(--line);opacity:0;visibility:hidden;transform-origin:100% 0;transition:opacity .35s, transform .5s var(--ease), visibility .35s;background:#fff;border-radius:28px;flex-direction:column;align-items:stretch;gap:4px;padding:14px;position:absolute;top:calc(100% + 10px);left:0;right:0;transform:translateY(-12px)scale(.98);box-shadow:0 30px 70px #0a2e2338}.menu-open .nav-links{opacity:1;visibility:visible;transform:none}.nav-links>*{opacity:0;transition:opacity .4s, transform .5s var(--ease), background .3s, color .3s;transition-delay:calc(var(--i,0) * 40ms + 60ms);transform:translateY(8px)}.menu-open .nav-links>*{opacity:1;transform:none}.nav-links a:not(.nav-contact){border-radius:16px;padding:14px 18px;font-size:18px}.nav-links .nav-contact{justify-content:center;margin:6px 0 0;padding:15px 20px;font-size:17px}.language-toggle{margin:6px 0 0;padding:12px 14px}}@media (width<=650px){.skill-panel ul{grid-template-columns:1fr}}@media (width<=600px){.wrap{padding-inline:20px}.portfolio{font-size:16px}.section{padding:80px 0}.hero{padding-top:112px}.hello{font-size:18px}.hero-description{font-size:17px}.hero-buttons{width:100%}.hero-buttons .btn{flex:100%}.btn-outline{min-height:54px}.hero-visual{max-width:310px}.floating-tag{padding:11px 16px;font-size:14px;left:-8px}.marquee-group span,.about-text p{font-size:17px}.about-info{border-radius:24px;padding:8px 24px}.skill-tab{min-width:240px;padding:14px 16px}.skill-panel{border-radius:26px;padding:26px 22px}.panel-icon{width:52px;height:52px}.project-main p{font-size:15.5px}.contact-form{border-radius:26px;padding:24px 20px}.contact-card{padding:16px 18px}.contact-card strong{font-size:16px}.back-to-top{bottom:14px;right:14px}}@media (hover:none){.skill-tab:hover,.contact-card:hover,.btn:hover{transform:none}.project-row:hover:before{transform:scaleY(0)}.project-row:hover{color:inherit}.project-row:hover .project-index,.project-row:hover .project-icon{transform:none}.project-row:hover .project-index{color:var(--red)}.project-row:hover .project-kicker,.project-row:hover .project-main p{color:var(--muted)}.project-row:hover .project-tags span{background:var(--surface);border-color:var(--line);color:var(--green-800)}.project-row:hover .project-icon{border-color:var(--line);color:var(--ink);background:0 0}}.portfolio.bangla{--font-display:"Hind Siliguri", "Noto Sans Bengali", system-ui, sans-serif;font-kerning:normal;word-break:normal;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;font-size:18px;line-height:1.95}.portfolio.bangla,.portfolio.bangla *{letter-spacing:0!important}.bangla .hero h1{font-size:clamp(2.2rem,4.1vw,3.4rem);font-weight:700;line-height:1.34}.bangla .section-title{font-size:clamp(1.9rem,3.8vw,2.9rem);font-weight:700;line-height:1.34}.bangla .logo{line-height:1.5}.bangla .hello{font-size:21px;line-height:1.7}.bangla .hero-description,.bangla .section-description,.bangla .skill-panel>p{font-size:18px;line-height:2}.bangla .about-text p{font-size:18.5px;line-height:2.05}.bangla .availability,.bangla .section-label,.bangla .skill-tab small,.bangla .expertise-number,.bangla .project-kicker,.bangla .image-caption{font-size:14px;font-weight:600;line-height:1.6}.bangla .image-caption{font-size:11px}.bangla .nav-links a,.bangla .language-toggle{line-height:1.6}.bangla .btn{font-size:17px;line-height:1.5}.bangla .skill-tab strong{font-size:18px;line-height:1.55}.bangla .panel-top h3{font-size:clamp(1.4rem,2.4vw,1.8rem);line-height:1.5}.bangla .skill-panel li{font-size:17px;line-height:1.8}.bangla .project-main h3{font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.55}.bangla .project-main p{font-size:17px;line-height:1.9}.bangla .project-tags span{font-size:15px;line-height:1.6}.bangla .info-item dt{font-size:14px}.bangla .info-item dd,.bangla .contact-card strong{line-height:1.6}.bangla .contact-form label{font-size:16px}.bangla .contact-form input,.bangla .contact-form textarea{font-size:17px;line-height:1.8}.bangla .footer-tagline{line-height:1.8}.bangla .toast{line-height:1.7}@media (width<=900px){.bangla .hero h1{font-size:clamp(2.1rem,8vw,3.2rem)}}@media (width<=600px){.portfolio.bangla{font-size:17px}.bangla .hero h1{font-size:clamp(2rem,8.6vw,2.6rem)}.bangla .section-title{font-size:clamp(1.7rem,7.4vw,2.2rem)}.bangla .about-text p,.bangla .hero-description{font-size:17px}}@media (prefers-reduced-motion:reduce){.portfolio *,.portfolio :before,.portfolio :after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.portfolio:not(.is-loaded) .hero-content>*,.portfolio:not(.is-loaded) .hero-visual{opacity:1}.marquee-track{animation:none}}
