/* Tailwind layer extensions & tiny custom styles */

/* ===================== CYBER NAV ===================== */
.nav-cyber { background:rgba(8,14,24,.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid rgba(0,255,255,.12); box-shadow:0 0 0 1px rgba(0,255,255,.06),0 8px 32px -10px rgba(0,0,0,.6),0 0 28px -6px rgba(34,211,238,.25); position:relative; }
.nav-cyber:before { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:linear-gradient(90deg,#06b6d4,#6366f1,#a855f7,#f59e0b,#06b6d4); background-size:300% 100%; animation:cyberBar 14s linear infinite; box-shadow:0 0 6px 2px rgba(6,182,212,.5); }
@keyframes cyberBar { 0%{background-position:0 0;} 100%{background-position:300% 0;} }

.brand-glitch { position:relative; text-transform:uppercase; letter-spacing:.5px; text-shadow:0 0 6px rgba(34,211,238,.9),0 0 18px rgba(168,85,247,.55); }
.brand-glitch-layer { position:relative; display:inline-block; }
.brand-glitch-layer.alt { position:absolute; top:0; left:0; color:#f59e0b; opacity:.35; animation:glitchShift 2.4s infinite ease-in-out alternate; text-shadow:0 0 8px rgba(245,158,11,.8); }
@keyframes glitchShift { 0% { transform:translate(0,0);} 40% { transform:translate(1px,-1px);} 55% { transform:translate(-1px,1px);} 70% { transform:translate(2px,0);} 100% { transform:translate(-2px,1px);} }

/* Nav links neon underline */
.nav-cyber .nav-link { color:#cbd5e1; font-weight:500; letter-spacing:.5px; }
.nav-cyber .nav-link:after { background:linear-gradient(90deg,#06b6d4,#6366f1,#a855f7,#f59e0b); height:2px; box-shadow:0 0 6px rgba(34,211,238,.8),0 0 10px rgba(99,102,241,.6); }
.nav-cyber .nav-link:hover { color:#fff; text-shadow:0 0 6px rgba(34,211,238,.8); }
.nav-cyber .nav-link.active { color:#fff; }
.nav-cyber .nav-link.active:after { width:100%; }

/* (Removed high-contrast nav overrides – feature deprecated) */

/* =================== END CYBER NAV =================== */

/* =====================================================
  CYBERPUNK / HACKER THEME LAYER
  ===================================================== */
.cyber { --cy-bg:#05060b; --cy-panel:#0d111a; --cy-panel-alt:#121826; --cy-accent:#08f7fe; --cy-accent-alt:#fe53bb; --cy-warn:#f5d300; --cy-success:#00ff9f; --cy-danger:#ff2281; --cy-glow:0 0 10px rgba(8,247,254,.6), 0 0 22px rgba(254,83,187,.35); --cy-font-mono:'JetBrains Mono',monospace; }
.cyber { font-family:var(--cy-font-mono),ui-sans-serif; }
/* Light mode base (no .dark on html) */
html:not(.dark) body.cyber { background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 60%,#dbe3ee 100%) fixed; color:#334155; }
html:not(.dark) body.cyber .gradient-hero { background:radial-gradient(circle at 70% 30%,rgba(56,189,248,.18),transparent 55%),radial-gradient(circle at 30% 70%,rgba(251,191,36,.18),transparent 60%),linear-gradient(135deg,#f8fafc 0%,#e8eef5 55%,#d9e2ec 100%); }
/* Dark mode */
html.dark body.cyber { background:radial-gradient(circle at 25% 20%,#121826 0%,#05060b 70%) fixed; color:#b8c4d6; }
html.dark body.cyber .gradient-hero { background:radial-gradient(circle at 70% 30%,rgba(254,83,187,.18),transparent 55%),radial-gradient(circle at 20% 60%,rgba(8,247,254,.18),transparent 55%), linear-gradient(135deg,#05060b 0%,#0d111a 60%,#121826 100%); position:relative; }
html.dark .cyber .hero-overlay { background:repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 2px,transparent 2px 4px), linear-gradient(to bottom,rgba(5,6,11,.2),rgba(5,6,11,.85)); mix-blend-mode:normal; }
html:not(.dark) .cyber .hero-overlay { background:linear-gradient(to bottom,rgba(255,255,255,.55),rgba(255,255,255,.9)); }
.cyber .scanlines:before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 2px,transparent 2px 4px); pointer-events:none; }
.cyber .hero-title span.block { letter-spacing:.05em; }
html.dark .cyber .gradient-text { background:linear-gradient(90deg,#08f7fe,#fe53bb,#f5d300,#08f7fe); background-size:300% 100%; animation:cyGradient 14s linear infinite; text-shadow:0 0 12px rgba(8,247,254,.7),0 0 24px rgba(254,83,187,.4); }
html:not(.dark) .cyber .gradient-text { background:linear-gradient(90deg,#0ea5e9,#6366f1,#f59e0b); background-size:180% 100%; animation:cyGradientLight 18s linear infinite; text-shadow:0 2px 8px rgba(0,0,0,.15); }
@keyframes cyGradientLight { 0%{background-position:0 0;} 50%{background-position:100% 0;} 100%{background-position:0 0;} }
@keyframes cyGradient { 0%{background-position:0 0;} 50%{background-position:100% 0;} 100%{background-position:0 0;} }
.cyber .nav-link { color:#d0d8e5; }
.cyber .nav-link:after { background:linear-gradient(90deg,#08f7fe,#fe53bb,#f5d300); }
html.dark .cyber a:hover { color:#08f7fe; }
html:not(.dark) .cyber a:hover { color:#0ea5e9; }
.cyber .theme-toggle { background:linear-gradient(135deg,#121826,#0d111a); border:1px solid #1e2635; box-shadow:0 0 0 1px #1e2635,0 0 12px -2px rgba(8,247,254,.4); }
.cyber .theme-toggle:hover { background:#182131; }

/* Panels / Cards */
html.dark .cyber .card { position:relative; background:linear-gradient(135deg,rgba(18,24,38,.9),rgba(13,17,26,.9)); border:1px solid #1e2635; box-shadow:0 0 0 1px #1e2635,0 0 18px -4px rgba(8,247,254,.35); overflow:hidden; }
html:not(.dark) .cyber .card { position:relative; background:linear-gradient(135deg,#ffffff,#f1f5f9); border:1px solid #d0d8e2; box-shadow:0 4px 14px -4px rgba(0,0,0,.12); }
html.dark .cyber .card:before { content:""; position:absolute; inset:0; background:linear-gradient(130deg,rgba(8,247,254,.15),rgba(254,83,187,.08),rgba(8,247,254,.12)); opacity:.35; mix-blend-mode:overlay; pointer-events:none; }
html:not(.dark) .cyber .card:before { content:""; position:absolute; inset:0; background:linear-gradient(130deg,rgba(14,165,233,.12),rgba(99,102,241,.08),rgba(245,158,11,.12)); opacity:.25; mix-blend-mode:normal; pointer-events:none; }
html.dark .cyber .card:hover { box-shadow:0 0 0 1px #2b394d,0 0 34px -4px rgba(254,83,187,.45); border-color:#2b394d; }
html:not(.dark) .cyber .card:hover { box-shadow:0 10px 26px -8px rgba(0,0,0,.18); border-color:#c0ccd8; }
/* Corner circuit accents */
.cyber .card:after { content:""; position:absolute; inset:0; pointer-events:none; background:
  linear-gradient(90deg,#08f7fe,transparent) 0 0/42% 2px no-repeat,
  linear-gradient(180deg,#fe53bb,transparent) 0 0/2px 42% no-repeat,
  linear-gradient(90deg,transparent,#f5d300) 100% 100%/42% 2px no-repeat,
  linear-gradient(180deg,transparent,#08f7fe) 100% 100%/2px 42% no-repeat;
  opacity:.55;
  mix-blend-mode:screen;
  transition:opacity .45s;
}
.cyber .card:hover:after { opacity:.85; }
html.dark .cyber .card h3 { color:#feffff; }
html.dark .cyber .card p { color:#91a3ba; }
html:not(.dark) .cyber .card h3 { color:#1e293b; }
html:not(.dark) .cyber .card p { color:#475569; }
html.dark .cyber .card .text-brand-primary { color:#08f7fe !important; }
html.dark .cyber .card .text-brand-accent { color:#fe53bb !important; }
html:not(.dark) .cyber .card .text-brand-primary { color:#0ea5e9 !important; }
html:not(.dark) .cyber .card .text-brand-accent { color:#6366f1 !important; }

/* Divider / underline */
html.dark .cyber .fancy-underline:after { background:linear-gradient(90deg,#08f7fe,#fe53bb,#f5d300); box-shadow:0 0 12px rgba(8,247,254,.55); }
html:not(.dark) .cyber .fancy-underline:after { background:linear-gradient(90deg,#0ea5e9,#6366f1,#f59e0b); box-shadow:0 0 8px rgba(14,165,233,.35); }

/* Contact pills */
html.dark .cyber .contact-pill { background:linear-gradient(135deg,rgba(18,24,38,.75),rgba(13,17,26,.85)); border:1px solid #1e2635; box-shadow:0 0 0 1px #1e2635,0 0 14px -2px rgba(254,83,187,.3); }
html.dark .cyber .contact-pill:hover { background:linear-gradient(135deg,rgba(18,24,38,.9),rgba(13,17,26,.95)); }
html:not(.dark) .cyber .contact-pill { background:linear-gradient(135deg,#ffffff,#f1f5f9); border:1px solid #d0d8e2; box-shadow:0 4px 12px -4px rgba(0,0,0,.12); }
html:not(.dark) .cyber .contact-pill:hover { background:linear-gradient(135deg,#ffffff,#e9eef5); }

/* Footer */
html.dark .cyber footer { background:#05060b; border-top:1px solid #1e2635; }
html:not(.dark) .cyber footer { background:#f1f5f9; border-top:1px solid #d0d8e2; color:#475569; }

/* Terminal grid background for sections */
html.dark .cyber .section-wrapper { background:linear-gradient(180deg,rgba(5,6,11,.35),rgba(5,6,11,.75)), repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 2px,transparent 2px 4px); border-top:1px solid #121826; border-bottom:1px solid #121826; }
html:not(.dark) .cyber .section-wrapper { background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(241,245,249,.9)), linear-gradient(90deg,rgba(14,165,233,.05),rgba(99,102,241,.05)); border-top:1px solid #d0d8e2; border-bottom:1px solid #d0d8e2; }

/* Neon focus */
html.dark .cyber a:focus-visible, html.dark .cyber button:focus-visible { outline:2px solid #08f7fe; outline-offset:2px; box-shadow:0 0 0 2px rgba(8,247,254,.4),0 0 10px -1px #08f7fe; }
html:not(.dark) .cyber a:focus-visible, html:not(.dark) .cyber button:focus-visible { outline:2px solid #6366f1; outline-offset:2px; box-shadow:0 0 0 2px rgba(99,102,241,.35),0 0 10px -1px rgba(99,102,241,.35); }

/* Scrollbar */
html.dark .cyber ::-webkit-scrollbar-track { background:#0d111a; }
html.dark .cyber ::-webkit-scrollbar-thumb { background:#1e2635; }
html.dark .cyber ::-webkit-scrollbar-thumb:hover { background:#2d3b50; }
html:not(.dark) .cyber ::-webkit-scrollbar-track { background:#f1f5f9; }
html:not(.dark) .cyber ::-webkit-scrollbar-thumb { background:#c0ccd8; }
html:not(.dark) .cyber ::-webkit-scrollbar-thumb:hover { background:#b1bcc8; }

/* Glitch effect utility */
.glitch { position:relative; display:inline-block; }
.glitch:before, .glitch:after { content:attr(data-text); position:absolute; left:0; top:0; width:100%; overflow:hidden; clip-path:inset(0 0 0 0); }
.glitch:before { text-shadow:-2px 0 #08f7fe; animation:glitch1 2.8s infinite linear alternate-reverse; }
.glitch:after { text-shadow:2px 0 #fe53bb; animation:glitch2 3s infinite linear alternate-reverse; }
/* Softer variant (reduced offset & frequency) - Cloudflare compatible */
.glitch-soft { position:relative; display:inline-block; }
.glitch-soft:before, .glitch-soft:after { content:attr(data-text); position:absolute; inset:0; }
.glitch-soft:before { color:#08f7fe; opacity:.55; animation:glitchSoft1 4.5s infinite ease-in-out; transform:translate(0,0); }
.glitch-soft:after { color:#fe53bb; opacity:.45; animation:glitchSoft2 5.2s infinite ease-in-out; transform:translate(0,0); }
@keyframes glitchSoft1 { 0%,92%,100% { transform:translate(0,0); opacity:.4;} 10% { transform:translate(1px,-1px); opacity:.55;} 45% { transform:translate(-1px,1px); opacity:.5;} 70% { transform:translate(1px,1px); opacity:.55;} }
@keyframes glitchSoft2 { 0%,90%,100% { transform:translate(0,0); opacity:.35;} 15% { transform:translate(-1px,1px); opacity:.5;} 50% { transform:translate(1px,-1px); opacity:.45;} 75% { transform:translate(-1px,-1px); opacity:.5;} }

/* Minimal inline glitch (for first name) - Cloudflare compatible */
.glitch-inline { 
    position: relative; 
    display: inline-block; 
    animation: glitchPulse 4s infinite ease-in-out;
}
.glitch-inline:before, 
.glitch-inline:after { 
    content: ''; 
    position: absolute; 
    inset: 0; 
    pointer-events: none;
    z-index: -1;
}
@keyframes glitchPulse { 
    0%, 90%, 100% { 
        transform: translate(0,0); 
        text-shadow: 0 0 6px rgba(34,211,238,0.7), 0 0 12px rgba(168,85,247,0.3);
    } 
    3% { 
        transform: translate(0.5px, -0.5px); 
        text-shadow: -1px 0 #08f7fe, 1px 0 #fe53bb, 0 0 8px rgba(34,211,238,0.9);
    } 
    6% { 
        transform: translate(-0.5px, 0.5px); 
        text-shadow: 1px 0 #08f7fe, -1px 0 #fe53bb, 0 0 10px rgba(168,85,247,0.6);
    }
    9% { 
        transform: translate(0.5px, 0.5px); 
        text-shadow: 0 0 6px rgba(34,211,238,0.7), 0 0 12px rgba(168,85,247,0.3);
    }
}
html:not(.dark) .cyber .hero-overlay { background:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,.65)); }

/* Hero name styling refinements */
.hero-name-last, .hero-name-first { position:relative; }
html.dark .hero-name-first { color:#08f7fe; }
html:not(.dark) .hero-name-first { color:#0891b2; }
html.dark .hero-name-last { background:linear-gradient(90deg,#08f7fe,#fe53bb,#f5d300,#08f7fe); background-size:260% 100%; animation:heroLastShift 14s linear infinite; -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 10px rgba(8,247,254,.6),0 0 18px rgba(254,83,187,.35); }
html:not(.dark) .hero-name-last { background:linear-gradient(90deg,#0ea5e9,#6366f1,#f59e0b,#0ea5e9); background-size:180% 100%; animation:heroLastShiftLight 18s linear infinite; -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:none; }
@keyframes heroLastShift { 0%{background-position:0 0;} 50%{background-position:100% 0;} 100%{background-position:0 0;} }
@keyframes heroLastShiftLight { 0%{background-position:0 0;} 60%{background-position:100% 0;} 100%{background-position:0 0;} }

/* Light mode hero readability overrides */
html:not(.dark) #home .hero-title span.block { color:#1e293b !important; text-shadow:none; }
html:not(.dark) #home .hero-title { text-shadow:none; }
html:not(.dark) #home .hero-sub { color:#334155 !important; text-shadow:none; }
html:not(.dark) #home [data-section='hero'] p { color:#475569 !important; }
html:not(.dark) #home .hero-social a { background:rgba(14,165,233,.08); color:#0f172a; }
html:not(.dark) #home .hero-social a:hover { background:rgba(14,165,233,.15); }

/* Light mode contact readability */
html:not(.dark) [data-section='contact'] p { color:#334155 !important; }
html:not(.dark) [data-section='contact'] .contact-pill { color:#1e293b; }
html:not(.dark) [data-section='contact'] .contact-pill i { color:#6366f1; }

/* Light mode readability fixes - consistent across all sections */
/* Darker text colors for better contrast on light backgrounds */
html:not(.dark) [data-section='experience'] .text-slate-500,
html:not(.dark) [data-section='education'] .text-slate-500,
html:not(.dark) [data-section='certifications'] .text-slate-500 { 
  color:#475569 !important; 
}

html:not(.dark) [data-section='experience'] .text-slate-600,
html:not(.dark) [data-section='education'] .text-slate-600,
html:not(.dark) [data-section='skills'] .text-slate-600,
html:not(.dark) [data-section='projects'] .text-slate-600 { 
  color:#334155 !important; 
}

html:not(.dark) [data-section='education'] .text-slate-400 { 
  color:#64748b !important; 
}

html:not(.dark) [data-section='skills'] .text-slate-700 { 
  color:#1e293b !important; 
}

/* Light blue backgrounds for icons - better contrast with blue icons */
html:not(.dark) [data-section='experience'] .bg-slate-100,
html:not(.dark) [data-section='education'] .bg-slate-100,
html:not(.dark) [data-section='certifications'] .bg-slate-100,
html:not(.dark) [data-section='skills'] .bg-slate-100 { 
  background-color:#dbeafe !important; 
}

/* Darker blue brand color for better readability in light mode */
html:not(.dark) [data-section='education'] .text-brand-primary,
html:not(.dark) [data-section='certifications'] .text-brand-primary,
html:not(.dark) [data-section='skills'] .text-brand-primary { 
  color:#0369a1 !important; 
}

/* Typewriter caret */
.typing-caret { width:10px; height:1.15em; margin-left:2px; background:linear-gradient(180deg,#08f7fe,#fe53bb); box-shadow:0 0 6px #08f7fe,0 0 12px #fe53bb; display:inline-block; animation:caretBlink 1s steps(2,start) infinite; align-self:baseline; }
@keyframes caretBlink { 0%,40% { opacity:1;} 50%,90% { opacity:0;} 100% { opacity:1;} }
.hero-type-part { min-width:0.25ch; }
@keyframes glitch1 { 0%{clip-path:inset(0 0 90% 0);} 10%{clip-path:inset(0 0 0 0);} 20%{clip-path:inset(85% 0 0 0);} 30%{clip-path:inset(0 0 0 0);} 40%{clip-path:inset(0 0 80% 0);} 50%{clip-path:inset(0 0 0 0);} 60%{clip-path:inset(70% 0 0 0);} 70%{clip-path:inset(0 0 0 0);} 80%{clip-path:inset(0 0 40% 0);} 90%{clip-path:inset(0 0 0 0);} 100%{clip-path:inset(0 0 0 0);} }
@keyframes glitch2 { 0%{clip-path:inset(90% 0 0 0);} 10%{clip-path:inset(0 0 0 0);} 20%{clip-path:inset(0 0 85% 0);} 30%{clip-path:inset(0 0 0 0);} 40%{clip-path:inset(80% 0 0 0);} 50%{clip-path:inset(0 0 0 0);} 60%{clip-path:inset(0 0 70% 0);} 70%{clip-path:inset(0 0 0 0);} 80%{clip-path:inset(40% 0 0 0);} 90%{clip-path:inset(0 0 0 0);} 100%{clip-path:inset(0 0 0 0);} }

/* Subtle matrix rain background (optional future) placeholder class */
.matrix-rain { background:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 2px,transparent 2px 4px); }

/* Gradient hero background */
.gradient-hero { 
  background: linear-gradient(135deg,#1e3a8a 0%,#2f3f7a 55%,#1e293b 100%);
}

/* Hero overlay for better contrast */
.hero-overlay { position:absolute; inset:0; background:radial-gradient(circle at 55% 40%,rgba(255,255,255,.08),transparent 60%),linear-gradient(to bottom,rgba(15,23,42,.55),rgba(15,23,42,.75)); mix-blend-mode:normal; }
.hero-title { line-height:1.05; text-shadow:0 4px 14px rgba(0,0,0,.4),0 0 2px rgba(0,0,0,.55); }
.hero-sub { text-shadow:0 2px 8px rgba(0,0,0,.35); }

/* Section wrappers */
.section-wrapper { padding-top:6rem; padding-bottom:6rem; scroll-margin-top:4rem; position:relative; }
.section-inner { max-width:80rem; margin-left:auto; margin-right:auto; padding-left:1.5rem; padding-right:1.5rem; }

/* Glass / panel styles */
.glass { background:rgba(255,255,255,.65); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%); box-shadow:0 4px 24px -4px rgba(0,0,0,.18); }
.dark .glass { background:rgba(30,41,59,.6); box-shadow:0 4px 28px -4px rgba(0,0,0,.6); }

/* Navigation link */
.nav-link { position:relative; padding:4px 0; }
.nav-link:after { content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:linear-gradient(90deg,#3498db,#f39c12); transition:width .35s; border-radius:2px; }
.nav-link:hover:after, .nav-link:focus-visible:after { width:100%; }

/* Gradient heading text */
.gradient-text { background:linear-gradient(90deg,#f59e0b 0%,#f59e0b 45%,#fbbf24 55%,#f59e0b 100%); background-clip:text; -webkit-background-clip:text; color:transparent; text-shadow:0 3px 10px rgba(0,0,0,.35),0 0 2px rgba(0,0,0,.55); }
/* Remove previous shifting animation for accessibility */
@keyframes gradientShift { from {opacity:1;} to {opacity:1;} }

/* Card gradient alt */
.card-alt { background:linear-gradient(145deg,#f8fafc,#f1f5f9); }

/* Skill / project card refined look */
.card { border:1px solid rgba(148,163,184,.25); border-radius:1rem; background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(248,250,252,.75)); box-shadow:0 4px 20px -6px rgba(15,23,42,.25); }
.card:hover { border-color:rgba(148,163,184,.45); }
.dark .card { background:linear-gradient(145deg,rgba(30,41,59,.9),rgba(15,23,42,.85)); border-color:rgba(71,85,105,.5); }

/* Contact pills */
.contact-pill { border:1px solid rgba(255,255,255,.25); }
.contact-pill:hover { border-color:rgba(255,255,255,.5); }

/* Footer */
footer { backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }

/* Toggle button */
.theme-toggle { width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:9999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); cursor:pointer; transition:background .3s,border-color .3s; }
.theme-toggle:hover { background:rgba(255,255,255,.18); }
.dark .theme-toggle { background:rgba(255,255,255,.08); }
.dark .theme-toggle:hover { background:rgba(255,255,255,.15); }

/* Focus styles */
a:focus-visible, button:focus-visible { outline:2px solid #f59e0b; outline-offset:2px; border-radius:4px; }

/* Dark mode base */
.dark { color-scheme:dark; }
.dark body, body.dark { background:#0f172a; color:#e2e8f0; }
body { color:#334155; }
p { color:#334155; }
h1,h2,h3,h4,h5,h6 { color:#1e293b; }
body:not(.dark) .fancy-underline:after { background: linear-gradient(90deg,#2563eb,#f59e0b); }
body:not(.dark) .card { color:#1e293b; }
body:not(.dark) .card p { color:#475569; }
.dark .gradient-hero { background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#312e81 100%); }
.dark .fancy-underline:after { background:linear-gradient(90deg,#6366f1,#f59e0b); }
/* Dark mode readability tweaks */
.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6 { color:#f1f5f9; }
.dark p { color:#cbd5e1; }
.dark .section-wrapper p { color:#cbd5e1; }
.dark .card { color:#e2e8f0; }
.dark .card p { color:#cbd5e1; }
.dark a { color:#93c5fd; }
.dark a:hover { color:#bfdbfe; }
.dark .nav-link { color:#e2e8f0; }
.dark .nav-link:after { background:linear-gradient(90deg,#6366f1,#fbbf24); }
.dark .gradient-text { text-shadow:0 4px 18px rgba(0,0,0,.7),0 0 6px rgba(0,0,0,.55); }

/* Improve readability for paragraphs */
p { line-height:1.65; }

/* Hero social icons subtle effect */
.hero-social a { box-shadow:0 0 0 0 rgba(255,255,255,.35); transition:box-shadow .4s, transform .35s; }
.hero-social a:hover { box-shadow:0 0 0 6px rgba(255,255,255,.12); transform:translateY(-4px); }

/* Text selection */
::selection { background:#f59e0b; color:#1e293b; }

/* High contrast mode removed – legacy selectors pruned */

/* Fancy underline utility */
.fancy-underline { 
  position: relative;
}
.fancy-underline:after { 
  content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%);
  width: 60%; height: 3px; border-radius: 9999px; background: linear-gradient(90deg,#3498db,#f39c12);
}

/* Card hover elevate */
.hover-elevate { 
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s; 
}
.hover-elevate:hover { 
  transform: translateY(-6px); box-shadow: 0 12px 30px -8px rgba(0,0,0,.25);
}

/* Fade/slide in animation */
@keyframes fadeUp { 
  from { opacity:0; transform: translateY(24px);} 
  to { opacity:1; transform: translateY(0);} 
}
.animate-fadeUp { animation: fadeUp .8s ease forwards; }

/* Stagger container attribute styling handled via JS adding delay classes */

/* Scrollbar (webkit) */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #0f172a; }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: #475569; }

/* Dark mode support (optional future) */
@media (prefers-color-scheme: dark) {
  body.dark-auto { background-color:#0f172a; color:#e2e8f0; }
}

/* ===================== Global cyber overlays & noise ===================== */
html.dark .cyber:before { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 18% 32%,rgba(8,247,254,.05),transparent 60%),radial-gradient(circle at 78% 68%,rgba(254,83,187,.05),transparent 65%); mix-blend-mode:overlay; z-index:0; }
html.dark .cyber:after { content:""; position:fixed; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 2px,transparent 2px 4px); mix-blend-mode:overlay; opacity:.35; animation:noisePulse 9s linear infinite; z-index:0; }
/* Light mode removes heavy overlays for clarity */
html:not(.dark) .cyber:before, html:not(.dark) .cyber:after { content:none; }
@keyframes noisePulse { 0%,100% { opacity:.32; } 40% { opacity:.4; } 60% { opacity:.28; } }

/* Ensure stacking context for main content above overlays */
body.cyber > *:not(script) { position:relative; z-index:1; }
