/* ═══════════════════════════════════════════════
   PORTFOLIO — style.css
   Copyright (c) 2026 Kaustav Paul. All Rights Reserved.
   Proprietary Design & Styles. Unauthorized copying is strictly prohibited.
   ═══════════════════════════════════════════════ */

/* ── Light Mode Tokens ── */
:root {
  --bg:          #fffdfa;
  --bg-2:        #fef8eb;
  --bg-3:        #ffffff;
  --surface:     rgba(255,255,255,0.85);
  --surface-2:   rgba(255,255,255,0.98);
  --border:      rgba(217,119,6,0.12);
  --border-2:    rgba(217,119,6,0.22);
  --text:        #291804;
  --text-muted:  #785e3a;
  --accent:      #d97706;
  --accent-2:    #f59e0b;
  --accent-3:    #b45309;
  --accent-light:#fef3c7;
  --grad:        linear-gradient(135deg,#d97706 0%,#f59e0b 50%,#fbbf24 100%);
  --grad-text:   linear-gradient(135deg,#b45309 0%,#d97706 50%,#f59e0b 100%);
  --shadow-xs:   0 2px 12px rgba(217,119,6,0.08);
  --shadow-sm:   0 4px 24px rgba(217,119,6,0.14);
  --shadow-md:   0 8px 48px rgba(217,119,6,0.20);
  --shadow-lg:   0 20px 80px rgba(217,119,6,0.25);
  --r-sm:        14px;
  --r-md:        20px;
  --r-lg:        28px;
  --transition:  cubic-bezier(0.25,0.46,0.45,0.94);
  --spring:      cubic-bezier(0.34,1.56,0.64,1);
}

/* ── Dark Mode Tokens (Obsidian Warm Amber) ── */
[data-theme="dark"],
html.dark {
  --bg:          #0c0a08;
  --bg-2:        #14100b;
  --bg-3:        #18130d;
  --surface:     rgba(24, 19, 13, 0.85);
  --surface-2:   rgba(34, 27, 18, 0.95);
  --border:      rgba(245, 158, 11, 0.16);
  --border-2:    rgba(245, 158, 11, 0.32);
  --text:        #fcf8f0;
  --text-muted:  #c2a789;
  --accent:      #f59e0b;
  --accent-2:    #fbbf24;
  --accent-3:    #d97706;
  --accent-light:rgba(245, 158, 11, 0.18);
  --grad:        linear-gradient(135deg,#d97706 0%,#f59e0b 50%,#fbbf24 100%);
  --grad-text:   linear-gradient(135deg,#fef08a 0%,#fbbf24 45%,#f59e0b 100%);
  --shadow-xs:   0 2px 14px rgba(0, 0, 0, 0.35);
  --shadow-sm:   0 4px 28px rgba(0, 0, 0, 0.45);
  --shadow-md:   0 8px 50px rgba(0, 0, 0, 0.55);
}

/* ── Reset & Base ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  scroll-padding-top:80px;
  overflow-y:scroll;
}

/* ═══════════════════════════════════════════════
   LIQUID GLASS ANIMATED SCROLLBAR
═══════════════════════════════════════════════ */
.liquid-scrollbar{
  position:fixed;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  height:min(70vh, 520px);
  width:12px;
  z-index:998;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:width .3s var(--spring), right .3s var(--spring);
  user-select:none;
}
.liquid-scrollbar:hover,
.liquid-scrollbar.dragging{
  width:18px;
}

/* Glass Tube Rail */
.liquid-scroll-glass{
  position:relative;
  width:100%;
  height:100%;
  border-radius:9999px;
  
  /* Optical Liquid Translucency */
  background:rgba(255,255,255,0.28);
  backdrop-filter:blur(16px) saturate(190%) contrast(104%);
  -webkit-backdrop-filter:blur(16px) saturate(190%) contrast(104%);
  
  /* Specular Rim & Depth */
  border:1.2px solid rgba(255,255,255,0.65);
  box-shadow:
    inset 0 1.5px 1.5px rgba(255,255,255,0.92),
    inset 0 -1.5px 1.5px rgba(0,0,0,0.06),
    0 8px 30px rgba(41,24,4,0.08),
    0 2px 6px rgba(41,24,4,0.03);
    
  cursor:pointer;
  overflow:hidden;
  transition:border-color .3s,box-shadow .3s,background .3s;
}
.liquid-scrollbar:hover .liquid-scroll-glass{
  background:rgba(255,255,255,0.42);
  border-color:rgba(255,255,255,0.85);
  box-shadow:
    inset 0 1.5px 1.5px rgba(255,255,255,1),
    inset 0 -1.5px 1.5px rgba(217,119,6,0.1),
    0 12px 36px rgba(217,119,6,0.15);
}

/* Liquid Amber Droplet Thumb */
.liquid-scroll-thumb{
  position:absolute;
  top:0;
  left:2px;
  right:2px;
  height:54px;
  border-radius:9999px;
  
  /* Molten Fluid Gradient with Animated Shimmer */
  background:linear-gradient(180deg, #fef08a 0%, #fbbf24 25%, #d97706 65%, #f59e0b 100%);
  background-size:100% 200%;
  animation:liquid-shimmer 3s ease-in-out infinite alternate;
  
  /* Liquid Specular Rim & Glowing Drop Shadow */
  box-shadow:
    inset 0 1.5px 2px rgba(255,255,255,0.95),
    inset 0 -1.5px 2px rgba(0,0,0,0.22),
    0 0 14px rgba(245,158,11,0.55),
    0 2px 6px rgba(41,24,4,0.2);
    
  cursor:grab;
  will-change:transform,height;
  transform-origin:center top;
  transition:box-shadow .2s;
}
.liquid-scrollbar.dragging .liquid-scroll-thumb{
  cursor:grabbing;
  box-shadow:
    inset 0 1.5px 2px rgba(255,255,255,1),
    inset 0 -1.5px 2px rgba(0,0,0,0.3),
    0 0 20px rgba(245,158,11,0.85);
}

@keyframes liquid-shimmer{
  0%{background-position:0% 0%}
  100%{background-position:0% 100%}
}

/* Specular Droplet Caustic Highlight */
.liquid-thumb-caustic{
  position:absolute;
  top:3px;
  left:3px;
  right:3px;
  height:40%;
  border-radius:9999px;
  background:linear-gradient(180deg, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.1) 100%);
  pointer-events:none;
}

/* Pulsing Fluid Core */
.liquid-thumb-core{
  position:absolute;
  bottom:5px;
  left:50%;
  transform:translateX(-50%);
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(255,255,255,0.75);
  box-shadow:0 0 8px #fff;
  animation:liquid-core-pulse 2s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes liquid-core-pulse{
  0%{transform:translateX(-50%) scale(0.8);opacity:0.5}
  100%{transform:translateX(-50%) scale(1.4);opacity:0.95}
}

/* Floating Liquid Tooltip */
.liquid-scroll-tooltip{
  position:absolute;
  right:calc(100% + 12px);
  top:0;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:9999px;
  
  /* Liquid Glass Capsule */
  background:rgba(255,255,255,0.65);
  backdrop-filter:blur(20px) saturate(190%);
  -webkit-backdrop-filter:blur(20px) saturate(190%);
  border:1px solid rgba(255,255,255,0.75);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    0 8px 24px rgba(41,24,4,0.09);
    
  color:var(--text);
  font-size:.74rem;
  font-weight:700;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transform:translateX(8px) scale(0.92);
  transition:opacity .25s var(--transition),transform .25s var(--spring);
}
.liquid-scrollbar:hover .liquid-scroll-tooltip,
.liquid-scrollbar.active .liquid-scroll-tooltip,
.liquid-scrollbar.dragging .liquid-scroll-tooltip{
  opacity:1;
  transform:translateX(0) scale(1);
}
.tooltip-section{
  color:var(--text);
}
.tooltip-pct{
  color:var(--accent);
  font-family:'Space Grotesk',monospace;
  font-size:.72rem;
}

/* Dark Mode Liquid Scrollbar */
[data-theme="dark"] .liquid-scroll-glass,
html.dark .liquid-scroll-glass{
  background:rgba(255,255,255,0.06);
  border:1.2px solid rgba(255,255,255,0.12);
  box-shadow:
    inset 0 1.5px 1.5px rgba(255,255,255,0.2),
    inset 0 -1.5px 1.5px rgba(0,0,0,0.6),
    0 8px 30px rgba(0,0,0,0.7);
}
[data-theme="dark"] .liquid-scrollbar:hover .liquid-scroll-glass,
html.dark .liquid-scrollbar:hover .liquid-scroll-glass{
  background:rgba(255,255,255,0.09);
  border-color:rgba(245,158,11,0.3);
  box-shadow:
    inset 0 1.5px 1.5px rgba(255,255,255,0.3),
    0 0 20px rgba(245,158,11,0.2);
}
[data-theme="dark"] .liquid-scroll-thumb,
html.dark .liquid-scroll-thumb{
  background:linear-gradient(180deg, #fde68a 0%, #f59e0b 35%, #d97706 75%, #b45309 100%);
  box-shadow:
    inset 0 1.5px 2px rgba(255,255,255,0.5),
    inset 0 -1.5px 2px rgba(0,0,0,0.7),
    0 0 16px rgba(245,158,11,0.65);
}
[data-theme="dark"] .liquid-scroll-tooltip,
html.dark .liquid-scroll-tooltip{
  background:rgba(20,16,11,0.85);
  border:1px solid rgba(255,255,255,0.14);
  color:#fcf8f0;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.25),
    0 8px 30px rgba(0,0,0,0.8);
}
[data-theme="dark"] .tooltip-section,
html.dark .tooltip-section{
  color:#fcf8f0;
}
[data-theme="dark"] .tooltip-pct,
html.dark .tooltip-pct{
  color:var(--accent-2);
}

/* Hide default browser scrollbar on desktop so the liquid glass rail shines */
@media (min-width: 769px){
  html{
    scrollbar-width: none; /* Firefox */
  }
  ::-webkit-scrollbar{
    width: 0;
    height: 0;
    display: none; /* Chrome / Safari / Edge */
  }
}
@media (max-width: 768px){
  .liquid-scrollbar{display:none} /* Mobile uses touch scroll */
}

body{
  background:var(--bg);color:var(--text);
  font-family:'Outfit',system-ui,sans-serif;
  font-size:16px;line-height:1.7;overflow-x:hidden;
  transition:background-color .35s var(--transition), color .35s var(--transition);
}
a{color:inherit;text-decoration:none;cursor:pointer}
button{cursor:pointer;font-family:inherit}
img{display:block;max-width:100%}
input,textarea{font-family:inherit}
::selection{background:rgba(217,119,6,0.30);color:var(--text)}

/* ── Noise ── */
.noise-overlay{
  position:fixed;inset:0;z-index:1000;pointer-events:none;opacity:0.02;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:128px;
}

/* ── Antigravity Custom Cursor ── */
@media (pointer: fine) {
  body {
    cursor: none;
  }
  a, button, input, textarea, select, [role="button"], [data-magnetic] {
    cursor: none;
  }

  .custom-cursor-dot {
    position: fixed;
    top: 0; left: 0;
    width: 6px; height: 6px;
    margin: -3px 0 0 -3px;
    background: var(--accent);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    will-change: transform;
    box-shadow: 0 0 10px var(--accent);
    transition: opacity 0.2s ease, transform 0.15s cubic-bezier(0.25, 1, 0.5, 1), background-color 0.3s ease;
  }

  .custom-cursor-ring {
    position: fixed;
    top: 0; left: 0;
    width: 36px; height: 36px;
    margin: -18px 0 0 -18px;
    border: 1.5px solid var(--accent);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99998;
    will-change: transform;
    background: rgba(217, 119, 6, 0.04);
    box-shadow: 0 0 20px rgba(217, 119, 6, 0.15), inset 0 0 10px rgba(217, 119, 6, 0.05);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    transition: width 0.3s var(--spring), height 0.3s var(--spring), 
                margin 0.3s var(--spring), border-radius 0.3s var(--spring),
                background-color 0.3s ease, border-color 0.3s ease, 
                opacity 0.25s ease, box-shadow 0.3s ease;
  }

  [data-theme="dark"] .custom-cursor-ring,
  html.dark .custom-cursor-ring {
    border-color: var(--accent-2);
    background: rgba(245, 158, 11, 0.08);
    box-shadow: 0 0 24px rgba(245, 158, 11, 0.25), inset 0 0 12px rgba(245, 158, 11, 0.1);
  }

  /* Interactive Hover State (expanding magnetic bubble) */
  .custom-cursor-ring.cursor-hover {
    width: 56px; height: 56px;
    margin: -28px 0 0 -28px;
    background: rgba(217, 119, 6, 0.14);
    border-color: var(--accent-2);
    box-shadow: 0 0 32px rgba(217, 119, 6, 0.35), inset 0 0 16px rgba(217, 119, 6, 0.15);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
  
  [data-theme="dark"] .custom-cursor-ring.cursor-hover,
  html.dark .custom-cursor-ring.cursor-hover {
    background: rgba(245, 158, 11, 0.2);
    box-shadow: 0 0 36px rgba(245, 158, 11, 0.45), inset 0 0 20px rgba(245, 158, 11, 0.2);
  }

  .custom-cursor-dot.cursor-hover {
    transform: scale(1.5);
    background: #fff;
    box-shadow: 0 0 12px #fff, 0 0 24px var(--accent);
  }

  /* Click / Active state */
  .custom-cursor-ring.cursor-click {
    transform: scale(0.82);
    background: rgba(217, 119, 6, 0.28);
    border-width: 2px;
  }

  /* Text hover state - Antigravity vertical bar cursor */
  .custom-cursor-ring.cursor-text {
    width: 4px; height: 32px;
    margin: -16px 0 0 -2px;
    border-radius: 4px;
    background: var(--accent);
    border: none;
    box-shadow: 0 0 16px var(--accent);
  }
  .custom-cursor-dot.cursor-text {
    opacity: 0;
  }

  .custom-cursor-hidden {
    opacity: 0 !important;
    pointer-events: none;
  }
}

@media (pointer: coarse) {
  .custom-cursor-dot,
  .custom-cursor-ring {
    display: none !important;
  }
}

/* ── Utils ── */
.container{max-width:1200px;margin:0 auto;padding:0 32px}
.section{padding:120px 0}
.accent-gradient{background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.glass-card{
  background:var(--surface);border:1px solid var(--border);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:var(--r-md);
  transition:background .3s,border-color .3s,box-shadow .3s,transform .3s var(--spring);
  box-shadow:var(--shadow-xs);
}
.glass-card:hover{background:var(--surface-2);border-color:var(--border-2);box-shadow:var(--shadow-sm);transform:translateY(-4px)}
.section-label{font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-weight:700}
.section-title{font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.15;margin-bottom:48px}

/* ── Buttons ── */
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 32px;border-radius:50px;
  background:var(--grad);color:#fff;font-weight:600;font-size:.95rem;
  border:none;position:relative;overflow:hidden;
  transition:transform .2s var(--spring),box-shadow .3s;
  box-shadow:0 4px 20px rgba(217,119,6,0.35);
}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#b45309,#d97706);opacity:0;transition:opacity .3s}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 32px rgba(217,119,6,0.45)}
.btn-primary:hover::before{opacity:1}
.btn-primary span,.btn-primary svg{position:relative;z-index:1}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 32px;border-radius:50px;
  border:1.5px solid var(--border-2);color:var(--text);font-weight:600;font-size:.95rem;
  background:rgba(255,255,255,0.7);backdrop-filter:blur(8px);
  transition:background .2s,border-color .2s,transform .2s var(--spring),color .2s;
}
.btn-ghost:hover{background:var(--surface-2);border-color:var(--accent);transform:translateY(-2px)}
.btn-hire{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 22px;border-radius:9999px;
  background:var(--grad);
  border:1px solid rgba(255,255,255,0.5);
  color:#fff;font-size:.85rem;font-weight:600;
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.65), 0 4px 16px rgba(217,119,6,0.32);
  transition:all .25s var(--spring);
}
.btn-hire:hover{
  transform:translateY(-1.5px) scale(1.02);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.85), 0 8px 24px rgba(217,119,6,0.5);
  color:#fff;
}
.btn-outline-full{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 40px;border-radius:50px;
  border:1.5px solid var(--border-2);color:var(--text);font-weight:600;
  background:rgba(255,255,255,0.6);
  transition:background .3s,border-color .3s,transform .2s var(--spring);
}
.btn-outline-full:hover{background:var(--surface-2);border-color:var(--accent);transform:translateY(-2px)}
.btn-full{width:100%;justify-content:center;border-radius:var(--r-sm)}

/* ── Apple Liquid Glass Navbar ── */
.navbar{
  position:fixed;
  top:20px;
  left:50%;
  transform:translateX(-50%);
  width:min(1160px, calc(100% - 48px));
  height:66px;
  padding:0 24px;
  z-index:500;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-radius:9999px;
  
  /* Ultra-Clear Optical Liquid Glass Material (high transparency) */
  background:linear-gradient(135deg, rgba(255,255,255,0.24) 0%, rgba(255,255,255,0.06) 45%, rgba(255,255,255,0.18) 100%);
  backdrop-filter:blur(14px) saturate(190%) contrast(103%);
  -webkit-backdrop-filter:blur(14px) saturate(190%) contrast(103%);
  
  /* Liquid Meniscus Refraction Edge & Specular Highlights */
  border:1.2px solid rgba(255,255,255,0.55);
  box-shadow:
    inset 0 1.5px 1.5px 0 rgba(255,255,255,0.92),
    inset 0 -1.5px 2px 0 rgba(0,0,0,0.06),
    inset 0 0 1px 1px rgba(0,0,0,0.03),
    0 16px 36px -6px rgba(41,24,4,0.09),
    0 3px 10px -2px rgba(41,24,4,0.04);
    
  transition:top .35s var(--transition),height .35s var(--transition),background .35s var(--transition),border-color .35s,box-shadow .35s;
  overflow:hidden;
}

/* 3D Liquid Surface Curvature & Caustic Reflection */
.navbar::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(ellipse 110% 65% at 50% -10%, rgba(255,255,255,0.50) 0%, rgba(255,255,255,0.08) 50%, transparent 75%);
  pointer-events:none;
}
.navbar::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(ellipse 85% 35% at 50% 115%, rgba(255,255,255,0.25) 0%, transparent 60%);
  pointer-events:none;
}

.navbar.scrolled{
  top:12px;
  height:60px;
  background:linear-gradient(135deg, rgba(255,255,255,0.36) 0%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.28) 100%);
  border-color:rgba(255,255,255,0.75);
  box-shadow:
    inset 0 1.5px 1.5px 0 rgba(255,255,255,0.96),
    inset 0 -1.5px 2px 0 rgba(217,119,6,0.08),
    0 20px 48px -8px rgba(41,24,4,0.14),
    0 4px 12px -2px rgba(41,24,4,0.06);
}

[data-theme="dark"] .navbar,
html.dark .navbar {
  background:linear-gradient(135deg, rgba(255,255,255,0.08) 0%, rgba(22,17,12,0.35) 45%, rgba(255,255,255,0.05) 100%);
  backdrop-filter:blur(16px) saturate(210%) contrast(106%);
  -webkit-backdrop-filter:blur(16px) saturate(210%) contrast(106%);
  border:1.2px solid rgba(255,255,255,0.15);
  box-shadow:
    inset 0 1.5px 1.5px 0 rgba(255,255,255,0.32),
    inset 0 -1.5px 2px 0 rgba(0,0,0,0.6),
    0 20px 50px -8px rgba(0,0,0,0.85),
    0 2px 10px rgba(0,0,0,0.5);
}
[data-theme="dark"] .navbar::before,
html.dark .navbar::before{
  background:radial-gradient(ellipse 110% 65% at 50% -10%, rgba(255,255,255,0.18) 0%, transparent 65%);
}
[data-theme="dark"] .navbar::after,
html.dark .navbar::after{
  background:radial-gradient(ellipse 85% 35% at 50% 115%, rgba(245,158,11,0.08) 0%, transparent 60%);
}

[data-theme="dark"] .navbar.scrolled,
html.dark .navbar.scrolled {
  top:12px;
  height:60px;
  background:linear-gradient(135deg, rgba(255,255,255,0.14) 0%, rgba(18,14,10,0.60) 45%, rgba(255,255,255,0.08) 100%);
  border-color:rgba(245,158,11,0.25);
  box-shadow:
    inset 0 1.5px 1.5px 0 rgba(255,255,255,0.4),
    inset 0 -1.5px 2px 0 rgba(0,0,0,0.7),
    0 24px 60px -8px rgba(0,0,0,0.92),
    0 0 1px 1px rgba(245,158,11,0.2);
}

.nav-logo{
  font-size:1.35rem;font-weight:900;letter-spacing:-.02em;
  background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  flex-shrink:0;
  transition:transform .2s var(--spring);
  position:relative;z-index:1;
}
.nav-logo:hover{transform:scale(1.02)}
.dot{display:none}
.nav-links{display:flex;align-items:center;gap:6px;margin-left:auto;position:relative;z-index:1}
.nav-link{
  padding:7px 18px;border-radius:9999px;
  font-size:.88rem;color:var(--text-muted);font-weight:600;
  border:1px solid transparent;
  transition:all .25s var(--transition);
  position:relative;z-index:1;
}
.nav-link:hover{
  color:var(--text);
  background:rgba(255,255,255,0.35);
  border-color:rgba(255,255,255,0.6);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.8), 0 2px 8px rgba(0,0,0,0.04);
}
.nav-link.active{
  color:var(--accent);
  background:rgba(255,255,255,0.45);
  border-color:rgba(255,255,255,0.7);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.9), 0 2px 10px rgba(217,119,6,0.1);
}
[data-theme="dark"] .nav-link:hover,
html.dark .nav-link:hover{
  color:var(--text);
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.14);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.18), 0 2px 10px rgba(0,0,0,0.3);
}
[data-theme="dark"] .nav-link.active,
html.dark .nav-link.active{
  color:var(--accent-2);
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.2);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.25), 0 2px 12px rgba(0,0,0,0.4);
}

.nav-actions{
  display:flex;align-items:center;gap:12px;
  position:relative;z-index:1;
}

/* Theme Toggle Button */
.theme-toggle-btn{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,0.35);
  border:1.2px solid rgba(255,255,255,0.6);
  display:flex;align-items:center;justify-content:center;
  color:var(--text);
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,0.95), inset 0 -1px 1px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.04);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:all .25s var(--spring);
}
.theme-toggle-btn:hover{
  background:rgba(255,255,255,0.6);
  border-color:rgba(255,255,255,0.85);
  color:var(--accent);
  transform:scale(1.08) rotate(15deg);
  box-shadow:inset 0 1.5px 1px rgba(255,255,255,1), 0 0 16px rgba(217,119,6,0.3);
}
.sun-icon{display:none}
.moon-icon{display:block}

[data-theme="dark"] .sun-icon,
html.dark .sun-icon{display:block;color:var(--accent)}
[data-theme="dark"] .moon-icon,
html.dark .moon-icon{display:none}

.menu-toggle{
  display:none;
  background:rgba(255,255,255,0.8);
  border:1px solid var(--border-2);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-radius:12px;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
  width:42px;height:42px;padding:8px;
  margin-left:auto;
  box-shadow:var(--shadow-xs);
  transition:background .2s,border-color .2s,transform .2s var(--spring);
}
.menu-toggle:hover{background:var(--surface-2);border-color:var(--accent);transform:scale(1.05)}
.menu-toggle span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;transition:all .3s}
.mobile-menu{
  position:fixed;inset:0;z-index:490;
  background:rgba(255,253,250,0.95);
  backdrop-filter:blur(30px) saturate(180%);
  -webkit-backdrop-filter:blur(30px) saturate(180%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;
  transform:translateX(100%);transition:transform .4s var(--transition);
}
[data-theme="dark"] .mobile-menu,
html.dark .mobile-menu{
  background:rgba(12,10,8,0.96);
}
.mobile-menu.open{transform:translateX(0)}
.mobile-nav-link{font-size:2rem;font-weight:700;color:var(--text);transition:color .2s}
.mobile-nav-link:hover{color:var(--accent)}

/* ── Hero ── */
.hero{
  min-height:100vh;display:grid;grid-template-columns:1.15fr 0.85fr;
  align-items:center;gap:48px;padding:120px 48px 80px;
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 70% 30%,rgba(245,158,11,0.18),transparent 70%),
             radial-gradient(ellipse 50% 50% at 20% 80%,rgba(217,119,6,0.10),transparent 60%);
  pointer-events:none;
}
#particle-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-content{position:relative;z-index:2}
.hero-title{
  font-size:clamp(2.4rem,5vw,5.2rem);font-weight:900;line-height:1.08;
  letter-spacing:-.03em;margin-bottom:20px;
}
.hero-title .line{display:block}
.hero-sub{font-size:1.02rem;color:var(--text-muted);max-width:480px;margin-bottom:32px;line-height:1.7}
.hero-sub em{color:var(--accent);font-style:normal;font-weight:700}
.hero-cta{display:flex;align-items:center;gap:14px;margin-bottom:44px;flex-wrap:wrap}
/* ── Hero Architecture Pillars ── */
.hero-pillars{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:580px;
}
.pillars-header{
  display:flex;
  align-items:center;
  gap:8px;
}
.pillars-pulse{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#10b981;
  box-shadow:0 0 0 0 rgba(16,185,129,0.5);
  animation:pillar-pulse 2.5s infinite;
}
@keyframes pillar-pulse{
  0%{box-shadow:0 0 0 0 rgba(16,185,129,0.6)}
  70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}
  100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}
}
.pillars-label{
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:var(--text-muted);
}
.pillars-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
}
.pillar-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px 14px 12px;
  border-radius:14px;
  background:rgba(255,255,255,0.42);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border:1px solid rgba(255,255,255,0.65);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.9), 0 4px 16px rgba(41,24,4,0.03);
  transition:all .25s var(--spring);
}
.pillar-card:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,0.65);
  border-color:rgba(217,119,6,0.35);
  box-shadow:inset 0 1px 1px rgba(255,255,255,1), 0 8px 24px rgba(217,119,6,0.12);
}
.pillar-icon{
  width:32px;
  height:32px;
  border-radius:9px;
  background:rgba(217,119,6,0.10);
  border:1px solid rgba(217,119,6,0.18);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent);
  transition:all .25s var(--spring);
}
.pillar-card:hover .pillar-icon{
  transform:scale(1.1);
  background:rgba(217,119,6,0.18);
}
.pillar-content{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.pillar-title{
  font-size:.82rem;
  font-weight:700;
  color:var(--text);
  line-height:1.25;
  letter-spacing:-.01em;
}
.pillar-sub{
  font-size:.68rem;
  color:var(--text-muted);
  font-weight:500;
  line-height:1.35;
  letter-spacing:.01em;
}

[data-theme="dark"] .pillar-card,
html.dark .pillar-card{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.10);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.12), 0 4px 16px rgba(0,0,0,0.3);
}
[data-theme="dark"] .pillar-card:hover,
html.dark .pillar-card:hover{
  background:rgba(255,255,255,0.07);
  border-color:rgba(245,158,11,0.35);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.2), 0 8px 24px rgba(245,158,11,0.15);
}

/* Avatar Visual */
.hero-visual{position:relative;z-index:2;display:flex;align-items:center;justify-content:center}
.avatar-wrapper{
  position:relative;width:400px;height:400px;max-width:100%;
  display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;
}
.avatar-blob{
  position:absolute;inset:-15px;
  background:radial-gradient(ellipse at 40% 40%,rgba(245,158,11,0.25),transparent 70%);
  border-radius:50%;filter:blur(28px);animation:blob-drift 8s ease-in-out infinite alternate;
}
@keyframes blob-drift{from{transform:scale(1) translate(0,0)}to{transform:scale(1.08) translate(8px,-8px)}}
.avatar-ring{
  position:absolute;border-radius:50%;border:1px solid rgba(217,119,6,0.18);
  animation:ring-spin 20s linear infinite;
}
.ring-1{inset:15px}
.ring-2{inset:-15px;border-color:rgba(217,119,6,0.10);animation-direction:reverse;animation-duration:30s}
@keyframes ring-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.avatar-img-wrap{
  width:260px;height:260px;border-radius:50%;overflow:hidden;
  border:2px solid rgba(217,119,6,0.35);
  box-shadow:0 0 60px rgba(217,119,6,0.25),0 0 0 8px rgba(217,119,6,0.08);
  background:linear-gradient(135deg,#fef3c7,#fde68a);
  position:relative;
}
[data-theme="dark"] .avatar-img-wrap,
html.dark .avatar-img-wrap{
  border:2px solid rgba(245,158,11,0.45);
  box-shadow:0 0 60px rgba(245,158,11,0.35),0 0 0 8px rgba(245,158,11,0.12);
  background:linear-gradient(135deg,#2c2010,#1a1309);
}
.avatar-img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
  transition:transform .4s var(--spring);
}
.avatar-wrapper:hover .avatar-img{
  transform:scale(1.05);
}
.float-chip{
  position:absolute;display:flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:50px;
  background:rgba(255,255,255,0.95);border:1px solid rgba(217,119,6,0.20);
  box-shadow:0 4px 16px rgba(217,119,6,0.12);
  backdrop-filter:blur(12px);font-size:.78rem;font-weight:600;color:var(--text);white-space:nowrap;
  transition:background .3s,color .3s,border-color .3s;
}
[data-theme="dark"] .float-chip,
html.dark .float-chip{
  background:rgba(24,19,13,0.92);
  border:1px solid rgba(245,158,11,0.25);
  color:var(--text);
  box-shadow:0 4px 20px rgba(0,0,0,0.45);
}
.chip-1{top:8%;right:-10px;animation:float1 4.2s ease-in-out infinite}
.chip-2{bottom:15%;left:-24px;animation:float2 5.1s ease-in-out infinite}
.chip-3{top:58%;right:-35px;animation:float3 3.9s ease-in-out infinite}
.chip-4{top:12%;left:-18px;animation:float4 4.6s ease-in-out infinite}
.chip-5{bottom:6%;right:12px;animation:float5 4.8s ease-in-out infinite}
.chip-6{top:50%;left:-38px;animation:float6 4.4s ease-in-out infinite}

@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@keyframes float3{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes float4{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(-2deg)}}
@keyframes float5{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@keyframes float6{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

.scroll-indicator{
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);z-index:2;font-weight:600;
}
.scroll-line{
  width:1px;height:48px;
  background:linear-gradient(to bottom,var(--accent),transparent);
  animation:scroll-drop 2s ease-in-out infinite;
}
@keyframes scroll-drop{
  0%,100%{transform:scaleY(0);transform-origin:top}
  40%{transform:scaleY(1);transform-origin:top}
  60%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}

/* ── Marquee ── */
.marquee-section{
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  background:linear-gradient(90deg,var(--bg-2),var(--bg-3),var(--bg-2));
  overflow:hidden;padding:18px 0;
  transition:background .35s;
}
.marquee-track{overflow:hidden}
.marquee-inner{
  display:flex;align-items:center;white-space:nowrap;
  animation:marquee 35s linear infinite;
}
.marquee-inner:hover{animation-play-state:paused}
.marquee-inner span{font-size:.82rem;font-weight:600;color:var(--text-muted);letter-spacing:.05em;padding:0 18px;transition:color .2s}
.marquee-inner span:hover{color:var(--accent)}
.sep{color:var(--accent) !important;font-size:.55rem !important;padding:0 4px !important;opacity:.7}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── About ── */
.about{background:var(--bg-3)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.about-text{color:var(--text-muted);margin-bottom:20px;font-size:1rem}
.about-text strong{color:var(--text)}
.about-text em{color:var(--accent);font-style:normal;font-weight:700}
.about-location-block{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  margin-bottom:24px;
}
.about-loc-item{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.95rem;color:var(--text);font-weight:600;
}
.about-relocate-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 14px;border-radius:50px;
  background:rgba(22,163,74,0.12);border:1px solid rgba(22,163,74,0.30);
  font-size:.8rem;font-weight:700;color:#22c55e;letter-spacing:.02em;
}
.pulse-dot{
  display:inline-block;width:8px;height:8px;border-radius:50%;
  background:#22c55e;box-shadow:0 0 8px #22c55e;
  animation:pulse-dot 2s infinite ease-in-out;
}
@keyframes pulse-dot{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(1.3)}
}
.about-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}
.about-right{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.about-card{padding:24px}
.about-card-icon{font-size:1.8rem;margin-bottom:12px}
.about-card h4{font-size:.95rem;font-weight:700;margin-bottom:8px;color:var(--text)}
.about-card p{font-size:.85rem;color:var(--text-muted);line-height:1.6}

/* ── Skills ── */
.skills-section{background:var(--bg-3)}
.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-bottom:64px}
.skill-group-title{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}
.skill-items{display:flex;flex-wrap:wrap;gap:10px}
.skill-pill{
  padding:8px 16px;border-radius:50px;font-size:.82rem;font-weight:600;
  background:rgba(217,119,6,0.08);border:1px solid rgba(217,119,6,0.18);color:var(--text);
  transition:background .2s,border-color .2s,color .2s,transform .2s var(--spring);
}
[data-theme="dark"] .skill-pill,
html.dark .skill-pill{
  background:rgba(245,158,11,0.10);border:1px solid rgba(245,158,11,0.22);
}
.skill-pill:hover{background:rgba(217,119,6,0.20);border-color:rgba(217,119,6,0.45);color:var(--accent);transform:translateY(-2px)}

/* ── Experience ── */
.experience-section{background:var(--bg)}
.timeline{position:relative;max-width:800px;margin:0 auto}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-2);transform:translateX(-50%)}
.timeline-item{display:grid;grid-template-columns:1fr 32px 1fr;align-items:start;gap:24px;margin-bottom:48px}
.timeline-item:nth-child(even) .timeline-card{grid-column:3}
.timeline-item:nth-child(odd) .timeline-card{grid-column:1}
.timeline-dot{grid-column:2;width:14px;height:14px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 12px rgba(217,119,6,0.5);margin-top:20px;justify-self:center}
.timeline-card{padding:24px;background:var(--surface)}
.tl-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.tl-role{font-size:1rem;font-weight:700;margin-bottom:4px;color:var(--text)}
.tl-company{font-size:.85rem;color:var(--accent);font-weight:700}
.tl-date{font-size:.72rem;color:var(--text-muted);background:rgba(217,119,6,0.12);padding:4px 10px;border-radius:50px;white-space:nowrap;border:1px solid var(--border-2);font-weight:600}
.tl-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:16px;line-height:1.65}
.tl-tags{display:flex;flex-wrap:wrap;gap:6px}

/* ── Contact Section ── */
.contact-section{background:var(--bg-3);padding:140px 0}
.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:72px;
  align-items:center;
}
.contact-title-col .section-title{
  margin-bottom:24px;
}
.contact-intro{
  color:var(--text-muted);
  font-size:1.05rem;
  line-height:1.75;
  margin-bottom:32px;
  max-width:520px;
}
.contact-social-group{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.social-label{
  font-size:.78rem;
  font-weight:700;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.social-links{display:flex;gap:12px}
.social-link{
  width:46px;height:46px;border-radius:var(--r-sm);
  background:var(--surface);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;color:var(--text-muted);
  transition:all .25s var(--spring);
  box-shadow:var(--shadow-xs);
}
.social-link:hover{
  background:var(--accent);border-color:var(--accent);color:#fff;
  transform:translateY(-3px) scale(1.05);
  box-shadow:0 6px 20px rgba(217,119,6,0.35);
}

.contact-cards-col{
  display:flex;
  flex-direction:column;
}
.contact-info-items{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.contact-info-item{
  display:flex;
  align-items:center;
  gap:20px;
  padding:22px 26px;
  border-radius:var(--r-md);
  border:1px solid var(--border);
  background:var(--surface);
  box-shadow:var(--shadow-xs);
  transition:all .25s var(--spring);
  position:relative;
}
.contact-info-item:hover{
  border-color:var(--border-2);
  transform:translateY(-3px) translateX(4px);
  box-shadow:var(--shadow-md);
  background:var(--surface-2);
}
.ci-icon{
  width:50px;height:50px;
  border-radius:14px;
  background:rgba(217,119,6,0.12);
  border:1px solid rgba(217,119,6,0.22);
  display:flex;align-items:center;justify-content:center;
  color:var(--accent);
  flex-shrink:0;
  transition:transform .25s var(--spring),background .25s;
}
.contact-info-item:hover .ci-icon{
  transform:scale(1.08);
  background:rgba(217,119,6,0.2);
}
.ci-content{flex:1}
.ci-label{
  font-size:.72rem;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
  font-weight:700;
}
.ci-value{
  font-size:1.02rem;
  font-weight:700;
  color:var(--text);
  word-break:break-word;
}
.ci-arrow{
  font-size:1.3rem;
  color:var(--text-muted);
  transition:transform .25s var(--spring),color .2s;
}
.contact-info-item:hover .ci-arrow{
  transform:translateX(6px);
  color:var(--accent);
}

/* ── Footer ── */
.footer{
  background:var(--bg);
  border-top:1px solid var(--border);
  padding:48px 0 40px;
  transition:background .35s;
}
.footer-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:28px;
  flex-wrap:wrap;
  gap:16px;
}
.footer-brand{display:flex;flex-direction:column;gap:4px}
.footer-logo{font-size:1.35rem}
.footer-role{font-size:.78rem;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase}
.footer-tagline{font-size:.88rem;color:var(--text-muted);font-weight:500}
.footer-divider{height:1px;background:var(--border);margin-bottom:28px}

.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px;
}
.footer-legal{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.copyright-text{
  font-size:.82rem;
  font-weight:700;
  color:var(--text);
  letter-spacing:-.01em;
}
.license-notice{
  font-size:.72rem;
  color:var(--text-muted);
  font-weight:500;
}
.footer-bottom-right{
  display:flex;
  align-items:center;
  gap:20px;
}
.footer-location-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
}
.footer-city{
  font-size:.82rem;
  color:var(--text);
  font-weight:700;
}
.footer-relocate-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:9999px;
  font-size:.72rem;
  font-weight:600;
  color:var(--accent);
  background:rgba(217,119,6,0.10);
  border:1px solid rgba(217,119,6,0.22);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.8);
}
.relocate-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#10b981;
  box-shadow:0 0 6px #10b981;
  animation:relocate-pulse 2.5s infinite;
}
@keyframes relocate-pulse{
  0%{box-shadow:0 0 0 0 rgba(16,185,129,0.6)}
  70%{box-shadow:0 0 0 5px rgba(16,185,129,0)}
  100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}
}

[data-theme="dark"] .footer-relocate-tag,
html.dark .footer-relocate-tag{
  background:rgba(245,158,11,0.12);
  border-color:rgba(245,158,11,0.28);
  color:var(--accent-2);
  box-shadow:inset 0 1px 1px rgba(255,255,255,0.1);
}

.back-to-top{
  width:42px;height:42px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border-2);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;color:var(--text);
  transition:all .25s var(--spring);
  box-shadow:var(--shadow-xs);
}
.back-to-top:hover{
  background:var(--accent);border-color:var(--accent);color:#fff;
  transform:translateY(-3px) scale(1.06);
  box-shadow:0 6px 20px rgba(217,119,6,0.35);
}

/* ── Reveal Animations ── */
.reveal-up,.reveal-left,.reveal-right{opacity:0;transition:opacity .7s var(--transition),transform .7s var(--transition)}
.reveal-up{transform:translateY(40px)}
.reveal-left{transform:translateX(-40px)}
.reveal-right{transform:translateX(40px)}
.reveal-up.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:translate(0)}
.reveal-line{display:block;clip-path:inset(0 100% 0 0);transition:clip-path .8s var(--spring)}
.reveal-line.visible{clip-path:inset(0 0% 0 0)}
.reveal-line:nth-child(2){transition-delay:.15s}
.reveal-line:nth-child(3){transition-delay:.3s}

/* ── Responsive ── */
@media(max-width:1024px){
  .hero{
    grid-template-columns:1fr;
    padding:110px 32px 70px;
    gap:40px;
    text-align:center;
    justify-items:center;
  }
  .hero-content{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .hero-sub{margin-left:auto;margin-right:auto}
  .hero-cta{justify-content:center}
  .hero-pillars{align-items:center;margin:0 auto}
  .hero-visual{
    display:flex;
    justify-content:center;
    width:100%;
    order:-1;
    margin-bottom:12px;
  }
  .avatar-wrapper{width:340px;height:340px}
  .avatar-img-wrap{width:220px;height:220px}
  .float-chip{font-size:.74rem;padding:6px 12px}

  .about-grid{grid-template-columns:1fr;gap:48px}
  .contact-layout{grid-template-columns:1fr;gap:48px}
  .timeline::before{left:0}
  .timeline-item{grid-template-columns:32px 1fr}
  .timeline-item .timeline-dot{grid-column:1}
  .timeline-item:nth-child(odd) .timeline-card,
  .timeline-item:nth-child(even) .timeline-card{grid-column:2}
  .skills-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:768px){
  .navbar{
    width:calc(100% - 24px);
    top:12px;
    height:58px;
    padding:0 16px;
  }
  .nav-links,.btn-hire{display:none}
  .menu-toggle{display:flex;margin-left:auto}
  .section{padding:80px 0}
  .skills-grid{grid-template-columns:1fr}
  .about-right{grid-template-columns:1fr}

  .hero{
    grid-template-columns:1fr;
    padding:96px 20px 60px;
    gap:36px;
    text-align:center;
    justify-items:center;
  }
  .hero-content{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .hero-title{font-size:clamp(2.1rem,7vw,3.2rem);margin-bottom:16px}
  .hero-sub{font-size:.95rem;line-height:1.65;margin-bottom:28px}
  .hero-cta{justify-content:center;gap:12px;margin-bottom:36px}
  .btn-primary,.btn-ghost{padding:12px 24px;font-size:.9rem}
  .hero-pillars{align-items:center;width:100%;max-width:440px;margin:0 auto}
  .pillars-grid{grid-template-columns:1fr;width:100%;gap:10px}
  .pillar-card{flex-direction:row;align-items:center;gap:14px;padding:12px 16px;text-align:left}
  .pillar-content{text-align:left}
  
  .hero-visual{
    display:flex;
    justify-content:center;
    width:100%;
    order:-1;
    margin-bottom:12px;
  }
  .avatar-wrapper{width:290px;height:290px}
  .avatar-img-wrap{width:190px;height:190px}
  .float-chip{font-size:.7rem;padding:5px 10px;gap:5px}
  .float-chip svg{width:12px;height:12px}
  .chip-1{top:6%;right:-8px}
  .chip-2{bottom:12%;left:-16px}
  .chip-3{top:56%;right:-24px}
  .chip-4{top:10%;left:-14px}
  .chip-5{bottom:4%;right:4px}
  .chip-6{top:48%;left:-20px}
  .container{padding:0 20px}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
  }
  .footer-bottom-right{
    width:100%;
    justify-content:space-between;
  }
  .footer-location-wrap{
    align-items:flex-start;
  }
}

@media(max-width:480px){
  .navbar{padding:0 16px;height:64px}
  .nav-logo{font-size:1.25rem}
  .theme-toggle-btn{width:36px;height:36px}
  .hero{
    padding:86px 16px 50px;
    gap:28px;
  }
  .hero-title{font-size:clamp(1.75rem,8vw,2.3rem);margin-bottom:12px;line-height:1.15}
  .hero-sub{font-size:.88rem;line-height:1.55;margin-bottom:22px}
  .hero-cta{gap:10px;margin-bottom:28px}
  .btn-primary,.btn-ghost{padding:10px 18px;font-size:.84rem}
  .pillar-card{padding:10px 14px}
  
  .avatar-wrapper{width:240px;height:240px}
  .avatar-img-wrap{width:155px;height:155px}
  .float-chip{font-size:.62rem;padding:4px 8px;gap:4px}
  .float-chip svg{width:10px;height:10px}
  .chip-1{top:4%;right:-6px}
  .chip-2{bottom:10%;left:-12px}
  .chip-3{top:56%;right:-18px}
  .chip-4{top:8%;left:-10px}
  .chip-5{bottom:2%;right:2px}
  .chip-6{top:48%;left:-16px}
  .section-title{font-size:clamp(1.7rem,7vw,2.3rem);margin-bottom:32px}
}

/* ── Dark Mode Button & Interactive Component Polishing ── */
[data-theme="dark"] .btn-primary,
html.dark .btn-primary {
  background: var(--grad);
  color: #120d06;
  font-weight: 700;
  box-shadow: 0 4px 24px rgba(245, 158, 11, 0.45);
}
[data-theme="dark"] .btn-primary::before,
html.dark .btn-primary::before {
  background: linear-gradient(135deg, #f59e0b, #fbbf24);
}
[data-theme="dark"] .btn-primary:hover,
html.dark .btn-primary:hover {
  box-shadow: 0 8px 36px rgba(245, 158, 11, 0.65);
}

[data-theme="dark"] .btn-ghost,
html.dark .btn-ghost {
  background: rgba(24, 19, 13, 0.85);
  border: 1.5px solid rgba(245, 158, 11, 0.35);
  color: #fcf8f0;
}
[data-theme="dark"] .btn-ghost:hover,
html.dark .btn-ghost:hover {
  background: rgba(45, 35, 22, 0.95);
  border-color: var(--accent);
  color: #fbbf24;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.22);
}

[data-theme="dark"] .btn-hire,
html.dark .btn-hire {
  background: var(--grad);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.4), 0 4px 18px rgba(245, 158, 11, 0.35);
}
[data-theme="dark"] .btn-hire:hover,
html.dark .btn-hire:hover {
  background: var(--grad);
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
  transform: translateY(-1.5px) scale(1.02);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.6), 0 8px 26px rgba(245, 158, 11, 0.55);
}

[data-theme="dark"] .theme-toggle-btn,
html.dark .theme-toggle-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: var(--accent);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.18), 0 4px 16px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .theme-toggle-btn:hover,
html.dark .theme-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fbbf24;
  box-shadow: 0 0 20px rgba(245, 158, 11, 0.4);
}

[data-theme="dark"] .menu-toggle,
html.dark .menu-toggle {
  background: rgba(24, 19, 13, 0.85);
  border: 1.5px solid rgba(245, 158, 11, 0.35);
}
[data-theme="dark"] .menu-toggle:hover,
html.dark .menu-toggle:hover {
  background: rgba(45, 35, 22, 0.95);
  border-color: var(--accent);
}
[data-theme="dark"] .menu-toggle span,
html.dark .menu-toggle span {
  background: #fcf8f0;
}

[data-theme="dark"] .back-to-top,
html.dark .back-to-top {
  background: rgba(24, 19, 13, 0.85);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fcf8f0;
}
[data-theme="dark"] .back-to-top:hover,
html.dark .back-to-top:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #120d06;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.45);
}

[data-theme="dark"] .social-link,
html.dark .social-link {
  background: rgba(24, 19, 13, 0.85);
  border: 1px solid rgba(245, 158, 11, 0.25);
  color: #c2a789;
}
[data-theme="dark"] .social-link:hover,
html.dark .social-link:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #120d06;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.45);
}
