/* =========================================================
   shakib.bond — stylesheet
   One file, no overrides. Breakpoints: 1000 / 820 / 600 / 360
   ========================================================= */

:root{
  --bg:#030907;
  --panel:#071713;
  --acc:#00e5b0;
  --line:rgba(0,229,176,.2);
  --tx:#f2f7f4;
  --mu:#a0b4ad;
  --gd:#f5c518;
  --rd:#e3262e;
  --serif:"Playfair Display",Georgia,serif;
  --sans:Inter,"Noto Sans Bengali",system-ui,sans-serif;
  --gutter:7vw;
  --edge:max(var(--gutter),calc((100vw - 1240px) / 2));
  --hedge:max(5vw,calc((100vw - 1320px) / 2));
  --head:78px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--head)}
body{
  background:radial-gradient(ellipse at 80% 5%,rgba(0,229,176,.07),transparent 32%),var(--bg);
  color:var(--tx);font:400 16px/1.7 var(--sans);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul{list-style:none}
figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1}
p{overflow-wrap:break-word}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
[hidden]{display:none!important}

.skip{position:absolute;left:-999px;top:0}
.skip:focus{left:1rem;top:1rem;z-index:40;background:var(--acc);color:#020706;padding:.5rem 1rem}

/* ---------- Shared type & buttons ---------- */
.eyebrow{color:var(--acc);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;margin-bottom:1rem}
.lede{color:var(--mu);max-width:36rem;margin-top:1rem}
.note{color:var(--mu);max-width:36rem;margin-top:.75rem}
.tag{color:var(--acc);font-size:.85rem}

.btn-solid,.btn-outline{
  display:inline-block;min-height:48px;padding:.85rem 1.5rem;border:1px solid var(--acc);
  border-radius:7px;text-decoration:none;font-weight:500;font-size:.95rem;line-height:1.3;
  transition:background .3s,color .3s;
}
.btn-solid{background:var(--acc);color:#020706;box-shadow:0 8px 28px rgba(0,229,176,.12)}
.btn-solid:hover{background:transparent;color:var(--acc)}
.btn-solid::after{content:"\2192";margin-left:.6rem}
.btn-outline{color:var(--acc);background:transparent}
.btn-outline:hover{background:var(--acc);color:#020706}

.link{
  color:var(--tx);text-decoration:none;border-bottom:1px solid var(--acc);
  padding-bottom:.2rem;transition:color .3s;font-size:.95rem;
}
.link:hover{color:var(--acc)}

.section{padding-block:6.5rem;padding-inline:var(--edge);border-top:1px solid var(--line)}

/* ---------- Header ---------- */
.top{
  position:fixed;inset:0 0 auto 0;z-index:30;height:var(--head);
  padding-inline:var(--hedge);display:flex;align-items:center;justify-content:space-between;
  background:rgba(2,7,6,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);transition:background .4s;
}
.top.scrolled{background:rgba(2,7,6,.9)}
.logo{font:700 1.65rem/1 var(--sans);letter-spacing:-.04em;text-decoration:none}
.logo span{color:var(--acc)}
.menu{display:flex;gap:clamp(1rem,2vw,2rem)}
.menu a{position:relative;color:#c0cec9;font-size:.9rem;text-decoration:none;transition:color .3s}
.menu a:hover,.menu a.active{color:var(--acc)}
.menu a.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--acc)}
.menu .m-only{display:none}
.nav-cta{min-height:0;padding:.65rem 1.25rem;border-radius:999px}
.burger{display:none;position:relative;width:44px;height:44px;background:none;border:0;cursor:pointer}
.burger span{position:absolute;left:10px;right:10px;height:1.5px;background:var(--tx);transition:transform .3s,opacity .3s}
.burger span:nth-child(1){top:12px}
.burger span:nth-child(2){top:19px}
.burger span:nth-child(3){top:26px}
.top.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.top.open .burger span:nth-child(2){opacity:0}
.top.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{
  position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:clamp(2rem,5vw,5rem);min-height:min(900px,100svh);
  padding:8.5rem var(--edge) 2rem;overflow:hidden;
  background:radial-gradient(48% 62% at 76% 45%,rgba(0,229,176,.17),transparent 72%),
             linear-gradient(115deg,#020706 0%,#04110d 62%,#020706 100%);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;
  background:linear-gradient(130deg,transparent 65%,rgba(0,229,176,.2) 100%);
  mask-image:linear-gradient(to right,transparent,black);
}
.hero-copy{position:relative;z-index:1}
.hero .eyebrow{font-size:.78rem;letter-spacing:.3em}
.hero .name{font-size:clamp(1.1rem,2vw,1.5rem);margin:.8rem 0 1.2rem}
.hero .name::after,
.section h2::after{
  content:"";display:inline-block;width:.9rem;height:2px;background:var(--acc);
  margin-left:.5rem;vertical-align:middle;
}
.hero h1{font-size:clamp(2.7rem,5vw,4.6rem);max-width:12ch;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:var(--acc);text-shadow:0 0 28px rgba(0,229,176,.18)}
.hero .lead{font-size:1rem;line-height:1.85;max-width:34rem;margin:1.4rem 0 2rem}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem 1.8rem}

.socials{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:2.4rem}
.socials a{
  display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(0,229,176,.18);
  border-radius:50%;color:var(--mu);font-size:1rem;transition:color .3s,border-color .3s;
}
.socials a:hover{color:var(--acc);border-color:var(--acc)}
.hero .socials{gap:1rem;margin-top:2rem}
.hero .socials a{
  width:58px;height:58px;font-size:1.5rem;color:var(--acc);
  border:2px solid var(--acc);background:rgba(0,229,176,.1);
  box-shadow:0 0 18px rgba(0,229,176,.25);transition:background .3s,color .3s,transform .3s;
}
.hero .socials a:hover{background:var(--acc);color:#020706;transform:translateY(-3px)}

.fanpill{
  grid-column:1/-1;justify-self:start;position:relative;z-index:1;
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;margin-top:.6rem;padding:.95rem 1.7rem;
  border:2px solid #ff3b44;border-radius:999px;
  background:linear-gradient(135deg,#e3262e,#a9141b);
  color:#fff;font-size:1.15rem;font-weight:600;line-height:1.3;text-decoration:none;
  box-shadow:0 0 0 4px rgba(227,38,46,.22),0 10px 30px rgba(227,38,46,.45);
  transition:transform .3s,box-shadow .3s;
}
.fanpill:hover{transform:translateY(-2px);box-shadow:0 0 0 5px rgba(227,38,46,.3),0 14px 36px rgba(227,38,46,.6)}
.fanpill i{color:#fff;font-size:1.25em;animation:beat 1.6s ease-in-out infinite}
.fanpill b{font-weight:700}
.fanpill span{display:block}
.fanpill span em{font-style:normal;white-space:nowrap}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* Full portrait is always visible: fixed ratio, contain, no crop */
.portrait{
  position:relative;z-index:0;justify-self:end;align-self:center;width:100%;max-width:600px;margin:0;
}
.portrait::before{
  content:"";position:absolute;inset:8% 5%;z-index:-1;
  background:radial-gradient(closest-side,rgba(0,229,176,.28),transparent 75%);filter:blur(36px);
}
.portrait img{
  display:block;width:100%;height:auto;
  filter:drop-shadow(0 18px 36px rgba(0,0,0,.28));
  animation:rise 1.6s .2s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

/* ---------- About ---------- */
.about{
  display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(2rem,5vw,5rem);align-items:center;
  background:linear-gradient(120deg,rgba(0,229,176,.035),transparent 55%);
}
.frame-card{order:1;width:100%;max-width:560px;justify-self:center}
.frame-card img{
  width:100%;height:auto;aspect-ratio:1100/1375;object-fit:contain;
  border:1px solid var(--line);background:#07110e;box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.about-copy{order:2;min-width:0}
.about-copy .lede{max-width:42rem;line-height:1.9}
.signature{font-family:"Great Vibes",cursive;font-size:3.2rem;line-height:1;color:var(--acc);margin-top:1.4rem}
.info{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.4rem;margin-top:2rem}
.info div{display:grid;grid-template-columns:2.2rem 1fr;gap:.1rem .8rem;min-width:0;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.info i{grid-row:span 2;color:var(--acc);margin-top:.35rem}
.info span{color:var(--mu);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.info strong,.info a{font-size:.9rem;font-weight:500;color:var(--tx);text-decoration:none;overflow-wrap:anywhere}

/* ---------- Services ---------- */
.sec-head{margin-bottom:3rem}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.card{
  border:1px solid var(--line);border-radius:12px;padding:2rem 1.5rem;
  background:linear-gradient(145deg,rgba(8,29,23,.95),rgba(4,14,11,.95));
  transition:border-color .4s,translate .4s;
}
.card:hover{border-color:var(--acc);translate:0 -4px}
.card i{display:block;color:var(--acc);font-size:1.5rem;margin-bottom:1.4rem}
.card h3{font-family:var(--sans);font-weight:500;font-size:1.05rem;margin-bottom:.6rem}
.card p{color:var(--mu);font-size:.95rem}

.skills{margin-top:3.5rem}
.skill-row{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.skill-label{width:7rem;color:var(--mu);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.skill-row ul{display:flex;flex-wrap:wrap;gap:.6rem}
.skill-row li{
  padding:.4rem 1rem;border:1px solid var(--line);border-radius:999px;
  font-size:.9rem;transition:border-color .3s,color .3s;
}
.skill-row li:hover{border-color:var(--acc);color:var(--acc)}

/* ---------- Portfolio ---------- */
.projects{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
.project{
  display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);
  border-radius:12px;background:var(--panel);transition:border-color .4s;
}
.project:hover{border-color:var(--acc)}
.shot{
  position:relative;display:block;height:520px;overflow:hidden;
  background:linear-gradient(rgba(0,229,176,.07) 1px,transparent 1px) 0 0/28px 28px,
             linear-gradient(90deg,rgba(0,229,176,.07) 1px,transparent 1px) 0 0/28px 28px,
             linear-gradient(135deg,#0b2a22,#020706);
}

.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center top;background:#06110e}
.project-body{display:flex;flex-direction:column;gap:.7rem;padding:1.6rem 1.6rem 1.8rem;flex:1}
.project h3{font-size:1.6rem}
.desc{color:var(--mu);line-height:1.75}
.project .link{align-self:flex-start;margin-top:auto}

/* ---------- Gallery ---------- */
.gallery{columns:3 260px;column-gap:1rem}
.tile{break-inside:avoid;margin:0 0 1.25rem}
.tile .frame{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#06110e;transition:border-color .4s}
.tile:hover .frame{border-color:var(--acc)}
.tile img{width:100%;height:auto}
.tile figcaption{padding:.7rem .2rem 0;color:var(--mu);font-size:.85rem}

/* ---------- Featured inspiration (AB de Villiers) ---------- */
.ab{
  position:relative;overflow:hidden;padding-block:6rem;padding-inline:var(--edge);
  border-top:1px solid rgba(227,38,46,.4);
  background:radial-gradient(55% 75% at 12% 30%,rgba(227,38,46,.25),transparent 70%),
             radial-gradient(45% 60% at 95% 90%,rgba(245,197,24,.09),transparent 70%),#080304;
}
.ab::after{
  content:"";position:absolute;left:-5%;right:-5%;bottom:-26px;height:88px;pointer-events:none;
  background:linear-gradient(100deg,transparent 0,var(--rd) 32%,#6d0a10 62%,transparent 96%);
  transform:skewY(-2deg);opacity:.5;filter:blur(2px);
}
.ab>*{position:relative;z-index:1}
.ab .eyebrow{color:var(--gd)}
.ab-top{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.ab-fig{max-width:680px;width:100%;justify-self:center}
.ab-visual{
  overflow:hidden;border:1px solid rgba(245,197,24,.28);border-radius:14px;
  background:#090607;box-shadow:0 22px 60px rgba(0,0,0,.4);
}
.ab-photo{width:100%;height:auto;object-fit:contain}
.ab-cap{margin-top:.8rem;color:#b9a9ab;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;text-align:center}
.ab-copy{min-width:0}
.ab-script{font:400 clamp(2rem,4.2vw,3.2rem)/1.1 "Great Vibes",cursive;color:var(--tx)}
.ab-script em{font-style:normal;color:var(--gd);background:linear-gradient(var(--rd),var(--rd)) 0 94%/100% 3px no-repeat}
.ab h2{
  margin-top:.3rem;font:700 clamp(2rem,4.8vw,4.3rem)/1.02 Oswald,"DejaVu Sans Condensed",Impact,sans-serif;
  text-transform:uppercase;transform:skewX(-7deg);transform-origin:left;
  background:linear-gradient(#fff,#9c9c9c);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.brush{
  display:inline-block;margin:1.1rem 0 .3rem;padding:.35em 1.6em;background:var(--gd);color:#140607;
  font:700 clamp(1.5rem,3.4vw,2.6rem)/1 Oswald,"DejaVu Sans Condensed",Impact,sans-serif;
  font-style:italic;text-transform:uppercase;transform:rotate(-2deg);
  clip-path:polygon(1% 14%,6% 0,28% 9%,54% 0,80% 7%,99% 0,100% 42%,97% 72%,100% 100%,72% 91%,46% 100%,20% 93%,0 100%,3% 58%);
}
.brush i{color:var(--rd);margin-left:.3em}
.ab-tag{display:flex;align-items:center;gap:1rem;margin:1.2rem 0;font:italic 400 clamp(1.05rem,2vw,1.35rem)/1.4 var(--serif)}
.ab-tag span{flex:1;max-width:5rem;height:1px;background:var(--gd);opacity:.7}
.ab blockquote{max-width:30rem;margin:1.4rem 0 .8rem;font:italic 400 1.1rem/1.6 var(--serif);color:#f3e9ea}
.ab blockquote .who{margin-top:.4rem;font:400 1.8rem/1 "Great Vibes",cursive;font-style:normal;color:var(--gd)}
.ab .bn{max-width:30rem;color:#c9b9bb;font-size:.95rem}
.ab-btn{
  display:inline-block;margin-top:1.5rem;padding:.9rem 1.6rem;border:1px solid var(--rd);
  border-radius:999px;color:#fff;text-decoration:none;transition:background .3s;
}
.ab-btn:hover{background:var(--rd)}
.ab-why{
  display:grid;grid-template-columns:1fr 1.1fr;gap:4vw;align-items:center;margin-top:5rem;
  padding-top:3rem;border-top:1px solid rgba(255,255,255,.12);scroll-margin-top:100px;
}
.ab-why h3{font:700 clamp(1.6rem,3vw,2.2rem)/1.1 Oswald,"DejaVu Sans Condensed",Impact,sans-serif;text-transform:uppercase;letter-spacing:.02em}
.ab-why h3 b{color:var(--rd);font-weight:700}
.ab-why p{max-width:32rem;margin-top:1rem;color:#d6c9cb}
.ab-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem;text-align:center;font-size:.9rem}
.ab-feats li{padding:0 .4rem;border-left:1px solid rgba(255,255,255,.12)}
.ab-feats li:first-child{border-left:0}
.ab-feats i,.ab-feats .ico{display:block;margin:0 auto .6rem;color:var(--gd)}
.ab-feats i{font-size:1.7rem}
.ab-feats .heart{color:var(--rd)}
.ab-feats .ico{width:2.6rem;height:2.6rem;display:grid;place-items:center;border:1px dashed var(--gd);border-radius:50%;font:700 .8rem/1 Oswald,"DejaVu Sans Condensed",sans-serif}
.ab-frames{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.frame-skew{
  aspect-ratio:3/4;display:grid;place-items:center;overflow:hidden;transform:skewX(-7deg);
  border:2px solid rgba(255,255,255,.85);background:radial-gradient(circle at 50% 30%,rgba(227,38,46,.5),#12060a 72%);
}
.frame-skew span{transform:skewX(7deg);font:700 clamp(2.2rem,5vw,3.8rem)/1 Oswald,"DejaVu Sans Condensed",Impact,sans-serif;color:#fff}
.frame-skew:nth-child(1) span{color:#ff4a52}
.frame-skew:nth-child(2) span{color:var(--gd)}
.ab-forever{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;margin-top:4rem;
  text-align:center;font:400 clamp(1.8rem,4vw,2.8rem)/1.2 "Great Vibes",cursive;color:var(--gd);
}
.ab-forever i{font-size:1.2rem}
.ab-forever b{font-weight:400;color:#fff}

/* ---------- Blog ---------- */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.2rem}
.chips button{
  padding:.45rem 1rem;border:1px solid var(--line);border-radius:999px;background:transparent;
  color:var(--mu);font:inherit;font-size:.88rem;cursor:pointer;transition:color .3s,border-color .3s,background .3s;
}
.chips button:hover{color:var(--tx);border-color:var(--acc)}
.chips button[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:#020706}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.post-card{
  display:flex;flex-direction:column;gap:.8rem;padding:2rem 1.6rem;border:1px solid var(--line);
  border-radius:12px;background:linear-gradient(145deg,rgba(8,29,23,.95),rgba(4,14,11,.95));
  transition:border-color .4s,translate .4s;
}
.post-card:hover{border-color:var(--acc);translate:0 -4px}
.cat{color:var(--acc);font-size:.85rem}
.post-card h3{font-size:1.45rem;line-height:1.2}
.post-card h3 a{text-decoration:none;transition:color .3s}
.post-card h3 a:hover{color:var(--acc)}
.post-card p{color:var(--mu);font-size:.95rem}
.post-card .link{align-self:flex-start;margin-top:auto;font-size:.9rem}

/* ---------- Contact ---------- */
.contact{text-align:center}
.contact .lede{margin-inline:auto}
.contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem}
.contact-actions .btn-solid{border-radius:999px}
.contact-actions .btn-outline{border-radius:999px}
.cinfo{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem 3rem;margin:2.5rem 0 2rem}
.cinfo a,.cinfo div{display:flex;gap:.7rem;align-items:center;text-decoration:none;color:var(--tx)}
.cinfo i{color:var(--acc);font-size:1.1rem}
.cinfo strong{display:block;font-weight:500;overflow-wrap:anywhere}
.cinfo small{display:block;color:var(--mu);font-size:.8rem}
.contact .socials{justify-content:center;margin-top:0}

/* ---------- Footer ---------- */
.foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 2rem;
  padding:3.5rem var(--edge);border-top:1px solid var(--line);background:#020605;
  color:var(--mu);font-size:.88rem;
}
.foot nav{display:flex;flex-wrap:wrap;gap:1.4rem}
.foot nav a{text-decoration:none;color:var(--mu);transition:color .3s}
.foot nav a:hover{color:var(--acc)}
.foot .socials{margin:0}
.build{color:var(--acc);letter-spacing:.2em;font-size:.78rem;text-transform:uppercase}
.copy{width:100%;text-align:center;margin-top:1rem;opacity:.8}

/* ---------- Article pages ---------- */
.post{max-width:46rem;margin:0 auto;padding:8.5rem var(--edge) 4rem}
.back{display:inline-block;color:var(--mu);font-size:.9rem;text-decoration:none;margin-bottom:2rem;transition:color .3s}
.back:hover{color:var(--acc)}
.post h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.12;letter-spacing:-.02em;margin:.6rem 0 1.8rem}
.post-body{margin-top:1.5rem}
.post-body p{font-size:1.1rem;line-height:1.9;color:#dfe9e4}
.post-body .more{margin-top:1.6rem}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}
.post-nav a{display:block;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:12px;text-decoration:none;transition:border-color .3s}
.post-nav a:hover{border-color:var(--acc)}
.post-nav span{display:block;color:var(--mu);font-size:.78rem;margin-bottom:.3rem}
.post-nav strong{font-family:var(--serif);font-weight:400;font-size:1.1rem;line-height:1.3}
.post-nav .next{text-align:right}
.post-cta{margin-top:3.5rem;padding:2rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:center}
.post-cta h2{font-size:1.8rem}
.post-cta p{color:var(--mu);margin:.6rem 0 1.4rem}
.not-found{text-align:center;padding-top:10rem}
.not-found p{color:var(--mu);margin:1rem 0 2rem}

/* ---------- Scroll reveal (only when JS runs) ---------- */
html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
html.js .reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .gallery{columns:2 200px}
  .posts{grid-template-columns:repeat(2,1fr)}
  .hero{gap:2rem}
  .menu{gap:1.2rem}
}

@media (max-width:820px){
  :root{--head:68px;--gutter:6vw}
  .top{padding-inline:5vw}
  .burger{display:block}
  .menu{
    position:fixed;top:var(--head);left:0;right:0;flex-direction:column;gap:0;
    padding:.5rem 6vw 1.4rem;background:#020706;border-bottom:1px solid var(--line);
    transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .35s ease,opacity .35s ease,visibility 0s linear .35s;
  }
  .top.open .menu{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform .35s ease,opacity .35s ease,visibility 0s}
  .menu a{padding:.95rem 0;border-bottom:1px solid rgba(0,229,176,.1);font-size:1.05rem}
  .menu .m-only{display:block}
  .nav-cta{display:none}

  .hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:auto;gap:1.2rem 1.5rem;padding:7rem var(--edge) 2.5rem}
  .portrait{width:100%;justify-self:end}
  .hero h1{max-width:none;font-size:clamp(1.9rem,6vw,3.2rem)}
  .hero .lead{max-width:none;font-size:.92rem;line-height:1.7}

  .about{grid-template-columns:1fr;gap:2rem}
  .frame-card{width:min(100%,560px)}

  .projects{grid-template-columns:1fr}

  .ab-top{grid-template-columns:1fr;gap:2rem;text-align:center}
  .ab-fig{max-width:620px}
  .ab-tag{justify-content:center}
  .ab blockquote,.ab .bn{margin-inline:auto}
  .ab h2{transform-origin:center}
  .ab-why{grid-template-columns:1fr;gap:2rem;margin-top:3rem}
  .ab-why p{max-width:none}
}

@media (max-width:600px){
  :root{--head:64px;--gutter:5vw}
  .logo{font-size:1.35rem}
  .menu{top:var(--head)}

  .hero{padding:5.6rem 4vw 1.6rem;gap:.9rem .6rem;align-items:start}
  .hero .eyebrow{font-size:.52rem;letter-spacing:.2em}
  .hero .name{font-size:.8rem;margin:.35rem 0 .5rem}
  .hero h1{font-size:clamp(1.45rem,6.6vw,2.1rem);line-height:1.15;letter-spacing:-.025em}
  .hero .lead{font-size:.7rem;line-height:1.55;margin:.6rem 0 .8rem}
  .cta{gap:.4rem;flex-direction:column;align-items:stretch}
  .cta .btn-solid,.cta .btn-outline{font-size:.72rem;min-height:0;padding:.6rem .6rem;text-align:center}
  .btn-solid::after{margin-left:.35rem}
  .hero .socials{gap:.45rem;margin-top:.9rem}
  .hero .socials a{width:42px;height:42px;font-size:1.1rem}
  .portrait{width:100%;max-width:none;align-self:center}
  .fanpill{justify-self:stretch;font-size:.98rem;padding:.8rem 1rem;gap:.6rem;margin-top:.4rem;text-align:center}

  .section{padding-block:4.2rem}
  .section h2{font-size:2.1rem}
  .sec-head{margin-bottom:2rem}
  .about{padding-block:4.2rem;gap:1.6rem}
  .frame-card{max-width:440px}
  .about-copy .lede{font-size:.92rem;line-height:1.8}
  .info{grid-template-columns:1fr;gap:.9rem;margin-top:1.5rem}
  .info div{grid-template-columns:1.8rem 1fr;gap:.1rem .7rem}
  .info strong,.info a{font-size:.88rem}

  .cards{gap:.7rem}
  .card{padding:1.15rem .9rem;border-radius:10px}
  .card h3{font-size:.92rem}
  .card p{font-size:.78rem;line-height:1.5}
  .skills{margin-top:2rem}
  .skill-label{width:100%;font-size:.7rem}
  .skill-row{padding:.8rem 0}
  .skill-row li{font-size:.8rem;padding:.3rem .8rem}

  .project-body{padding:1.2rem}
  .project h3{font-size:1.35rem}
  
  .gallery{columns:1}
  .tile figcaption{font-size:.78rem}

  .posts{grid-template-columns:1fr}
  .post-card{padding:1.5rem 1.3rem}
  .chips{gap:.5rem}
  .chips button{font-size:.8rem;padding:.4rem .8rem}

  .ab{padding-block:4.2rem 3.5rem}
  .ab-top{gap:1.5rem}
  .ab-visual{border-radius:10px}
  .ab h2{font-size:clamp(2.5rem,11vw,3.5rem)}
  .ab-why{margin-top:2.5rem;padding-top:2rem}
  .ab-frames{gap:.55rem}
  .ab-feats{font-size:.78rem}
  .ab-forever{margin-top:2.5rem;font-size:1.6rem;gap:.6rem}

  .contact{text-align:left}
  .contact .lede{margin-inline:0}
  .contact-actions{justify-content:flex-start}
  .cinfo{grid-template-columns:1fr;justify-items:start;justify-content:start;gap:1rem;margin:1.6rem 0 1.2rem;text-align:left}
  .contact .socials{justify-content:flex-start}

  .foot{flex-direction:column;align-items:flex-start;gap:1rem;padding:2.4rem var(--edge);text-align:left}
  .foot nav{justify-content:flex-start}
  .foot .copy{width:auto;text-align:left;margin-top:0}

  .post{padding-top:7rem}
  .post-nav{grid-template-columns:1fr}
  .post-nav .next{text-align:left}
}

@media (max-width:360px){
  .cards{grid-template-columns:1fr}
  .hero h1{font-size:1.32rem}
  .hero .socials{gap:.3rem}
  .hero .socials a{width:36px;height:36px;font-size:1rem}
  .fanpill{font-size:.92rem}
  .info{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.js .reveal{opacity:1;transform:none}
}


/* Project images: fixed-height frame, whole image visible, never cropped */
.shot-phone{background:radial-gradient(ellipse at 50% 30%,rgba(0,229,176,.10),transparent 60%),#040b09}
.shot-phone img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}

@media (max-width:820px){.shot{height:460px}}
@media (max-width:600px){.shot{height:400px}}

/* Wide card (3rd project): full row on desktop, image left, text right */
@media (min-width:821px){
  .project-wide{grid-column:1/-1;flex-direction:row;align-items:stretch}
  .project-wide .shot{flex:0 0 52%;height:auto;aspect-ratio:1200/630}
  .project-wide .project-body{justify-content:center;padding:2rem 2.2rem}
}

/* Brand banner: natural landscape ratio when cards stack (tablet/phone), so its text stays readable */
@media (max-width:820px){.shot-brand{height:auto;aspect-ratio:1200/630}}
