/* THEME VARS */
:root{
	--phosphor: #ffb300; /* Accent */
	--bg: #383838; /* Page bg */
  
	/* Synthwave grid */
	--grid-color: #b8b8b8;
	--grid-glow: rgba(184,184,184,0.45);
	--grid-size: 60px;
	--grid-opacity: 0.15;
	--grid-tilt: 75deg;
	--perspective: 700px;
  
	--container: min(1120px, 94vw);
  }
  
  /* BASE */
  html,body{ height:100%; }
  html{ scroll-behavior:smooth; }
  *{ box-sizing:border-box; }
  /* ::-webkit-scrollbar{ display:none } */
  
  body{
	margin:0; padding:0; height:100%;
	background:var(--bg);
	color:var(--phosphor);
	font-family:'VT323', Courier, monospace;
	font-size:24px;
	letter-spacing:.02em;
  }
  
  a{ color:#fff; text-decoration:none; }
  a:hover{ color:red; }
  
  .sr-only{
	position:absolute; width:1px; height:1px; padding:0; margin:-1px;
	overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  
  /* LAYERS (SCANLINES AND GRID) */
  /* scanlines follow scroll */
  .overlay{
	position:fixed; inset:0; pointer-events:none; z-index:5;
	background:repeating-linear-gradient(
	  to bottom,
	  transparent 0 2px,
	  rgba(0,0,0,0.9) 2px 3px
	);
	mix-blend-mode:normal;
  }
  
  /* 3D grid above content */
  .synth-bg{ position:fixed; inset:0; z-index:6; pointer-events:none; overflow:hidden; }
  .synth-grid{
	position:absolute; left:50%; bottom:-8vh; width:200vw; height:120vh;
	transform:translateX(-50%) perspective(var(--perspective)) rotateX(var(--grid-tilt));
	background-image:
	  repeating-linear-gradient(to right, transparent 0 calc(var(--grid-size) - 1px), var(--grid-color) calc(var(--grid-size) - 1px) var(--grid-size)),
	  repeating-linear-gradient(to top,   transparent 0 calc(var(--grid-size) - 1px), var(--grid-color) calc(var(--grid-size) - 1px) var(--grid-size));
	opacity:var(--grid-opacity);
	filter:drop-shadow(0 -2px 6px var(--grid-glow)) drop-shadow(0 -10px 20px var(--grid-glow));
	-webkit-mask-image:linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 18%, rgba(0,0,0,1) 68%, rgba(0,0,0,0) 100%);
			mask-image:linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 18%, rgba(0,0,0,1) 68%, rgba(0,0,0,0) 100%);
	mix-blend-mode:normal;
  }
  
  /* LAYOUT CONTAINERS */
  .wrapper{ position:relative; }
  .content{ width:var(--container); margin:28px auto 80px; padding:32px 24px; }
  
  video, .hero-reel video, .intro-reel video,
  .links a, .theme-nav a, a.button, input[type=submit], button, .chip,
  a[href^="mailto"], a.elevate{
	position:relative; z-index:7;
  }
  
  /* HERO */
  .hero{
	display:grid; grid-template-columns:1.05fr 1.2fr; gap:24px; align-items:center;
  }
  .hero h1{ margin:0 0 6px; font-size:clamp(32px, 6.5vw, 62px); }
  .tagline{ margin:0 0 14px; opacity:.9; font-size:1.05em; }
  
  .rule{
	margin:0 0 12px;
	color:var(--phosphor);
	opacity:.9;
	white-space:nowrap;
	letter-spacing:.02em;
  }
  
  /* Link chips and inside icons */
  .links{ display:flex; flex-wrap:wrap; gap:10px; }
  .chip{
	display:inline-block;
	padding:8px 12px;
	border:1px dashed var(--phosphor);
	border-radius:999px;
	opacity:.9;
	position:relative; z-index:7;
  }
  .chip:hover{ background:var(--phosphor); color:#000; }
  
  .chip-wrap{ position:relative; display:inline-flex; align-items:center; }
  .chip{ padding-left:38px; }
  .chip-icon{
	position:absolute; left:12px; width:20px; height:20px; object-fit:contain;
	pointer-events:none; z-index:4;
	transition:transform .16s ease, filter .16s ease, opacity .16s ease, z-index .01s linear;
	filter:none; opacity:1; mix-blend-mode:normal;
  }
  .chip-wrap:hover .chip-icon,
  .chip-wrap:has(.chip:focus-visible) .chip-icon{
	z-index:8; transform:scale(1.3); filter:none; opacity:1;
  }
  
  .chip-icon{
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }
  

  
  /* THEME NAV */
  .theme-nav{ margin:22px 0 36px; }
  .theme-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:32px; flex-wrap:wrap; }
  .theme-nav a{
	color:#fff; text-decoration:none; position:relative;
	padding:6px 16px; font-size:1.25em; line-height:1;
  }
  .theme-nav a:hover{ color:red; }
  .theme-nav a::before,
  .theme-nav a::after{ color:var(--phosphor); }
  .theme-nav a::before{ content:"{"; margin-right:6px; }
  .theme-nav a::after{  content:"}"; margin-left:6px; }
  
  /* SECTIONS */
  section{ margin-top:42px; }
  h2{ font-size:clamp(24px, 4.4vw, 34px); margin:0 0 12px; }
  .about-body{ max-width:70ch; line-height:1.7; font-size:1.05em; }
  .muted{ color:rgba(255,255,255,0.85); }
  
  /* Headings glow */
  .content a,
  .content h1,
  .content h2,
  .content h3,
  .content h4,
  .content h5,
  .content h6{
	text-shadow:
	  0 0 5px rgba(255,179,0,0.30),
	  0 0 8px rgba(255,179,0,0.15);
  }
  
  
  /* PROJECTS CARDS */
  .projects-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
	gap:24px;
	margin-top:14px;
  }
  
  /* Card base */
  .project-card{
    position:relative;
    display:block;
    padding:14px 14px 16px;
    color:#fff;
    text-decoration:none;
  
    background:rgba(0,0,0,0.54);
    border-radius:12px;
  }
  
  
  
  /* Dashed border above grid */
  .project-card::before{
	content:""; position:absolute; inset:0;
	border:1px dashed var(--phosphor); border-radius:12px; pointer-events:none;
	z-index:8; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  /* Subtle moving sweep inside the card */
  .project-card::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:12px;
    background:linear-gradient(
      to bottom,
      transparent 0%,
      rgba(255,255,255,0.05) 48%,
      transparent 52%
    );
    mix-blend-mode:screen;
    opacity:0.6;
    animation: projectTitleSweep 6s linear infinite;
    pointer-events:none;
    z-index:1;
  }
  

  /* Video wrapper scales on hover */
  .thumb{
	margin:0 0 10px 0; border-radius:10px; overflow:hidden;
	transform-origin:center; transition:transform .18s ease, box-shadow .18s ease;
	position:relative; z-index:7; will-change:transform;
  }
  
  /* Video above grid */
  .proj-video{
	display:block; width:100%; height:auto; background:#000; object-fit:cover;
	position:relative; z-index:8;
  }
  
  /* Scale video layer + border */
.project-card:hover .thumb{
  transform:scale(1.03);
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}

.project-card:hover::before{
  transform:scale(1.03);
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}

  
  /* Titles/captions */
  .proj-title{ margin:6px 0 4px; font-size:1.05em; letter-spacing:.02em; }
  .proj-caption{ margin:0 0 8px; color:rgba(255,255,255,0.9); font-size:.92em; }
  
  /* Tech stack */
  .stack{ display:flex; flex-wrap:wrap; gap:8px; }
  
  /* Badge text under grid */
  .badge{
	position:relative; display:inline-block;
	padding:4px 10px; border-radius:999px; font-size:.8em;
	color:rgba(255,255,255,0.95); background:rgba(0,0,0,0.25);
  }
  .badge::before{
	content:""; position:absolute; inset:0;
	border:1px dashed var(--phosphor); border-radius:999px; pointer-events:none;
	z-index:7;
  }
  
  /* Keyboard focus */
  .project-card:focus-visible{ outline:2px dashed var(--phosphor); outline-offset:3px; }
  
  /* RESPONSIVE */
  @media (max-width:900px){
	.hero{ grid-template-columns:1fr; gap:18px; }
  }
  

.projects-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  margin-top:16px;
  margin-bottom:14px;
  font-size:1em;
}

.projects-sort label{
  font-size:1em;
}

.projects-sort select{
  background:rgba(0,0,0,0.4);
  border:1px dashed var(--phosphor);
  color:#fff;
  font-family:'VT323', monospace;
  padding:6px 12px;
  font-size:0.75em;
  line-height:1.2;
}

.projects-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.filter-pill{
  background:rgba(0,0,0,0.35);
  border:1px dashed var(--phosphor);
  color:#fff;
  font-family:'VT323', monospace;
  padding:6px 14px;
  font-size:0.7em;
  cursor:pointer;
}

.filter-pill.is-active{
  background:var(--phosphor);
  color:#000;
}

.projects-sort select,
.filter-pill{
  position: relative;
  z-index: 7;
}

/* Toolbar container itself stays in normal flow*/
.projects-toolbar{
  position: static;
  z-index: auto;
}


/* Hover/focus states for controls */
.projects-sort select:hover,
.projects-sort select:focus{
  color: red;
}

/* Filter pills hover*/
.filter-pill:hover,
.filter-pill:focus-visible{
  color: red;
  outline: none;
}

@keyframes projectTitleSweep{
  0%{ transform:translateY(-40%); }
  100%{ transform:translateY(40%); }
}
