*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --sb:#1c1f27;
  --sb2:#13151b;
  --accent:#1ab6e8;
  --accent2:#0d8fc4;
  --dark:#191c24;
  --card:#22262f;
  --text:#e4e8f0;
  --muted:#fff;
  --border:rgba(255,255,255,0.06);
  --sw:220px;
}

html,body{height:100%;overflow:hidden;font-family:'DM Sans',sans-serif;background:var(--dark);color:var(--text)}

/* LAYOUT */
.layout{display:flex;height:100vh;overflow:hidden}

/* SIDEBAR */
.sidebar{
  width:var(--sw);
  min-width:var(--sw);
  height:100vh;
  background:var(--sb);
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--border);
  z-index:50;
  position:relative;
}

.sb-profile{
  width:100%;
/*   height:170px; */
  background:linear-gradient(160deg,#252b38,#1a1e28);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
}

.sb-profile::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 50% 120%,rgba(26,182,232,0.12),transparent 65%);
}

.sb-avatar{
/*   width:80px;height:80px; */
  border-radius:50%;
  background:linear-gradient(135deg,#2e3545,#1e2330);
  border:3px solid rgba(26,182,232,0.35);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  z-index:1;
}

.sb-avatar svg{width:40px;height:40px;opacity:0.4}

.sb-name{
  background:var(--accent);
  color:#fff;
  font-family:'Playfair Display',serif;
  font-size:13.5px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  padding:11px 16px;
  text-align:center;
  flex-shrink:0;
}

.sb-nav{
  list-style:none;
  flex:1;
  padding:6px 0;
  overflow-y:auto;
}

.sb-nav li a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 22px;
  color:#8a90a6;
  text-decoration:none;
  font-size:12px;
  font-weight:500;
  letter-spacing:1.8px;
  text-transform:uppercase;
  transition:all 0.2s;
  border-left:3px solid transparent;
  cursor:pointer;
}

.sb-nav li a:hover{color:#fff;background:rgba(26,182,232,0.07);border-left-color:rgba(26,182,232,0.4)}
.sb-nav li a.active{color:#fff;background:rgba(26,182,232,0.1);border-left-color:var(--accent)}

.sb-nav li a .icon{width:17px;height:17px;flex-shrink:0;opacity:0.75}

.sb-footer{
  padding:18px 16px;
  border-top:1px solid var(--border);
  flex-shrink:0;
}

.sb-socials{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-bottom:11px;
}

.sb-socials a{
  width:30px;height:30px;
  border-radius:6px;
  background:rgba(255,255,255,0.04);
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);
  text-decoration:none;
  transition:all 0.2s;
  border:1px solid var(--border);
}
.sb-socials a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

.sb-copy{font-size:10.5px;color:var(--muted);text-align:center;line-height:1.6}

/* STAGE — 3D flip container */
.stage{
  flex:1;
  height:100vh;
  position:relative;
  overflow:hidden;
  perspective:1400px;
  perspective-origin:50% 40%;
  background:var(--dark);
}
ul{
    margin: 0;
}
/* PAGES */
.page{
  position:absolute;
  inset:0;
  overflow-y:auto;
  overflow-x:hidden;
  transform-origin:left center;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:transform 0.75s cubic-bezier(0.77,0,0.175,1),opacity 0.75s ease;
  will-change:transform,opacity;
  height: 100%;
}

/* states */
.page.current{
  transform:translateX(0) rotateY(0deg);
  opacity:1;
  z-index:10;
  pointer-events:auto;
}
.page.exit-left{
  transform:translateX(-10%) rotateY(-45deg) scale(0.88);
  opacity:0;
  z-index:5;
  pointer-events:none;
}
.page.enter-right{
  transform:translateX(15%) rotateY(35deg) scale(0.88);
  opacity:0;
  z-index:5;
  pointer-events:none;
}
.page.hidden{
  transform:translateX(15%) rotateY(35deg) scale(0.88);
  opacity:0;
  z-index:1;
  pointer-events:none;
}

/* PAGE SHARED */
.pg{padding:60px 70px;min-height:100vh}

.pg-eyebrow{
  font-size:10.5px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:10px;
  font-weight:600;
}

.pg-title{
  font-family:'Playfair Display',serif;
  font-size:clamp(34px,4.5vw,56px);
  font-weight:900;
  line-height:1.05;
  margin-bottom:32px;
  color:#fff;
}
.pg-title span{color:var(--accent)}

/* ── HOME ── */
#pg-home{
  background:linear-gradient(135deg,#0e1622 0%,#182030 50%,#1a1c24 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px;
  position:relative;
  overflow:hidden;
}

#pg-home::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 60% 50%,rgba(26,182,232,0.1),transparent 65%),
    repeating-linear-gradient(0deg,rgba(255,255,255,0.015) 0px,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 60px),
    repeating-linear-gradient(90deg,rgba(255,255,255,0.015) 0px,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 60px);
}

.home-tag{
  font-size:11px;letter-spacing:5px;text-transform:uppercase;
  color:var(--accent);margin-bottom:18px;font-weight:600;
  position:relative;z-index:1;
  animation:fadeUp 0.5s ease both;
}

.home-h{
  font-family:'Playfair Display',serif;
  font-size:clamp(48px,7vw,90px);
  font-weight:900;line-height:1;
  color:#fff;position:relative;z-index:1;
  animation:fadeUp 0.6s 0.1s ease both;
  letter-spacing:-1px;
}
.home-h span{color:var(--accent)}

.home-sub{
  margin-top:20px;
  font-size:clamp(14px,1.8vw,19px);
  color:rgba(255,255,255,0.55);
  font-weight:300;position:relative;z-index:1;
  animation:fadeUp 0.6s 0.2s ease both;
  letter-spacing:0.5px;
}
.home-sub strong{color:#fff;font-weight:500}

.cursor{
  display:inline-block;width:2px;height:1em;
  background:var(--accent);margin-left:3px;
  vertical-align:middle;animation:blink 1s step-end infinite;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

.home-btns{
  display:flex;gap:14px;margin-top:38px;
  position:relative;z-index:1;
  animation:fadeUp 0.6s 0.3s ease both;
}

.btn{
  padding:12px 28px!important;border-radius:4px!important;
  font-family:'DM Sans',sans-serif;font-size:11.5px;
  font-weight:600;letter-spacing:1.8px;text-transform:uppercase;
  cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  border:none;transition:all 0.22s;
}
.btn-p{background:var(--accent)!important;color:#fff!important;}
.btn-p:hover{background:var(--accent2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(26,182,232,0.3)}
.btn-o{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.2)}
.btn-o:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}

.scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,0.25);font-size:9px;letter-spacing:4px;text-transform:uppercase;
  z-index:1;
}
.scroll-line{width:1px;height:44px;background:linear-gradient(to bottom,var(--accent),transparent);animation:sp 2s ease-in-out infinite}
@keyframes sp{0%,100%{opacity:0.3}50%{opacity:1}}

/* ── ABOUT ── */
#pg-about{background:var(--dark)}

.about-wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:flex-start;position:relative;}

.about-imgbox{
      position: sticky;
    top: 60px;
}
.about-imgbox::before{
  content:'';position:absolute;
  top:-14px;left:-14px;right:14px;bottom:14px;
  border:2px solid rgba(26,182,232,0.3);border-radius:4px;
}
.about-img{
  width:100%;height:400px;
  background:linear-gradient(145deg,#252b38,#1a1f2c);
  border-radius:4px;position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
}
.about-img svg{width:88px;height:88px;opacity:0.15}

.about-p{color:var(--muted);line-height:1.85;font-size:14.5px;margin-bottom:18px;font-weight:300}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0}
.stat{
  background:var(--card);border:1px solid var(--border);
  border-radius:8px;padding:18px;text-align:center;
  transition:border-color 0.2s;
}
.stat:hover{border-color:var(--accent)}
.stat-n{font-family:'Playfair Display',serif;font-size:34px;font-weight:900;color:var(--accent);line-height:1}
.stat-l{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:5px}

.skill-item{margin-bottom:16px}
.skill-hd{display:flex;justify-content:space-between;font-size:12.5px;font-weight:500;margin-bottom:7px}
.skill-bar{height:3px;background:rgba(255,255,255,0.07);border-radius:99px;overflow:hidden}
.skill-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0;transition:width 1.2s cubic-bezier(0.4,0,0.2,1) 0.3s}

/* ── RESUME ── */
#pg-resume{background:#13151c}

.res-cols{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.res-col-h{
  font-size:11px;letter-spacing:3px;text-transform:uppercase;
  color:var(--accent);margin-bottom:22px;font-weight:600;
  display:flex;align-items:center;gap:10px;
}
.res-col-h::after{content:'';flex:1;height:1px;background:var(--border)}

.tl{position:relative;padding:18px 16px 18px 40px;border-left:2px solid var(--border);margin-bottom:6px;transition:border-color 0.2s}
.tl:hover{border-left-color:var(--accent)}
.tl-dot{position:absolute;left:-6px;top:23px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid #13151c}
.tl-date{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:5px;font-weight:600}
.tl-title{font-size:15px;font-weight:600;color:#fff;margin-bottom:3px}
.tl-co{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.tl-desc{font-size:12.5px;color:#6e7488;line-height:1.7;font-weight:300}

/* ── PORTFOLIO ── */
#pg-portfolio{background:var(--dark)}

.filters{display:flex;gap:8px;margin-bottom:34px;flex-wrap:wrap}
.ftab{
  padding:7px 18px;border-radius:4px;font-size:11px;
  letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;
  border:1px solid var(--border);color:var(--muted);
  background:transparent;transition:all 0.2s;
  font-family:'DM Sans',sans-serif;font-weight:500;
}
.ftab.active,.ftab:hover{background:var(--accent);border-color:var(--accent);color:#fff}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pcard{
  position:relative;border-radius:8px;overflow:hidden;
  background:var(--card);aspect-ratio:4/3;cursor:pointer;
}
.pthumb{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  transition:transform 0.4s;
}
.pcard:hover .pthumb{transform:scale(1.06)}
.pover{
  position:absolute;inset:0;
  background:rgba(13,143,196,0.92);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;transition:opacity 0.3s;
}
.pcard:hover .pover{opacity:1}
.pover-plus{
  width:42px;height:42px;border:2px solid #fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#fff;margin-bottom:12px;
}
.pover h3{font-size:15px;font-weight:600;color:#fff;margin-bottom:4px}
.pover p{font-size:11px;color:rgba(255,255,255,0.7);letter-spacing:1.5px;text-transform:uppercase}

/* ── BLOG ── */
#pg-blog{background:#13151c}

.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.bcard{
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;overflow:hidden;transition:all 0.28s;cursor:pointer;
}
.bcard:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 38px rgba(0,0,0,0.3)}
.bimg{height:170px;display:flex;align-items:center;justify-content:center;font-size:42px}
.bbody{padding:20px}
.bdate{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.bcard h3{font-size:15px;font-weight:600;color:#fff;margin-bottom:9px;line-height:1.4}
.bcard p{font-size:12.5px;color:var(--muted);line-height:1.7;font-weight:300}
.blink{
  display:inline-flex;align-items:center;gap:5px;margin-top:13px;
  font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--accent);font-weight:600;text-decoration:none;transition:gap 0.2s;
}
.blink:hover{gap:9px}

/* ── CONTACT ── */
#pg-contact{background:var(--dark)}

.cgrid{display:grid;grid-template-columns:1fr 1.35fr;gap:52px;align-items:start}

.cinfo{
  display:flex;align-items:flex-start;gap:14px;
  padding:18px;background:var(--card);
  border:1px solid var(--border);border-radius:10px;margin-bottom:14px;
  transition:border-color 0.2s;
}
.cinfo:hover{border-color:var(--accent)}
.cico{
  width:40px;height:40px;
  background:rgba(26,182,232,0.1);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--accent);
}
.cinfo h4{font-size:12.5px;font-weight:600;color:#fff;margin-bottom:3px}
.cinfo p{font-size:12.5px;color:var(--muted);font-weight:300;margin:0;}

.cform{display:flex;flex-direction:column;gap:14px}
.crow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cgroup{display:flex;flex-direction:column;gap:7px}
.cgroup label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:500}
.cgroup input,.cgroup textarea{
  background:var(--card);border:1px solid var(--border);
  border-radius:6px;padding:12px 14px;color:var(--text);
  font-family:'DM Sans',sans-serif;font-size:13.5px;
  font-weight:300;transition:border-color 0.2s;outline:none;resize:none;
}
.cgroup input:focus,.cgroup textarea:focus{border-color:var(--accent)}
.cgroup textarea{height:110px}

#sent{display:none;color:var(--accent);font-size:12px;letter-spacing:1px;margin-top:4px}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}