/* =============================================================
   theme-zoomer.css — Cyberpunk / hacker aesthetic
   Font: Unbounded (headings) + JetBrains Mono (body/tech)
   Palette: Dark, neon pink, electric purple, acid green
   ============================================================= */

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

/* ── CSS Variables ──────────────────────────────────────────── */
.theme-zoomer {
  --color-bg:         #0a0a0f;
  --color-surface:    #0f0f1a;
  --color-surface2:   #13131f;
  --color-border:     rgba(139,92,246,0.25);
  --color-text:       #e2e8f0;
  --color-text-muted: #94a3b8;
  --color-pink:       #f472b6;    /* primary */
  --color-purple:     #a78bfa;    /* secondary */
  --color-green:      #34d399;    /* accent */
  --color-cyan:       #22d3ee;
  --color-tag-bg:     rgba(167,139,250,0.1);
  --color-tag-text:   #a78bfa;
  --color-tag-border: rgba(167,139,250,0.3);
  --color-glow-pink:  rgba(244,114,182,0.3);
  --color-glow-green: rgba(52,211,153,0.3);
  --color-toggle-bg:  linear-gradient(135deg, #f472b6, #a78bfa);
  --color-toggle-text: #ffffff;

  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  background-color: var(--color-bg);
  color: var(--color-text);
}

/* Scanline overlay for CRT effect */
.theme-zoomer body::before,
.theme-zoomer::before {
  content: "";
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.04) 2px,
    rgba(0,0,0,0.04) 4px
  );
  pointer-events: none;
  z-index: 9998;
}

/* ── Theme toggle ───────────────────────────────────────────── */
.theme-zoomer .theme-toggle {
  background: linear-gradient(135deg, #f472b6, #a78bfa);
  color: #ffffff;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  box-shadow: 0 0 20px var(--color-glow-pink);
  animation: pulse-glow 3s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 15px var(--color-glow-pink); }
  50%       { box-shadow: 0 0 30px var(--color-glow-pink), 0 0 60px rgba(167,139,250,0.2); }
}

/* ── Header ─────────────────────────────────────────────────── */
.theme-zoomer .section-header {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  padding-top: 5rem;
  position: relative;
  overflow: hidden;
}

/* Animated grid background */
.theme-zoomer .section-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(167,139,250,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(167,139,250,0.06) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

.theme-zoomer .section-header::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  height: 300px;
  background: radial-gradient(ellipse at center, rgba(244,114,182,0.08) 0%, transparent 70%);
  pointer-events: none;
}

.theme-zoomer .header-avatar {
  border: 2px solid var(--color-pink);
  box-shadow: 0 0 20px var(--color-glow-pink), 0 0 40px rgba(167,139,250,0.15);
  position: relative;
  z-index: 1;
}

/* Add a subtle duotone/glitch tint to photo in zoomer theme */
.theme-zoomer .avatar-photo {
  filter: saturate(1.1) contrast(1.05);
  transition: filter 0.3s ease;
}
.theme-zoomer .header-avatar:hover .avatar-photo {
  filter: saturate(1.3) hue-rotate(10deg) contrast(1.1);
}

.theme-zoomer .name {
  font-family: 'Unbounded', sans-serif;
  background: linear-gradient(135deg, #f472b6 0%, #a78bfa 50%, #34d399 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  position: relative;
  z-index: 1;
}

.theme-zoomer .title {
  color: var(--color-green);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  position: relative;
  z-index: 1;
}

/* typing cursor effect */
.theme-zoomer .title::after {
  content: "_";
  animation: blink-cursor 1s step-end infinite;
  color: var(--color-green);
}
@keyframes blink-cursor {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

.theme-zoomer .tagline     { color: var(--color-text-muted); font-size: 0.8rem; z-index: 1; position: relative; }
.theme-zoomer .contact-link { color: var(--color-purple); font-size: 0.78rem; }
.theme-zoomer .contact-link:hover { color: var(--color-pink); opacity: 1; }

/* ── Sections ───────────────────────────────────────────────── */
.theme-zoomer .section-summary,
.theme-zoomer .section-skills,
.theme-zoomer .section-contact { background: var(--color-surface); }

.theme-zoomer .section-experience,
.theme-zoomer .section-education,
.theme-zoomer .section-projects { background: var(--color-bg); }

/* ── Section titles ─────────────────────────────────────────── */
.theme-zoomer .section-title {
  font-family: 'Unbounded', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-pink);
  text-shadow: 0 0 20px var(--color-glow-pink);
}
.theme-zoomer .section-title svg { stroke: var(--color-pink); filter: drop-shadow(0 0 6px var(--color-glow-pink)); }

/* ── Summary — shared box styles ────────────────────────────── */
.theme-zoomer .summary-text {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.82rem;
  line-height: 1.8;
  color: var(--color-text);
  background: var(--color-surface2);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-green);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  min-height: 3.5rem;
}

/* Static ::before only when NOT in terminal-shell mode */
.theme-zoomer .summary-text:not(.term-shell)::before {
  content: "$ cat summary.txt";
  display: block;
  color: var(--color-green);
  font-size: 0.75rem;
  margin-bottom: 0.75rem;
  opacity: 0.7;
}

/* ── Terminal shell — clickable heading ─────────────────────── */
.theme-zoomer .term-trigger {
  cursor: pointer;
  user-select: none;
  transition: color 0.15s, text-shadow 0.15s;
}
.theme-zoomer .term-trigger:hover {
  color: var(--color-green);
  text-shadow: 0 0 20px rgba(52, 211, 153, 0.4);
}
.theme-zoomer .term-trigger:hover svg {
  stroke: var(--color-green);
  filter: drop-shadow(0 0 6px rgba(52, 211, 153, 0.5));
}
.theme-zoomer .term-trigger::after {
  content: " [click to expand]";
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--color-green);
  opacity: 0.5;
  text-shadow: none;
}
.theme-zoomer .term-trigger[aria-expanded="true"]::after {
  content: " [click to collapse]";
}

/* ── Terminal hint (idle / collapsed state) ─────────────────── */
.theme-zoomer .term-hint {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--color-text-muted);
}
.theme-zoomer .term-hint-label {
  font-size: 0.75rem;
  opacity: 0.55;
}

/* ── Terminal lines ─────────────────────────────────────────── */
.theme-zoomer .term-line {
  line-height: 1.8;
  color: var(--color-text);
}

/* ── Prompt and typed command ───────────────────────────────── */
.theme-zoomer .term-prompt { color: var(--color-green); font-weight: 700; }
.theme-zoomer .term-cmd    { color: var(--color-cyan); }

/* ── Output text ────────────────────────────────────────────── */
.theme-zoomer .term-output {
  display: inline;
  line-height: 1.8;
  color: var(--color-text);
  white-space: pre-wrap;
}

/* ── Blinking cursors ───────────────────────────────────────── */
.theme-zoomer .term-cursor,
.theme-zoomer .term-cursor-end {
  color: var(--color-green);
  animation: blink-cursor 1s step-end infinite;
  margin-left: 1px;
}

/* ── Experience ─────────────────────────────────────────────── */
.theme-zoomer .experience-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-purple);
  border-radius: 8px;
  padding: 1.5rem;
  position: relative;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.theme-zoomer .experience-item:hover {
  border-left-color: var(--color-pink);
  box-shadow: 0 0 30px rgba(244,114,182,0.1), 0 0 60px rgba(167,139,250,0.05);
}

/* Achievement badges for T-Mobile — floated above the card */
.theme-zoomer .experience-item[data-id="tmobile"] {
  margin-top: 3rem;
}

/* 2019 National Award — top right above the card */
.theme-zoomer .experience-item[data-id="tmobile"]::after {
  content: "🏆 2019 NATIONAL AWARD";
  position: absolute;
  top: -2.2rem;
  right: 0;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  background: linear-gradient(135deg, rgba(244,114,182,0.15), rgba(167,139,250,0.15));
  border: 1px solid rgba(244,114,182,0.4);
  color: var(--color-pink);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
}

/* 2013 PEAK Award — top left above the card */
.theme-zoomer .experience-item[data-id="tmobile"]::before {
  content: "⭐ 2013 PEAK AWARD";
  position: absolute;
  top: -2.2rem;
  left: 0;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  background: linear-gradient(135deg, rgba(52,211,153,0.15), rgba(34,211,238,0.15));
  border: 1px solid rgba(52,211,153,0.4);
  color: var(--color-green);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
}

.theme-zoomer .experience-company {
  font-family: 'Unbounded', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-purple);
}
.theme-zoomer .experience-title {
  color: var(--color-text);
  font-size: 0.85rem;
  margin-top: 0.2rem;
}
.theme-zoomer .experience-meta,
.theme-zoomer .experience-dates { color: var(--color-text-muted); font-size: 0.72rem; }

.theme-zoomer .experience-highlights li { font-size: 0.83rem; color: var(--color-text); }
.theme-zoomer .experience-highlights li::before { color: var(--color-green); content: "▶"; }

/* ── Skills — neon tags ─────────────────────────────────────── */
.theme-zoomer .skills-category-title {
  font-family: 'Unbounded', sans-serif;
  font-size: 0.62rem;
  color: var(--color-green);
  letter-spacing: 0.12em;
}

.theme-zoomer .skill-tag {
  background: var(--color-tag-bg);
  color: var(--color-tag-text);
  border: 1px solid var(--color-tag-border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.72rem;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.theme-zoomer .skill-tag:hover {
  background: rgba(167,139,250,0.2);
  color: #ffffff;
  box-shadow: 0 0 12px var(--color-glow-pink);
}

/* ── Education ──────────────────────────────────────────────── */
.theme-zoomer .education-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
}
.theme-zoomer .education-degree {
  font-family: 'Unbounded', sans-serif;
  font-size: 0.85rem;
  color: var(--color-text);
}
.theme-zoomer .education-school { color: var(--color-purple); }
.theme-zoomer .education-honors {
  color: var(--color-green);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
}
.theme-zoomer .education-dates { color: var(--color-text-muted); }

/* ── Projects — glassmorphism cards ─────────────────────────── */
.theme-zoomer .project-card {
  background: rgba(15,15,26,0.8);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  backdrop-filter: blur(12px);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.theme-zoomer .project-card:hover {
  border-color: rgba(244,114,182,0.4);
  box-shadow: 0 0 30px rgba(244,114,182,0.1);
}
.theme-zoomer .project-name { color: var(--color-cyan); font-family: 'Unbounded', sans-serif; font-size: 0.85rem; }
.theme-zoomer .project-desc { color: var(--color-text-muted); }
.theme-zoomer .project-tech-tag {
  background: rgba(34,211,238,0.1);
  color: var(--color-cyan);
  border: 1px solid rgba(34,211,238,0.25);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
}
.theme-zoomer .project-link { color: var(--color-green); }

/* ── Contact ─────────────────────────────────────────────────── */
.theme-zoomer .section-contact { border-top: 1px solid var(--color-border); }
.theme-zoomer .contact-cta-text { color: var(--color-text-muted); }

.theme-zoomer .btn-primary {
  background: linear-gradient(135deg, #f472b6, #a78bfa);
  color: #fff;
  box-shadow: 0 0 20px var(--color-glow-pink);
}
.theme-zoomer .btn-primary:hover { box-shadow: 0 0 30px var(--color-glow-pink), 0 6px 20px rgba(0,0,0,0.3); }

.theme-zoomer .btn-outline {
  border: 2px solid var(--color-purple);
  color: var(--color-purple);
}
.theme-zoomer .btn-outline:hover {
  background: rgba(167,139,250,0.15);
  box-shadow: 0 0 20px rgba(167,139,250,0.2);
}

.theme-zoomer .footer-note { color: var(--color-text-muted); }
.theme-zoomer .footer-note a { color: var(--color-purple); }

/* ── Zoomer animations ──────────────────────────────────────── */
.theme-zoomer .animate-in {
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.theme-zoomer .animate-in.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Konami code easter egg styles */
.konami-active .section-header {
  animation: rainbow-shift 2s linear infinite;
}
@keyframes rainbow-shift {
  0%   { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

/* "Resume.exe loaded" notification */
.boot-toast {
  position: fixed;
  bottom: 5rem;
  left: 1.5rem;
  background: var(--color-surface);
  border: 1px solid var(--color-green);
  border-left: 3px solid var(--color-green);
  color: var(--color-green);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.72rem;
  padding: 0.6rem 1rem;
  border-radius: 6px;
  z-index: 500;
  box-shadow: 0 0 20px var(--color-glow-green);
  animation: toast-in 0.4s ease, toast-out 0.4s ease 3.5s forwards;
}
@keyframes toast-in {
  from { opacity: 0; transform: translateX(-20px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes toast-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(-20px); }
}

/* Glitch hover on name */
.theme-zoomer .name:hover {
  animation: glitch 0.5s ease;
}
@keyframes glitch {
  0%, 100% { clip-path: none; transform: translate(0); }
  20%  { clip-path: polygon(0 20%, 100% 20%, 100% 40%, 0 40%); transform: translate(-3px, 0); }
  40%  { clip-path: polygon(0 60%, 100% 60%, 100% 80%, 0 80%); transform: translate(3px, 0); }
  60%  { clip-path: polygon(0 0%, 100% 0%, 100% 20%, 0 20%); transform: translate(-2px, 0); }
  80%  { clip-path: polygon(0 80%, 100% 80%, 100% 100%, 0 100%); transform: translate(2px, 0); }
}

/* ── Doge panel (absolute, left of skills section container) ─── */
.theme-zoomer .section-skills .container {
  position: relative;
  overflow: visible;
}
.zoomer-doge {
  position: absolute;
  left: -202px;  /* 148px wide + ~54px gap from container left edge */
  top: 0;
  z-index: 10;
  width: 148px;
  transform: rotate(-8deg);
}

.zoomer-doge .doge-img {
  width: 100%;
  border-radius: 12px;
  border: 2px solid var(--color-purple);
  box-shadow: 0 0 20px rgba(167,139,250,0.35), 0 0 40px rgba(167,139,250,0.15);
  display: block;
}

/* Comic-Sans speech bubble words floating around the image */
.doge-speech {
  position: absolute;
  font-family: 'Comic Sans MS', 'Chalkboard SE', cursive;
  font-weight: bold;
  font-size: 0.72rem;
  line-height: 1.2;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.8);
  white-space: nowrap;
  animation: doge-float 3s ease-in-out infinite alternate;
}
/* Stagger the floats so they don't all move together */
.doge-speech:nth-child(1) { animation-delay: 0.0s; }
.doge-speech:nth-child(2) { animation-delay: 0.4s; }
.doge-speech:nth-child(3) { animation-delay: 0.8s; }
.doge-speech:nth-child(4) { animation-delay: 1.2s; }
.doge-speech:nth-child(5) { animation-delay: 1.6s; }
.doge-speech:nth-child(6) { animation-delay: 2.0s; }

@keyframes doge-float {
  from { transform: translateY(0)   rotate(var(--r, -4deg)); }
  to   { transform: translateY(-5px) rotate(var(--r, -4deg)); }
}

/* Individual positions & colors — bubbles extend RIGHT toward content */
.doge-speech:nth-child(1) {
  top: -22px; left: 4px;
  color: var(--color-pink);
  --r: -5deg;
}
.doge-speech:nth-child(2) {
  top: 10px; right: -74px;
  color: var(--color-green);
  --r: 4deg;
}
.doge-speech:nth-child(3) {
  top: 44px; right: -70px;
  color: var(--color-cyan);
  --r: -6deg;
}
.doge-speech:nth-child(4) {
  top: 80px; right: -66px;
  color: var(--color-purple);
  --r: 5deg;
}
.doge-speech:nth-child(5) {
  bottom: 36px; right: -60px;
  color: #fbbf24;
  --r: -4deg;
}
.doge-speech:nth-child(6) {
  bottom: -4px; left: 4px;
  color: var(--color-pink);
  font-size: 0.85rem;
  --r: 3deg;
}

/* Hide on narrow viewports — no room */
@media (max-width: 1100px) {
  .zoomer-doge { display: none; }
}

/* Confetti (injected by JS for Konami easter egg) */
.confetti-piece {
  position: fixed;
  width: 8px;
  height: 8px;
  top: -20px;
  border-radius: 2px;
  animation: confetti-fall linear forwards;
  pointer-events: none;
  z-index: 9999;
}
@keyframes confetti-fall {
  to { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
