/* ============================================================
   PATRICK PEREZ PORTFOLIO — PlayStation Premium Theme
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ─── Variables ─────────────────────────────────────────── */
:root {
  /* Section backgrounds */
  --sec-1: #E8F2FF;
  --sec-2: #D8EBFF;
  --sec-3: #C8E3FF;

  /* PlayStation blues */
  --blue-dark:  #002870;
  --blue:       #1565C0;
  --blue-light: #2196F3;
  --blue-mid:   #1976D2;
  --cyan:       #00D4FF;
  --cyan-dim:   rgba(0,212,255,0.12);
  --cyan-glow:  rgba(0,212,255,0.28);

  /* Text */
  --text-1: #061629;
  --text-2: #1E3A60;
  --text-3: #5A83B0;

  /* Cards */
  --card-bg: rgba(255,255,255,0.98);

  /* Borders */
  --border:        rgba(21,101,192,0.18);
  --border-bright: rgba(0,212,255,0.55);

  --white: #FFFFFF;

  /* PS button colours */
  --cross:    #4A90D9;
  --circle:   #E05555;
  --square:   #C86DD7;
  --triangle: #5BC86D;

  --font-head: 'Orbitron', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --ease:      cubic-bezier(0.25,0.46,0.45,0.94);
  --ease-back: cubic-bezier(0.34,1.56,0.64,1);
}

/* ─── Reset ─────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  background:var(--sec-1);
  color:var(--text-1);
  font-family:var(--font-body);
  line-height:1.6;
  overflow-x:hidden;
  cursor:none;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
ul { list-style:none; }
button { cursor:pointer; font-family:inherit; }

/* ─── Scrollbar ─────────────────────────────────────────── */
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--sec-2); }
::-webkit-scrollbar-thumb {
  background:linear-gradient(180deg,var(--blue),var(--cyan));
  border-radius:3px;
}

/* ─── Custom Cursor ─────────────────────────────────────── */
.cursor-dot {
  position:fixed; width:8px; height:8px;
  background:var(--blue); border-radius:50%;
  pointer-events:none; z-index:99999;
  transform:translate(-50%,-50%);
  transition:width 0.2s,height 0.2s,background 0.2s;
  box-shadow:0 0 10px var(--blue),0 0 20px var(--cyan-glow);
}
.cursor-ring {
  position:fixed; width:32px; height:32px;
  border:1.5px solid rgba(21,101,192,0.5); border-radius:50%;
  pointer-events:none; z-index:99998;
  transform:translate(-50%,-50%);
  transition:transform 0.12s var(--ease), width 0.3s, height 0.3s, border-color 0.3s;
}
body.hovering .cursor-dot { width:12px; height:12px; background:var(--cyan); }
body.hovering .cursor-ring { width:48px; height:48px; border-color:var(--cyan); }
body.clicking .cursor-dot { transform:translate(-50%,-50%) scale(0.7); }

/* ─── Scroll Progress ───────────────────────────────────── */
.scroll-progress {
  position:fixed; top:0; left:0; height:2px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  z-index:10000; transition:width 0.1s;
  box-shadow:0 0 8px var(--cyan-glow);
}

/* ═══════════════════════════════════════════════════════════
   SPLASH SCREEN  (stays dark — it's the intro cinematic)
   ═══════════════════════════════════════════════════════════ */
#splash {
  position:fixed; inset:0; z-index:99990;
  background:#001040;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  transition:opacity 0.9s var(--ease), visibility 0.9s;
}
#splash.fade-out { opacity:0; visibility:hidden; pointer-events:none; }

.splash-bg { position:absolute; inset:0; overflow:hidden; }

/* Splash wave sweep */
.splash-wave {
  position:absolute; inset:0;
  background:linear-gradient(90deg,
    transparent 0%, rgba(21,101,192,0.35) 40%,
    rgba(0,180,216,0.5) 50%, rgba(21,101,192,0.35) 60%,
    transparent 100%);
  transform:translateX(-100%);
  animation:waveSweep 1.2s ease 0.2s forwards;
}
@keyframes waveSweep {
  0%   { transform:translateX(-100%); opacity:1; }
  100% { transform:translateX(100%);  opacity:0; }
}

/* Floating PS symbols in splash background */
.splash-float {
  position:absolute; font-size:clamp(14px,2.2vw,26px); font-weight:800;
  opacity:0; pointer-events:none; user-select:none; font-family:var(--font-head);
  animation:
    splashFloat var(--dur,10s) ease-in-out var(--delay,0s) infinite,
    splashFloatIn 0.7s ease 2.2s forwards;
}
.splash-float.cross    { color:var(--cross);    }
.splash-float.circle   { color:var(--circle);   }
.splash-float.square   { color:var(--square);   }
.splash-float.triangle { color:var(--triangle); }
@keyframes splashFloatIn { to { opacity:0.14; } }
@keyframes splashFloat {
  0%,100% { transform:translateY(0) rotate(var(--rot,0deg)); }
  50%     { transform:translateY(-16px) rotate(var(--rot,0deg)); }
}

/* Animated ambient wave in splash */
.splash-grid {
  position:absolute; bottom:0; left:0; width:200%; height:200px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 200'%3E%3Cpath fill='%231565C0' fill-opacity='0.15' d='M0,100 C360,40 720,160 1080,100 C1260,70 1350,130 1440,100 L1440,200 L0,200 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:1440px 200px;
  animation:splashWaveScroll 12s linear infinite;
}
@keyframes splashWaveScroll {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* Corner accent lines */
.splash-bg::before, .splash-bg::after {
  content:''; position:absolute; width:200px; height:200px;
  border:1px solid rgba(0,180,216,0.2);
}
.splash-bg::before { top:20px; left:20px; border-right:none; border-bottom:none; }
.splash-bg::after  { bottom:20px; right:20px; border-left:none; border-top:none; }

.splash-content {
  position:relative; z-index:2;
  display:flex; flex-direction:column;
  align-items:center; gap:24px; text-align:center;
}

.splash-logo-svg {
  width:140px; height:140px;
  opacity:0; transform:scale(0.6);
  animation:logoIn 0.7s var(--ease-back) 1s forwards;
  filter:drop-shadow(0 0 30px rgba(0,180,216,0.5));
}
@keyframes logoIn { to { opacity:1; transform:scale(1); } }

.logo-hex-path {
  stroke-dasharray:400; stroke-dashoffset:400;
  animation:drawHex 1s ease 1.2s forwards;
}
@keyframes drawHex { to { stroke-dashoffset:0; } }

.logo-fill { opacity:0; animation:fillIn 0.4s ease 2s forwards; }
@keyframes fillIn { to { opacity:1; } }

.splash-name {
  opacity:0; transform:translateY(20px);
  animation:slideUp 0.6s var(--ease) 1.6s forwards;
  font-family:var(--font-head);
  font-size:clamp(28px,5vw,52px); font-weight:900; letter-spacing:6px;
  display:flex; gap:18px;
}
.splash-firstname { color:#FFFFFF; }
.splash-lastname {
  background:linear-gradient(135deg,var(--blue-light),var(--cyan));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}

.splash-title {
  opacity:0; transform:translateY(12px);
  animation:slideUp 0.5s var(--ease) 2s forwards;
  font-family:var(--font-mono); font-size:14px;
  color:var(--cyan); letter-spacing:4px; text-transform:uppercase;
}

.splash-ps-btns {
  display:flex; gap:20px; opacity:0;
  animation:slideUp 0.5s var(--ease) 2.2s forwards;
}
.splash-ps-btn {
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:700; border:2px solid;
  animation:btnPulse 2s ease infinite;
}
.splash-ps-btn.cross    { color:var(--cross);    border-color:var(--cross);    animation-delay:0s;    }
.splash-ps-btn.circle   { color:var(--circle);   border-color:var(--circle);   animation-delay:0.25s; }
.splash-ps-btn.square   { color:var(--square);   border-color:var(--square);   animation-delay:0.5s;  }
.splash-ps-btn.triangle { color:var(--triangle); border-color:var(--triangle); animation-delay:0.75s; }
@keyframes btnPulse {
  0%,100% { opacity:0.6; transform:scale(1); }
  50%     { opacity:1;   transform:scale(1.1); }
}

.splash-skip {
  opacity:0;
  animation:blink 1.4s ease 2.8s infinite;
  font-size:12px; color:rgba(255,255,255,0.45);
  letter-spacing:2px; text-transform:uppercase; font-family:var(--font-mono);
}
@keyframes slideUp { to { opacity:1; transform:translateY(0); } }
@keyframes blink {
  0%,100% { opacity:0.25; }
  50%     { opacity:0.8; }
}

/* ═══════════════════════════════════════════════════════════
   NAVIGATION — hidden during hero, slides in at About
   ═══════════════════════════════════════════════════════════ */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:9000;
  padding:0 40px;
  background:rgba(0,16,64,0.72);
  backdrop-filter:blur(20px) saturate(1.4);
  border-bottom:1px solid rgba(255,255,255,0.08);
  transform:translateY(-100%);
  opacity:0;
  pointer-events:none;
  transition:transform 0.45s var(--ease), opacity 0.45s var(--ease),
             background 0.3s, box-shadow 0.3s;
}
.navbar.nav-visible {
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.navbar.scrolled {
  background:rgba(0,12,60,0.96);
  box-shadow:0 4px 30px rgba(0,0,0,0.4);
}
.nav-container {
  max-width:1300px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  height:70px;
}

.nav-logo {
  display:flex; align-items:center; gap:12px;
  transition:filter 0.3s;
}
.nav-logo:hover { filter:drop-shadow(0 0 12px var(--cyan-glow)); }
.nav-logo-svg { width:36px; height:36px; }
.nav-logo-text {
  font-family:var(--font-head); font-size:18px; font-weight:800;
  background:linear-gradient(135deg,var(--blue-light),var(--cyan));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  letter-spacing:2px;
}

.nav-links { display:flex; align-items:center; gap:6px; }
.nav-link {
  position:relative; padding:8px 14px;
  font-size:12px; font-weight:600; letter-spacing:1.5px;
  text-transform:uppercase; color:rgba(255,255,255,0.6);
  transition:color 0.3s; font-family:var(--font-mono);
}
.nav-link::after {
  content:''; position:absolute; bottom:-2px; left:50%; right:50%;
  height:2px; background:linear-gradient(90deg,var(--blue-light),var(--cyan));
  border-radius:2px; transition:left 0.3s, right 0.3s;
}
.nav-link:hover, .nav-link.active { color:#FFFFFF; }
.nav-link:hover::after, .nav-link.active::after { left:14px; right:14px; }

.nav-toggle {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; padding:6px;
}
.nav-toggle span {
  display:block; width:24px; height:2px;
  background:rgba(255,255,255,0.8); border-radius:2px;
  transition:transform 0.3s, opacity 0.3s;
}
.nav-toggle.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ═══════════════════════════════════════════════════════════
   LAYOUT HELPERS
   ═══════════════════════════════════════════════════════════ */
.container { max-width:1200px; margin:0 auto; padding:0 40px; }

.section { padding:100px 0; position:relative; overflow:hidden; }

/* Subtle animated wave overlay on every light section */
.section::after {
  content:''; position:absolute; bottom:0; left:0;
  width:200%; height:130px; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 130'%3E%3Cpath fill='%231565C0' fill-opacity='0.045' d='M0,65 C240,22 480,108 720,65 C960,22 1200,108 1440,65 L1440,130 L0,130 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:1440px 130px;
  animation:sectionWave 22s linear infinite;
  z-index:0;
}
.section:nth-child(even)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 130'%3E%3Cpath fill='%231565C0' fill-opacity='0.035' d='M0,65 C300,108 540,22 720,65 C900,108 1140,22 1440,65 L1440,130 L0,130 Z'/%3E%3C/svg%3E");
  animation-direction:reverse; animation-duration:18s;
}
@keyframes sectionWave {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* Second, slower wave at top of sections */
.section::before {
  content:''; position:absolute; top:0; left:0;
  width:200%; height:90px; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90'%3E%3Cpath fill='%231565C0' fill-opacity='0.025' d='M0,45 C360,15 720,75 1080,45 C1260,30 1350,60 1440,45 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:1440px 90px;
  animation:sectionWaveTop 30s linear infinite reverse;
  z-index:0;
}

@keyframes sectionWaveTop {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* Ensure section content sits above wave overlays */
.section > * { position:relative; z-index:1; }
.section > .container { position:relative; z-index:1; }

.section-header { text-align:center; margin-bottom:70px; }

.section-tag {
  display:inline-flex; align-items:center; gap:10px;
  background:rgba(21,101,192,0.09); border:1px solid var(--border-bright);
  padding:6px 18px; border-radius:20px;
  font-family:var(--font-mono); font-size:11px;
  color:var(--blue); letter-spacing:2px; text-transform:uppercase;
  margin-bottom:20px;
}

.section-title {
  font-family:var(--font-head); font-size:clamp(28px,4vw,44px);
  font-weight:800; letter-spacing:4px;
  background:linear-gradient(135deg,var(--blue-dark) 0%,var(--blue-light) 60%,var(--cyan) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
}
.section-title::after {
  content:''; display:block; width:64px; height:3px; border-radius:2px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  margin:14px auto 0;
}

.section-subtitle {
  margin-top:12px; color:var(--text-2); font-size:15px; line-height:1.7;
  max-width:520px; margin-inline:auto;
}

/* PS button symbols */
.ps-sym {
  display:inline-block; width:22px; height:22px; border-radius:50%;
  line-height:22px; text-align:center; font-size:13px; font-weight:700;
  border:1.5px solid; flex-shrink:0;
}
.ps-sym.cross    { color:var(--cross);    border-color:var(--cross);    }
.ps-sym.circle   { color:var(--circle);   border-color:var(--circle);   }
.ps-sym.square   { color:var(--square);   border-color:var(--square);   }
.ps-sym.triangle { color:var(--triangle); border-color:var(--triangle); }

/* Scroll reveal */
.reveal       { opacity:0; transform:translateY(40px); transition:opacity 0.7s var(--ease),transform 0.7s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.reveal-left  { opacity:0; transform:translateX(-40px); transition:opacity 0.7s var(--ease),transform 0.7s var(--ease); }
.reveal-left.visible  { opacity:1; transform:none; }
.reveal-right { opacity:0; transform:translateX(40px); transition:opacity 0.7s var(--ease),transform 0.7s var(--ease); }
.reveal-right.visible { opacity:1; transform:none; }

/* ═══════════════════════════════════════════════════════════
   HERO — Dark PS blue gradient with animated waves
   ═══════════════════════════════════════════════════════════ */
.hero {
  min-height:100vh; display:flex; align-items:center;
  position:relative; overflow:hidden;
  background:linear-gradient(270deg, #000820, #001852, #002A80, #0050B8);
  background-size:400% 400%;
  animation:heroBgShift 16s ease infinite;
}
@keyframes heroBgShift {
  0%   { background-position:0% 50%; }
  50%  { background-position:100% 50%; }
  100% { background-position:0% 50%; }
}

/* Three animated wave layers */
.hero-bg { position:absolute; inset:0; overflow:hidden; }

.hero-wave {
  position:absolute; bottom:0; left:0;
  width:200%; background-repeat:repeat-x;
  animation:heroWave linear infinite;
}
.hero-wave-1 {
  height:220px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 220'%3E%3Cpath fill='white' fill-opacity='0.07' d='M0,110 C360,40 720,180 1080,110 C1260,75 1350,145 1440,110 L1440,220 L0,220 Z'/%3E%3C/svg%3E");
  background-size:1440px 220px;
  animation-duration:14s;
}
.hero-wave-2 {
  height:180px; bottom:-10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180'%3E%3Cpath fill='%2300B4D8' fill-opacity='0.09' d='M0,60 C180,120 360,0 540,60 C720,120 900,0 1080,60 C1260,120 1350,30 1440,60 L1440,180 L0,180 Z'/%3E%3C/svg%3E");
  background-size:1440px 180px;
  animation-duration:20s; animation-direction:reverse;
}
.hero-wave-3 {
  height:260px; bottom:-30px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 260'%3E%3Cpath fill='%231565C0' fill-opacity='0.13' d='M0,130 C240,60 480,200 720,130 C960,60 1200,200 1440,130 L1440,260 L0,260 Z'/%3E%3C/svg%3E");
  background-size:1440px 260px;
  animation-duration:28s;
}
@keyframes heroWave {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* Floating PS button symbols */
.floating-sym {
  position:absolute; font-size:clamp(18px,3vw,32px); font-weight:800;
  opacity:0.14; animation:floatAnim var(--dur,8s) ease-in-out infinite;
  animation-delay:var(--delay,0s); user-select:none; pointer-events:none;
  font-family:var(--font-head);
}
.floating-sym.cross    { color:var(--cross);    }
.floating-sym.circle   { color:var(--circle);   }
.floating-sym.square   { color:var(--square);   }
.floating-sym.triangle { color:var(--triangle); }
@keyframes floatAnim {
  0%,100% { transform:translateY(0) rotate(var(--rot,0deg)); opacity:0.10; }
  50%     { transform:translateY(-28px) rotate(var(--rot,0deg)); opacity:0.22; }
}

/* Hero layout — centred column */
.hero-inner {
  position:relative; z-index:2;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:22px;
  width:100%; max-width:1000px; margin:0 auto; padding:60px 40px;
  text-align:center;
}

/* Hero name — single line below profile picture */
.hero-name {
  font-family:var(--font-head); font-size:clamp(28px,4.5vw,58px);
  font-weight:900; letter-spacing:4px; line-height:1.1;
  color:#FFFFFF;
  white-space:nowrap;
  text-shadow:0 0 40px rgba(0,212,255,0.35);
  animation:slideUp 0.7s var(--ease) 0.2s both;
  margin:0;
}

/* Typing animation row */
.hero-typing {
  font-size:clamp(15px,2.2vw,22px); color:rgba(255,255,255,0.72);
  font-family:var(--font-body); font-weight:300;
  display:flex; align-items:center; justify-content:center; gap:8px;
  min-height:32px;
  animation:slideUp 0.7s var(--ease) 0.35s both;
  margin:0;
}
.typing-highlight {
  color:#00E5FF; font-weight:600; font-family:var(--font-mono);
  letter-spacing:1px;
}
.typing-cursor {
  color:#00E5FF; font-weight:100; font-size:1.1em;
  animation:typingBlink 0.75s step-end infinite;
}
@keyframes typingBlink {
  0%,100% { opacity:1; }
  50%      { opacity:0; }
}

/* Buttons */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 28px; border-radius:6px;
  font-size:13px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; font-family:var(--font-mono);
  transition:all 0.3s var(--ease); position:relative; overflow:hidden;
  border:none; cursor:pointer;
}
.btn::before {
  content:''; position:absolute; inset:0;
  background:rgba(255,255,255,0.1); transform:translateX(-100%);
  transition:transform 0.3s;
}
.btn:hover::before { transform:translateX(0); }

.btn-primary {
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  color:#FFFFFF; box-shadow:0 4px 20px rgba(21,101,192,0.45);
}
.btn-primary:hover {
  box-shadow:0 6px 30px rgba(0,180,216,0.55); transform:translateY(-2px);
}
.btn-outline {
  background:rgba(255,255,255,0.08);
  border:1.5px solid rgba(255,255,255,0.35);
  color:#FFFFFF;
}
.btn-outline:hover {
  background:rgba(255,255,255,0.15);
  border-color:rgba(255,255,255,0.6);
  transform:translateY(-2px);
}

/* Hero social */
.hero-social { display:flex; gap:14px; justify-content:center; animation:slideUp 0.7s var(--ease) 0.5s both; }
.social-link {
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(255,255,255,0.2);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,0.55); font-size:16px; transition:all 0.3s;
}
.social-link:hover {
  border-color:var(--cyan); color:#FFFFFF;
  box-shadow:0 0 15px var(--cyan-glow); transform:translateY(-3px);
}

/* Profile visual */
.hero-visual {
  display:flex; justify-content:center; align-items:center;
  animation:slideUp 0.8s var(--ease) 0.1s both;
}
.profile-frame {
  position:relative; width:400px; height:400px;
  display:flex; align-items:center; justify-content:center;
}
.ring { position:absolute; border-radius:50%; border-style:solid; }
.ring-1 {
  inset:-20px; border-width:1px;
  border-color:rgba(255,255,255,0.2) transparent rgba(0,180,216,0.3) transparent;
  animation:spin1 12s linear infinite;
}
.ring-2 {
  inset:-40px; border-width:1px;
  border-color:transparent rgba(0,180,216,0.2) transparent rgba(255,255,255,0.15);
  animation:spin1 18s linear infinite reverse;
}
.ring-3 {
  inset:-60px; border-width:1px;
  border-color:rgba(0,180,216,0.1) transparent rgba(255,255,255,0.1) transparent;
  animation:spin1 25s linear infinite;
}
@keyframes spin1 { to { transform:rotate(360deg); } }

.profile-frame::before, .profile-frame::after {
  content:''; position:absolute; width:30px; height:30px;
  border:2px solid rgba(255,255,255,0.4); z-index:3;
}
.profile-frame::before { top:0; left:0; border-right:none; border-bottom:none; }
.profile-frame::after  { bottom:0; right:0; border-left:none; border-top:none; }

.profile-img-wrap {
  width:300px; height:300px; border-radius:50%; overflow:hidden;
  border:2px solid rgba(0,212,255,0.5);
  box-shadow:0 0 50px rgba(0,100,200,0.6), 0 0 100px rgba(0,212,255,0.2);
  background:rgba(0,40,120,0.6);
  cursor:pointer;
  position:relative;
  transition:border-color 0.3s, box-shadow 0.3s;
}
.profile-img-wrap:hover {
  border-color:rgba(0,229,255,1);
  box-shadow:0 0 60px rgba(0,140,255,0.8), 0 0 120px rgba(0,229,255,0.35);
}
.profile-img-wrap img {
  width:100%; height:100%; object-fit:cover;
  position:absolute; top:0; left:0; right:0; bottom:0;
}
.profile-placeholder {
  position:absolute; top:0; left:0; right:0; bottom:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-size:72px; font-weight:900;
  color:rgba(255,255,255,0.2);
  z-index:0;
}

.lvl-badge {
  position:absolute; bottom:20px; right:10px; z-index:4;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue));
  border-radius:8px; padding:8px 14px; text-align:center; min-width:64px;
  box-shadow:0 4px 20px rgba(21,101,192,0.5); border:1px solid rgba(255,255,255,0.2);
}
.lvl-label { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; color:rgba(255,255,255,0.7); display:block; }
.lvl-value { font-family:var(--font-head); font-size:22px; font-weight:900; color:#FFFFFF; display:block; }

/* Scroll indicator */
.scroll-indicator {
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  animation:slideUp 1s ease 1s both;
}
.scroll-text { font-family:var(--font-mono); font-size:10px; letter-spacing:4px; color:rgba(255,255,255,0.35); }
.scroll-line {
  width:1px; height:50px;
  background:linear-gradient(180deg,rgba(255,255,255,0.5) 0%,transparent 100%);
  animation:scrollPulse 2s ease infinite;
}
@keyframes scrollPulse {
  0%,100% { transform:scaleY(1); opacity:0.5; }
  50%     { transform:scaleY(0.6); opacity:1; }
}

/* ═══════════════════════════════════════════════════════════
   ABOUT  (light bg)
   ═══════════════════════════════════════════════════════════ */
.about { background:var(--sec-1); }

.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }

.about-text-content p { font-size:16px; line-height:2.0; color:var(--text-2); margin-bottom:20px; font-weight:400; }
.about-text-content p:last-child { margin-bottom:0; }

.info-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.info-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:10px; padding:18px;
  box-shadow:0 2px 16px rgba(0,40,120,0.08);
  transition:border-color 0.3s, box-shadow 0.3s, transform 0.3s;
  border-top:2px solid var(--blue);
}
.info-card:hover {
  border-color:var(--cyan);
  border-top-color:var(--cyan);
  box-shadow:0 8px 30px rgba(0,180,255,0.15);
  transform:translateY(-2px);
}
.info-label {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px;
  color:var(--cyan); text-transform:uppercase; margin-bottom:8px;
}
.info-value { font-size:14px; color:var(--text-1); font-weight:600; }

.interests-title {
  font-family:var(--font-mono); font-size:11px; letter-spacing:2px;
  color:var(--text-3); text-transform:uppercase; margin-bottom:12px;
}
.tags-row { display:flex; flex-wrap:wrap; gap:8px; }
.tag {
  display:inline-block; padding:5px 14px;
  background:rgba(21,101,192,0.08); border:1px solid var(--border);
  border-radius:20px; font-size:12px; color:var(--blue);
  font-family:var(--font-mono); letter-spacing:1px;
  transition:border-color 0.3s, background 0.3s;
}
.tag:hover { border-color:var(--border-bright); background:rgba(21,101,192,0.14); }

/* ═══════════════════════════════════════════════════════════
   SKILLS  (light bg)
   ═══════════════════════════════════════════════════════════ */
.skills { background:var(--sec-2); }

.skills-categories { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:50px; }
.cat-filter {
  padding:7px 18px; border-radius:20px; background:rgba(255,255,255,0.8);
  border:1px solid var(--border); color:var(--text-2);
  font-family:var(--font-mono); font-size:11px; letter-spacing:1.5px;
  text-transform:uppercase; cursor:pointer; transition:all 0.3s;
}
.cat-filter:hover, .cat-filter.active {
  border-color:var(--blue); color:var(--blue);
  background:rgba(21,101,192,0.08);
  box-shadow:0 0 0 3px rgba(21,101,192,0.08);
}

.skills-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:20px; }
.skill-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-left:3px solid var(--blue);
  border-radius:10px; padding:20px 24px;
  box-shadow:0 2px 16px rgba(0,40,120,0.08);
  transition:border-color 0.3s, border-left-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.skill-card:hover {
  border-color:var(--border-bright);
  border-left-color:var(--cyan);
  transform:translateY(-3px);
  box-shadow:0 10px 32px rgba(0,180,255,0.16);
}
.skill-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.skill-name { font-size:14px; font-weight:600; color:var(--text-1); }
.skill-cat  { font-family:var(--font-mono); font-size:10px; color:var(--text-3); letter-spacing:1px; }
.skill-level-label { font-family:var(--font-head); font-size:18px; font-weight:800; color:var(--blue); }

.xp-bar-bg {
  height:6px; background:rgba(21,101,192,0.1);
  border-radius:3px; overflow:hidden; position:relative;
}
.xp-bar-fill {
  height:100%; border-radius:3px; width:0;
  background:linear-gradient(90deg,var(--blue-dark),var(--blue-light),var(--cyan));
  transition:width 1.2s cubic-bezier(0.23,1,0.32,1); position:relative;
}
.xp-bar-fill::after {
  content:''; position:absolute; right:0; top:-2px;
  width:10px; height:10px; background:var(--blue-light);
  border-radius:50%; box-shadow:0 0 8px rgba(33,150,243,0.6);
}
.xp-sublabel {
  display:flex; justify-content:space-between; margin-top:7px;
  font-family:var(--font-mono); font-size:10px; color:var(--text-3);
}

/* ═══════════════════════════════════════════════════════════
   PROJECTS  (light bg)
   ═══════════════════════════════════════════════════════════ */
.projects { background:var(--sec-1); }

.projects-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:24px; }
.project-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:12px; overflow:hidden;
  box-shadow:0 4px 20px rgba(21,101,192,0.08);
  transition:all 0.4s var(--ease);
}
.project-card:hover {
  border-color:var(--border-bright); transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(21,101,192,0.18);
}
.project-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--blue-dark),var(--blue-light),var(--cyan));
  transform:scaleX(0); transform-origin:left; transition:transform 0.4s;
}
.project-card { position:relative; }
.project-card:hover::before { transform:scaleX(1); }

.project-thumb {
  height:190px; background:var(--sec-3); overflow:hidden;
  position:relative; display:flex; align-items:center; justify-content:center;
}
.project-thumb img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.project-card:hover .project-thumb img { transform:scale(1.05); }
.project-thumb-placeholder {
  font-family:var(--font-head); font-size:48px; font-weight:900;
  color:rgba(21,101,192,0.15);
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--sec-2),var(--sec-3));
}
.project-thumb-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(242,247,255,0.5) 0%,transparent 60%);
}
.project-body { padding:22px; }
.project-title {
  font-family:var(--font-head); font-size:16px; font-weight:700;
  color:var(--text-1); margin-bottom:10px; letter-spacing:1px;
}
.project-desc {
  font-size:13px; color:var(--text-2); line-height:1.7; margin-bottom:16px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.project-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.project-tag {
  padding:3px 10px; background:rgba(21,101,192,0.08);
  border:1px solid rgba(21,101,192,0.2);
  border-radius:3px; font-size:10px; color:var(--blue);
  font-family:var(--font-mono); letter-spacing:1px;
}
.project-links { display:flex; gap:10px; }
.project-link {
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px; border-radius:6px;
  font-size:11px; font-weight:600; letter-spacing:1.5px;
  text-transform:uppercase; font-family:var(--font-mono); transition:all 0.3s;
}
.project-link.primary {
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  color:#FFFFFF; box-shadow:0 4px 14px rgba(21,101,192,0.3);
}
.project-link.primary:hover { box-shadow:0 6px 20px rgba(21,101,192,0.45); transform:translateY(-2px); }
.project-link.secondary { border:1px solid var(--border); color:var(--text-2); background:none; }
.project-link.secondary:hover { border-color:var(--blue); color:var(--blue); }

/* ═══════════════════════════════════════════════════════════
   TIMELINE  (light bg)
   ═══════════════════════════════════════════════════════════ */
.experience { background:var(--sec-2); }
.education  { background:var(--sec-1); }

.timeline { position:relative; max-width:860px; margin:0 auto; padding-left:40px; }
.timeline::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg,var(--blue-dark) 0%,var(--blue-light) 100%);
  border-radius:2px;
}
.timeline-item { position:relative; margin-bottom:44px; padding-left:36px; }
.timeline-item:last-child { margin-bottom:0; }
.timeline-dot {
  position:absolute; left:-48px; top:6px;
  width:16px; height:16px; border-radius:50%;
  background:#FFFFFF; border:2px solid var(--blue);
  box-shadow:0 0 12px rgba(21,101,192,0.3);
  display:flex; align-items:center; justify-content:center;
}
.timeline-dot::after {
  content:''; width:6px; height:6px; border-radius:50%; background:var(--blue);
}
.timeline-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-left:3px solid var(--blue);
  border-radius:10px; padding:22px 26px;
  box-shadow:0 2px 16px rgba(0,40,120,0.08);
  transition:border-color 0.3s, border-left-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.timeline-card:hover {
  border-color:var(--border-bright);
  border-left-color:var(--cyan);
  box-shadow:0 8px 30px rgba(0,180,255,0.15);
  transform:translateX(4px);
}
.timeline-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:10px; margin-bottom:6px; }
.timeline-title { font-family:var(--font-head); font-size:15px; font-weight:700; color:var(--text-1); letter-spacing:1px; }
.timeline-period {
  font-family:var(--font-mono); font-size:11px; color:var(--cyan);
  background:rgba(0,212,255,0.1); border:1px solid rgba(0,212,255,0.3);
  padding:3px 10px; border-radius:12px;
}
.timeline-sub { font-size:13px; color:var(--blue-light); margin-bottom:10px; font-weight:600; }
.timeline-desc { font-size:14px; color:var(--text-2); line-height:1.8; }
.timeline-current {
  display:inline-block; margin-left:10px;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue));
  font-size:10px; padding:2px 8px; border-radius:10px;
  color:white; font-family:var(--font-mono); letter-spacing:1px; vertical-align:middle;
}

/* ═══════════════════════════════════════════════════════════
   ACHIEVEMENTS  (light bg)
   ═══════════════════════════════════════════════════════════ */
.achievements { background:var(--sec-2); }

.achievements-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.trophy-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-top:3px solid var(--blue);
  border-radius:10px; padding:22px;
  display:flex; gap:18px; align-items:flex-start;
  box-shadow:0 2px 16px rgba(0,40,120,0.08);
  transition:all 0.3s;
}
.trophy-card:hover {
  border-color:var(--border-bright);
  border-top-color:var(--cyan);
  transform:translateY(-4px);
  box-shadow:0 12px 36px rgba(0,180,255,0.18);
}
.trophy-icon { font-size:32px; flex-shrink:0; }
.trophy-info { flex:1; }
.trophy-title { font-size:15px; font-weight:700; color:var(--text-1); margin-bottom:6px; letter-spacing:0.5px; }
.trophy-desc { font-size:13px; color:var(--text-2); line-height:1.7; margin-bottom:8px; }
.trophy-year { font-family:var(--font-mono); font-size:11px; color:var(--cyan); }
.trophy-type {
  font-size:10px; font-family:var(--font-mono); padding:2px 8px;
  border-radius:10px; letter-spacing:1px;
  display:inline-block; margin-bottom:8px;
}
.trophy-type.platinum { background:rgba(130,100,230,0.1); border:1px solid #8264E6; color:#8264E6; }
.trophy-type.gold     { background:rgba(255,185,0,0.1);   border:1px solid #FFB900; color:#CC9300; }
.trophy-type.silver   { background:rgba(120,120,140,0.1); border:1px solid #8A8A9A; color:#6A6A7A; }
.trophy-type.bronze   { background:rgba(160,90,40,0.1);   border:1px solid #A05A28; color:#A05A28; }

/* ═══════════════════════════════════════════════════════════
   VIDEOS  (light bg)
   ═══════════════════════════════════════════════════════════ */
.videos { background:var(--sec-1); }

.videos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:24px; }
.video-card {
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:12px; overflow:hidden;
  box-shadow:0 4px 20px rgba(21,101,192,0.08); transition:all 0.3s;
}
.video-card:hover {
  border-color:var(--border-bright); transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(21,101,192,0.16);
}
.video-embed { position:relative; padding-top:56.25%; background:var(--sec-3); }
.video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.video-info { padding:16px 20px; }
.video-title { font-size:14px; font-weight:600; color:var(--text-1); margin-bottom:6px; }
.video-desc  { font-size:12px; color:var(--text-2); line-height:1.6; }

/* ═══════════════════════════════════════════════════════════
   GALLERY  (light bg)
   ═══════════════════════════════════════════════════════════ */
.gallery { background:var(--sec-2); }

.gallery-grid { columns:3; column-gap:16px; }
.gallery-item {
  break-inside:avoid; margin-bottom:16px;
  border-radius:10px; overflow:hidden;
  border:1px solid var(--border); cursor:pointer;
  box-shadow:0 2px 12px rgba(21,101,192,0.07);
  transition:transform 0.3s, box-shadow 0.3s;
}
.gallery-item:hover {
  transform:scale(1.02);
  box-shadow:0 10px 32px rgba(21,101,192,0.18);
  border-color:var(--border-bright);
}
.gallery-item img { display:block; width:100%; }

/* ═══════════════════════════════════════════════════════════
   CUSTOM SECTIONS
   ═══════════════════════════════════════════════════════════ */
.custom-section { background:var(--sec-1); }
.custom-section:nth-child(even) { background:var(--sec-2); }
.custom-content { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.custom-text { font-size:15px; color:var(--text-2); line-height:1.8; }
.custom-img { border-radius:12px; overflow:hidden; border:1px solid var(--border); box-shadow:0 4px 20px rgba(21,101,192,0.1); }
.custom-img img { width:100%; }

/* ═══════════════════════════════════════════════════════════
   CONTACT  (light bg)
   ═══════════════════════════════════════════════════════════ */
.contact { background:var(--sec-1); }

.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.contact-info { display:flex; flex-direction:column; gap:20px; }
.contact-item {
  display:flex; gap:16px; align-items:flex-start;
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:10px; padding:18px 22px;
  box-shadow:0 2px 12px rgba(21,101,192,0.07);
  transition:border-color 0.3s, box-shadow 0.3s;
}
.contact-item:hover { border-color:var(--border-bright); box-shadow:0 6px 24px rgba(21,101,192,0.12); }
.contact-icon {
  width:40px; height:40px; border-radius:8px;
  background:linear-gradient(135deg,rgba(21,101,192,0.12),rgba(0,180,216,0.12));
  border:1px solid var(--border-bright);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0;
}
.contact-label { font-family:var(--font-mono); font-size:10px; color:var(--blue); letter-spacing:2px; text-transform:uppercase; margin-bottom:4px; }
.contact-value { font-size:14px; color:var(--text-1); }

.social-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.social-card {
  display:flex; align-items:center; gap:12px;
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:10px; padding:16px 18px;
  box-shadow:0 2px 12px rgba(21,101,192,0.07);
  transition:all 0.3s;
}
.social-card:hover {
  border-color:var(--border-bright); transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(21,101,192,0.15);
}
.social-card-icon { font-size:22px; }
.social-card-name   { font-size:13px; font-weight:600; color:var(--text-1); }
.social-card-handle { font-size:11px; color:var(--text-3); font-family:var(--font-mono); }

/* ═══════════════════════════════════════════════════════════
   LIGHTBOX
   ═══════════════════════════════════════════════════════════ */
.lightbox {
  position:fixed; inset:0; z-index:99000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.3s;
}
.lightbox.open { opacity:1; visibility:visible; }
.lightbox-overlay {
  position:absolute; inset:0; background:rgba(0,16,64,0.92);
  backdrop-filter:blur(10px);
}
.lightbox-img-wrap { position:relative; z-index:1; max-width:90vw; max-height:90vh; }
.lightbox-img-wrap img { max-width:90vw; max-height:85vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.lightbox-close {
  position:absolute; top:-44px; right:0;
  background:none; border:none; color:#FFFFFF; font-size:28px;
  cursor:pointer; line-height:1; transition:color 0.3s, transform 0.3s;
}
.lightbox-close:hover { color:var(--cyan); transform:rotate(90deg); }
.lightbox-nav {
  position:fixed; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2);
  color:#FFFFFF; border-radius:50%;
  width:50px; height:50px; display:flex; align-items:center; justify-content:center;
  font-size:20px; cursor:pointer; z-index:2; transition:all 0.3s;
}
.lightbox-nav:hover { background:rgba(21,101,192,0.4); border-color:var(--cyan); }
.lightbox-prev { left:20px; }
.lightbox-next { right:20px; }

/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */
.footer {
  background:linear-gradient(135deg,#001040,#002070);
  border-top:1px solid rgba(255,255,255,0.08);
  padding:30px 40px;
}
.footer-inner {
  max-width:1200px; margin:0 auto;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
}
.footer-copy { font-size:13px; color:rgba(255,255,255,0.4); font-family:var(--font-mono); }
.footer-logo { display:flex; align-items:center; gap:10px; }
.footer-logo-svg { width:28px; height:28px; }
.footer-logo-text { font-family:var(--font-head); font-size:14px; color:rgba(255,255,255,0.5); letter-spacing:2px; }
.footer-admin {
  font-family:var(--font-mono); font-size:11px;
  color:rgba(255,255,255,0.35); letter-spacing:2px; text-transform:uppercase;
  padding:6px 14px; border:1px solid rgba(255,255,255,0.08);
  border-radius:4px; transition:all 0.3s;
}
.footer-admin:hover { color:var(--cyan); border-color:rgba(0,180,216,0.3); }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .about-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .custom-content { grid-template-columns:1fr; }
  .gallery-grid { columns:2; }
}

@media (max-width:768px) {
  .navbar { padding:0 20px; }
  .nav-links {
    position:fixed; top:70px; left:0; right:0; bottom:0;
    background:rgba(0,12,56,0.98);
    flex-direction:column; gap:0; padding:30px 20px;
    transform:translateX(100%); transition:transform 0.4s var(--ease);
    align-items:flex-start;
  }
  .nav-links.open { transform:translateX(0); }
  .nav-link { padding:16px 0; font-size:16px; width:100%; border-bottom:1px solid rgba(255,255,255,0.08); }
  .nav-toggle { display:flex; }
  .container { padding:0 20px; }
  .section { padding:70px 0; }
  .info-grid { grid-template-columns:1fr; }
  .social-grid { grid-template-columns:1fr; }
  .profile-frame { width:280px; height:280px; }
  .profile-img-wrap { width:210px; height:210px; }
  .hero-name { white-space:normal; font-size:clamp(26px,8vw,44px); }
  .gallery-grid { columns:1; }
  .projects-grid { grid-template-columns:1fr; }
  .skills-grid { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .splash-name { font-size:26px; letter-spacing:3px; }
  .section-title { font-size:24px; }
  .hero-inner { padding:40px 20px; gap:18px; }
}

/* ─── Utility ──────────────────────────────────────────────── */
.hidden { display:none !important; }
