/*
Theme Name: Arup Barman Portfolio V3
Author: Arup Barman
Version: 5.0.0
Description: Lightweight animated SEO & WordPress portfolio.
*/
:root{--bg:#f7f7f5;--ink:#171717;--accent:#ff5738;--muted:#666;--line:#e4e4e1;--max:1440px;--pad:clamp(22px,4vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.wrap{width:min(var(--max),calc(100% - var(--pad)*2));margin:auto}
.site-header{height:66px;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;background:rgba(247,247,245,.94);backdrop-filter:blur(12px);z-index:100}.nav{display:flex;align-items:center;justify-content:space-between}.logo{font-size:17px;font-weight:900;letter-spacing:-.04em}.logo span{color:var(--accent)}.menu{display:flex;align-items:center;gap:38px;font-size:14px}.menu a{transition:.2s}.menu a:hover{color:var(--accent)}.menu .nav-cta{background:var(--ink);color:white;padding:18px 23px}.menu .nav-cta:hover{background:var(--accent);color:white}.toggle{display:none;border:0;background:none;font-size:25px}
.hello{height:42px;border-bottom:1px solid var(--line);display:flex;align-items:center;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.2em;text-transform:uppercase}.hello i{display:inline-block;width:9px;height:9px;background:var(--accent);margin-right:14px}
.hero{min-height:calc(100vh - 108px);padding:45px 0 55px;display:flex;align-items:center}.hero-layout{width:100%;display:grid;grid-template-columns:minmax(0,3.2fr) minmax(290px,1fr);gap:65px;align-items:end}.hero h1{font-size:clamp(72px,9.25vw,151px);line-height:1.04;letter-spacing:-.075em;margin:0;font-weight:800}.hero h1 .accent{color:var(--accent)}.hero-side{padding-bottom:14px}.hero-side p{font-size:19px;line-height:1.55;color:var(--muted);margin:0 0 32px;max-width:350px}.hero-links{display:flex;gap:28px;flex-wrap:wrap}.hero-links a{font-weight:800;font-size:14px}.hero-links a:hover{color:var(--accent)}.whatsapp{display:inline-flex!important;gap:8px;align-items:center;margin-top:24px}.arrow{display:inline-block;transition:transform .2s}.hero-links a:hover .arrow,.text-link:hover .arrow{transform:translate(4px,-4px)}
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:18px 0}.ticker-track{display:inline-block;animation:ticker 24s linear infinite}.ticker span{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin-right:55px}.ticker b{color:var(--accent);margin-right:55px}@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding:110px 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1fr 2.3fr;gap:50px;margin-bottom:65px}.eyebrow{font-size:11px;color:var(--accent);font-weight:900;letter-spacing:.16em;text-transform:uppercase}.section h2{font-size:clamp(46px,5.6vw,84px);line-height:.96;letter-spacing:-.06em;margin:0}.big-copy{font-size:clamp(20px,2.1vw,31px);line-height:1.35;color:#383838;max-width:900px;margin:35px 0 0}.text-link{display:inline-block;font-size:14px;font-weight:800;margin-top:25px}
.service{display:grid;grid-template-columns:85px 1fr 1fr;gap:35px;padding:38px 0;border-top:1px solid var(--line)}.service .n{color:var(--accent);font-size:12px;font-weight:800}.service h3{font-size:clamp(29px,3vw,45px);letter-spacing:-.045em;margin:0}.service p{color:var(--muted);line-height:1.55;margin:0 0 18px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{border:1px solid var(--line);padding:7px 9px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project{border:1px solid var(--line);min-height:500px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .28s ease,background .28s}.project:hover{transform:translateY(-7px);background:#fff}.project-mark{font-size:clamp(48px,5.8vw,86px);font-weight:900;letter-spacing:-.075em;line-height:.86}.project h3{font-size:30px;letter-spacing:-.04em;margin:12px 0}.project p{color:var(--muted);line-height:1.55;max-width:520px}
.exp{display:grid;grid-template-columns:85px 1.1fr 1fr;gap:35px;border-top:1px solid var(--line);padding:34px 0}.exp .n{color:var(--accent)}.exp h3{font-size:23px;margin:0 0 7px}.exp p{color:var(--muted);line-height:1.55;margin:0}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.post{border-top:1px solid var(--ink);padding-top:16px}.post small{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.post h3{font-size:26px;line-height:1.1;letter-spacing:-.035em;margin:42px 0 15px}.post p{color:var(--muted);line-height:1.5}
.cta{background:var(--ink);color:white;padding:100px 0}.cta .eyebrow{color:var(--accent)}.cta h2{font-size:clamp(52px,7vw,105px);line-height:.9;letter-spacing:-.065em;max-width:1150px;margin:18px 0 45px}.cta a{font-weight:900}.cta a:hover{color:var(--accent)}
footer{background:var(--ink);color:white;border-top:1px solid #333;padding:48px 0 28px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer-grid h3{font-size:26px}.footer-grid a{display:block;color:#bbb;margin:9px 0}.footer-grid a:hover{color:var(--accent)}.copy{border-top:1px solid #333;margin-top:42px;padding-top:22px;color:#888;font-size:11px;display:flex;justify-content:space-between}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.hero-reveal{opacity:0;transform:translateY(30px);animation:heroIn .75s ease forwards}.hero-reveal:nth-child(2){animation-delay:.1s}.hero-reveal:nth-child(3){animation-delay:.2s}.hero-reveal:nth-child(4){animation-delay:.3s}@keyframes heroIn{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none}.reveal,.hero-reveal{opacity:1;transform:none;animation:none;transition:none}}
.page-head{padding:100px 0 65px;border-bottom:1px solid var(--line)}.page-head h1,.article h1{font-size:clamp(55px,7vw,105px);line-height:.92;letter-spacing:-.06em;margin:18px 0}.content,.article{max-width:880px;padding:70px 0}.content p,.content li,.article .entry{font-size:18px;line-height:1.75}.article .entry h2{font-size:38px;line-height:1.15;margin-top:50px}
@media(max-width:900px){.menu{display:none;position:absolute;top:66px;left:0;right:0;background:var(--bg);padding:24px var(--pad);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.menu.open{display:flex}.toggle{display:block}.hero{min-height:auto;padding:55px 0}.hero-layout{grid-template-columns:1fr;gap:45px}.hero h1{font-size:clamp(63px,16vw,105px)}.hero-side{padding:0}.section{padding:75px 0}.section-head,.service,.exp{grid-template-columns:1fr}.section-head{gap:20px}.service,.exp{gap:14px}.projects,.posts,.footer-grid{grid-template-columns:1fr}.project{min-height:380px}.copy{flex-direction:column;gap:10px}}


/* V4 AUDIT FIXES — alignment, rhythm, overflow and accessibility */
html,body{max-width:100%;overflow-x:hidden}
main{display:block}
.wrap{padding-left:0;padding-right:0}
.site-header .wrap,.hello .wrap,.hero .wrap,.section .wrap,.cta .wrap,footer .wrap,.page-head .wrap{width:min(var(--max),calc(100% - (var(--pad)*2)));margin-inline:auto}
.hero-layout{grid-template-columns:minmax(0,2.75fr) minmax(300px,.9fr)}
.hero h1{max-width:1100px}
.hero-side{justify-self:end;width:100%;max-width:360px}
.section-head>*{min-width:0}
.service>*{min-width:0}
.projects>*{min-width:0}
.exp>*{min-width:0}
.posts>*{min-width:0}
.project-mark{overflow-wrap:anywhere}
.menu ul{display:contents;margin:0;padding:0;list-style:none}
.menu li{display:inline-flex}
.menu li a{display:inline-flex;align-items:center}
.menu li:last-child a{background:var(--ink);color:#fff;padding:18px 23px}
.menu li:last-child a:hover{background:var(--accent);color:#fff}
button,a{outline-offset:4px}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent)}
.content img,.article img{max-width:100%;height:auto}
.content iframe,.article iframe{max-width:100%}
.article,.content{width:min(880px,calc(100% - (var(--pad)*2)));margin-inline:auto}
@media (min-width:901px) and (max-width:1180px){
 .hero h1{font-size:clamp(70px,9vw,105px)}
 .hero-layout{grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr);gap:42px}
 .menu{gap:22px}
 .section-head{grid-template-columns:.75fr 2fr}
}
@media(max-width:900px){
 .site-header .wrap,.hello .wrap,.hero .wrap,.section .wrap,.cta .wrap,footer .wrap,.page-head .wrap{width:min(var(--max),calc(100% - (var(--pad)*2)))}
 .menu ul{display:flex;flex-direction:column;gap:20px;width:100%}
 .menu li{display:block}
 .menu li:last-child a{padding:13px 16px}
 .hero-side{justify-self:start;max-width:520px}
 .hero h1{line-height:.94}
 .section-head{margin-bottom:48px}
}
@media(max-width:520px){
 :root{--pad:20px}
 .hello{height:38px}
 .hero{padding:42px 0 48px}
 .hero h1{font-size:clamp(52px,15.2vw,78px);letter-spacing:-.065em}
 .hero-layout{gap:34px}
 .hero-side p{font-size:17px}
 .hero-links{gap:20px}
 .section{padding:62px 0}
 .section h2{font-size:clamp(42px,12vw,62px)}
 .service{padding:30px 0}
 .project{padding:24px;min-height:340px}
 .project-mark{font-size:clamp(44px,14vw,68px)}
 .posts{gap:40px}
 .cta{padding:72px 0}
}


/* V5 MOBILE-FIRST FIXES */
@media(max-width:900px){
 body{font-size:16px}
 .site-header{height:62px}
 .site-header .wrap{width:calc(100% - 40px)}
 .logo{font-size:16px}
 .toggle{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;cursor:pointer}
 .menu{top:62px;max-height:calc(100vh - 62px);overflow-y:auto;padding:22px 20px 28px;gap:0}
 .menu.open{display:flex}
 .menu>a,.menu li a{width:100%;padding:12px 0;font-size:16px}
 .menu .nav-cta,.menu li:last-child a{width:auto;margin-top:8px;padding:14px 17px}
 .hello{height:38px}
 .hello .wrap{width:calc(100% - 40px)}
 .hero{min-height:0;padding:42px 0 48px}
 .hero .wrap{width:calc(100% - 40px)}
 .hero-layout{display:block}
 .hero h1{font-size:clamp(50px,14.5vw,86px);line-height:.91;letter-spacing:-.062em;max-width:100%;overflow-wrap:normal;word-break:normal}
 .hero h1 br{display:block}
 .hero-side{margin-top:36px;max-width:600px}
 .hero-side p{font-size:17px;line-height:1.55;max-width:520px;margin-bottom:24px}
 .hero-links{display:flex;gap:18px 24px}
 .whatsapp{margin-top:20px}
 .ticker{padding:14px 0}
 .ticker span{font-size:10px;margin-right:35px}
 .ticker b{margin-right:35px}
 .section{padding:64px 0}
 .section .wrap{width:calc(100% - 40px)}
 .section-head{display:block;margin-bottom:42px}
 .section-head .eyebrow{margin-bottom:20px}
 .section h2{font-size:clamp(40px,11.5vw,62px);line-height:.98;letter-spacing:-.052em}
 .big-copy{font-size:20px;line-height:1.45;margin-top:25px}
 .service{display:block;padding:30px 0}
 .service .n{display:block;margin-bottom:13px}
 .service h3{font-size:32px;line-height:1.04;margin-bottom:18px}
 .service p{font-size:16px}
 .tags{gap:6px}
 .tag{font-size:9px}
 .projects{display:block}
 .project{min-height:360px;margin-bottom:16px;padding:25px}
 .project:last-child{margin-bottom:0}
 .project-mark{font-size:clamp(48px,13.5vw,70px);line-height:.88}
 .project h3{font-size:26px}
 .project p{font-size:15px}
 .exp{display:block;padding:29px 0}
 .exp .n{display:block;margin-bottom:12px}
 .exp h3{font-size:21px;line-height:1.12}
 .exp b{display:block;margin-bottom:15px}
 .exp p{font-size:15px}
 .posts{display:block}
 .post{margin-bottom:42px}
 .post:last-child{margin-bottom:0}
 .post h3{font-size:25px;margin:26px 0 14px}
 .cta{padding:68px 0}
 .cta .wrap{width:calc(100% - 40px)}
 .cta h2{font-size:clamp(45px,12vw,65px);line-height:.94;margin:16px 0 32px}
 footer{padding-top:42px}
 footer .wrap{width:calc(100% - 40px)}
 .footer-grid{display:block}
 .footer-grid>div{margin-bottom:34px}
 .copy{font-size:10px}
 .page-head{padding:65px 0 42px}
 .page-head .wrap{width:calc(100% - 40px)}
 .page-head h1,.article h1{font-size:clamp(45px,12vw,68px);line-height:.95}
 .content,.article{width:calc(100% - 40px);padding:48px 0}
 .content p,.content li,.article .entry{font-size:17px;line-height:1.7}
 .article .entry h2{font-size:31px}
}
@media(max-width:480px){
 .site-header .wrap,.hello .wrap,.hero .wrap,.section .wrap,.cta .wrap,footer .wrap,.page-head .wrap,.content,.article{width:calc(100% - 36px)}
 .hero h1{font-size:clamp(47px,14.2vw,68px)}
 .hero-side{margin-top:31px}
 .hero-side p{font-size:16px}
 .section{padding:58px 0}
 .section h2{font-size:clamp(38px,11vw,53px)}
 .service h3{font-size:29px}
 .project{min-height:330px;padding:22px}
 .project-mark{font-size:clamp(44px,13vw,61px)}
}
@media(max-width:380px){
 .site-header .wrap,.hello .wrap,.hero .wrap,.section .wrap,.cta .wrap,footer .wrap,.page-head .wrap,.content,.article{width:calc(100% - 30px)}
 .hero h1{font-size:clamp(43px,13.8vw,55px)}
 .hero-links{flex-direction:column;gap:14px}
 .section h2{font-size:38px}
 .big-copy{font-size:18px}
 .project-mark{font-size:43px}
}

/* Floating WhatsApp — added without altering approved V5 layout */
.floating-whatsapp{
 position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;
 background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;
 z-index:9999;box-shadow:0 6px 22px rgba(0,0,0,.18);transition:transform .2s ease,box-shadow .2s ease;
}
.floating-whatsapp:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 9px 26px rgba(0,0,0,.23)}
.floating-whatsapp svg{width:31px;height:31px;fill:currentColor}
@media(max-width:480px){.floating-whatsapp{right:16px;bottom:16px;width:54px;height:54px}.floating-whatsapp svg{width:29px;height:29px}}

/* Social links — additive only; approved V5 layout preserved */
.social-bar{padding:42px 0;border-top:1px solid var(--line);background:var(--bg)}
.social-bar .wrap{width:min(var(--max),calc(100% - (var(--pad)*2)));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}
.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.social-links a{display:inline-flex;align-items:center;gap:8px;transition:color .2s ease,transform .2s ease}
.social-links svg{width:21px;height:21px;fill:currentColor;flex:0 0 auto}
.social-links-wide a{border:1px solid var(--line);padding:11px 14px;font-size:12px;font-weight:800}
.social-links-wide a:hover{color:var(--accent);transform:translateY(-2px)}
.footer-social{margin-top:13px;gap:10px}
.footer-social a{width:38px;height:38px;border:1px solid #3b3b37;justify-content:center;color:#bbb!important;margin:0!important}
.footer-social a:hover{color:var(--accent)!important;border-color:var(--accent)}
.footer-social a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.footer-social svg{width:18px;height:18px}
.footer-whatsapp{margin-top:14px!important}
@media(max-width:900px){
 .social-bar{padding:34px 0}
 .social-bar .wrap{width:calc(100% - 40px);display:block}
 .social-bar .eyebrow{margin-bottom:18px}
 .social-links-wide{gap:8px}
 .social-links-wide a{padding:10px 12px}
}
@media(max-width:480px){
 .social-bar .wrap{width:calc(100% - 36px)}
 .social-links-wide a{width:44px;height:44px;padding:0;justify-content:center}
 .social-links-wide a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .social-links-wide svg{width:20px;height:20px}
}


/* FINAL: page-open intro animation — no layout/design changes */
.site-intro{
 position:fixed;inset:0;z-index:100000;background:var(--bg,#f7f7f5);
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 overflow:hidden;pointer-events:none;
 animation:introExit .72s cubic-bezier(.76,0,.24,1) 1.85s forwards;
}
.site-intro-name{
 position:relative;z-index:2;font-size:clamp(38px,7vw,92px);line-height:.9;
 font-weight:950;letter-spacing:-.065em;color:var(--ink,#171717);
 opacity:0;transform:translateY(28px);
 animation:introName .62s cubic-bezier(.2,.8,.2,1) .18s forwards;
}
.site-intro-name b{color:var(--accent,#ff5738);font-weight:950}
.site-intro-sub{
 position:relative;z-index:2;margin-top:18px;font-size:10px;font-weight:900;
 letter-spacing:.22em;color:var(--muted,#666);opacity:0;transform:translateY(10px);
 animation:introSub .45s ease .72s forwards;
}
.site-intro-line{
 position:absolute;left:0;top:0;width:0;height:5px;background:var(--accent,#ff5738);
 animation:introLine 1.35s cubic-bezier(.65,0,.35,1) .08s forwards;
}
body.intro-running{overflow:hidden}
body.intro-complete .site-header{animation:pageHeaderIn .55s ease both}
body.intro-complete main{animation:pageContentIn .65s cubic-bezier(.2,.8,.2,1) both}
@keyframes introName{to{opacity:1;transform:none}}
@keyframes introSub{to{opacity:1;transform:none}}
@keyframes introLine{0%{width:0}70%{width:100%}100%{width:100%}}
@keyframes introExit{
 0%{transform:translateY(0)}
 100%{transform:translateY(-100%);visibility:hidden}
}
@keyframes pageHeaderIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes pageContentIn{from{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:480px){
 .site-intro-name{font-size:clamp(42px,13vw,62px)}
 .site-intro-sub{font-size:8px;letter-spacing:.17em;margin-top:14px}
 .site-intro-line{height:4px}
}
@media(prefers-reduced-motion:reduce){
 .site-intro{display:none!important}
 body.intro-running{overflow:auto}
 body.intro-complete .site-header,body.intro-complete main{animation:none}
}
