:root{
  --bg:#070A10;
  --fg:#EAF0FF;
  --mut:#A7B3D6;
  --card:rgba(255,255,255,.06);
  --card2:rgba(255,255,255,.08);
  --stroke:rgba(255,255,255,.12);
  --shadow:0 30px 80px rgba(0,0,0,.55);
  --a:#7C3AED; /* violet */
  --b:#22D3EE; /* cyan */
  --c:#F472B6; /* pink */
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--fg);
  background: radial-gradient(1200px 700px at 20% 0%, rgba(124,58,237,.22), transparent 55%),
              radial-gradient(1000px 600px at 90% 20%, rgba(34,211,238,.18), transparent 55%),
              radial-gradient(900px 550px at 50% 90%, rgba(244,114,182,.12), transparent 60%),
              var(--bg);
  overflow-x:hidden;
}

.noise{
  pointer-events:none;
  position:fixed; inset:0;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="140" height="140"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/></filter><rect width="140" height="140" filter="url(%23n)" opacity="0.22"/></svg>');
  mix-blend-mode:overlay;
  opacity:.25;
  z-index:1;
}

.bg{position:fixed; inset:0; z-index:0; pointer-events:none}
.blob{position:absolute; width:520px; height:520px; filter:blur(28px); opacity:.55; border-radius:999px}
.b1{left:-140px; top:-140px; background:radial-gradient(circle at 30% 30%, rgba(124,58,237,.9), rgba(34,211,238,.25) 60%, transparent 70%)}
.b2{right:-180px; bottom:-200px; background:radial-gradient(circle at 60% 40%, rgba(244,114,182,.7), rgba(34,211,238,.18) 55%, transparent 70%)}
.grid{
  position:absolute; inset:0;
  background-image: linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px),
                    linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(800px 500px at 50% 20%, black 30%, transparent 70%);
  opacity:.35;
}

/* Header */
.header{
  position:sticky; top:0; z-index:10;
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  min-height:64px;
  padding:14px 18px;
  background:rgba(7,10,16,.55);
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.headerInner{
  grid-column:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.brand{display:flex; gap:12px; align-items:center; text-decoration:none; color:inherit}
.mark{width:56px; height:40px; display:grid; place-items:center}
.mark svg{width:56px; height:40px}
.brandText{display:flex; flex-direction:column; line-height:1.05}
.brandName{font-family:"Space Grotesk", Inter, sans-serif; font-weight:700; letter-spacing:.3px}
.brandRole{font-size:12px; color:var(--mut)}

.nav{display:flex; gap:18px; align-items:center}
.nav a{color:var(--mut); text-decoration:none; font-weight:600; font-size:14px}
.nav a:hover{color:var(--fg)}
.pill{padding:10px 14px; border:1px solid rgba(255,255,255,.16); border-radius:999px; color:var(--fg)!important; background:rgba(255,255,255,.06)}
.pill.ghost{background:transparent; border:1px solid rgba(255,255,255,.14); color:rgba(234,240,255,.92)!important}

.navBtn{grid-column:3; justify-self:end; display:none; background:transparent; border:0; padding:10px; cursor:pointer}
.navBtn span{display:block; width:22px; height:2px; background:rgba(255,255,255,.75); margin:5px 0}

main{position:relative; z-index:2}

.hero{padding:64px 18px 10px; max-width:1120px; margin:0 auto; display:grid; grid-template-columns: 1.1fr .9fr; gap:26px; align-items:center}
.heroInner{padding:10px}
.kicker{display:inline-flex; gap:10px; align-items:center; color:var(--mut); font-weight:600; font-size:13px;
  padding:8px 12px; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(255,255,255,.04)}

h1{margin:16px 0 10px; font-family:"Space Grotesk", Inter, sans-serif; font-size: clamp(34px, 4vw, 54px); line-height:1.05; letter-spacing:-.6px}
.grad{background:linear-gradient(135deg, var(--a), var(--b) 55%, var(--c)); -webkit-background-clip:text; background-clip:text; color:transparent}
.lead{margin:0 0 18px; max-width:58ch; color:rgba(234,240,255,.86); font-size:16px; line-height:1.65}

.ctaRow{display:flex; gap:12px; align-items:center; margin:18px 0 22px}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; text-decoration:none;
  padding:12px 16px; border-radius:12px; border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05); color:var(--fg); font-weight:700}
.btn:hover{transform:translateY(-1px)}
.btn.primary{border-color:transparent; background:linear-gradient(135deg, rgba(124,58,237,.95), rgba(34,211,238,.85)); box-shadow:0 18px 50px rgba(34,211,238,.18)}

.heroStats{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px}
.stat{padding:12px 12px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10)}
.num{display:block; font-family:"Space Grotesk", Inter, sans-serif; font-weight:700; font-size:18px}
.lbl{display:block; color:var(--mut); font-size:12px; margin-top:2px; line-height:1.25}

.heroCard{position:relative; padding:10px}
.heroGlass{
  display:grid;
  grid-template-columns: 1fr;
  gap:14px;
  align-items:stretch;
}

/* Hero photo (top) */
.heroAvatar{
  position:relative;
  width:100%;
  height:440px;
  border-radius:26px;
  overflow:visible;
}
.avatarMedia{
  position:relative;
  width:100%;
  height:100%;
  border-radius:26px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:radial-gradient(420px 360px at 35% 20%, rgba(34,211,238,.16), rgba(124,58,237,.18) 55%, rgba(255,255,255,.02));
}
.avatarMedia img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  opacity:0;
  transform:scale(0.985);
  animation:revealPhoto 0.95s .18s ease forwards;
}
.heroAvatar.noPhoto::after{content:"Upload assets/me.png"; position:absolute; inset:auto 12px 12px 12px; font-size:12px; color:rgba(234,240,255,.75);
  padding:10px 12px; border-radius:14px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.25);
}
@keyframes revealPhoto{to{opacity:1; transform:scale(1)}}

/* Portal / time gate ring (around the photo) */
.portalRing{
  position:absolute;
  left:50%; top:50%;
  width:118%;
  aspect-ratio:1/1;
  transform:translate(-50%,-52%);
  border-radius:999px;
  pointer-events:none;
  background:conic-gradient(from 0deg, rgba(34,211,238,0), rgba(34,211,238,.62), rgba(124,58,237,.62), rgba(244,114,182,.5), rgba(34,211,238,0));
  filter:blur(1.2px);
  opacity:.9;
  animation:portalSpin 7.5s linear infinite;
  mask-image: radial-gradient(circle at 50% 50%, transparent 57%, black 58%);
}
.portalRing2{
  width:138%;
  opacity:.55;
  filter:blur(3.5px);
  animation-duration: 11.5s;
}
@keyframes portalSpin{to{transform:translate(-50%,-52%) rotate(360deg)}}

/* Subtle waist ring */
.waistRing{
  position:absolute;
  left:50%;
  top:66%;
  width:84%;
  height:84px;
  transform:translateX(-50%);
  border-radius:999px;
  pointer-events:none;
  border:1px solid rgba(34,211,238,.38);
  background:linear-gradient(90deg, rgba(124,58,237,.12), rgba(34,211,238,.16), rgba(244,114,182,.12));
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset, 0 0 28px rgba(34,211,238,.18);
  filter:blur(0.2px);
  opacity:.85;
  animation:waistLoop 4.8s ease-in-out infinite;
  mask-image: radial-gradient(closest-side, black 60%, transparent 92%);
}
@keyframes waistLoop{
  0%,100%{transform:translateX(-50%) rotate(-3deg) translateY(0)}
  50%{transform:translateX(-50%) rotate(3deg) translateY(-4px)}
}

.heroMini .micro{margin-top:12px; color:rgba(234,240,255,.78); font-size:12.5px; line-height:1.5}
.glass{
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  box-shadow:var(--shadow);
  padding:18px;
  transform:rotate(-1.2deg);
}
.chip{display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px; font-size:12px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.12); color:rgba(234,240,255,.9)}
.lines{margin:14px 0 12px}
.line{height:10px; border-radius:999px; background:rgba(255,255,255,.08); margin:10px 0}
.line:nth-child(1){width:88%}
.line:nth-child(2){width:70%}
.line:nth-child(3){width:56%}
.miniTitle{font-weight:800; font-family:"Space Grotesk", Inter, sans-serif; margin:10px 0 8px}
.mini ul{margin:0; padding-left:18px; color:rgba(234,240,255,.86); line-height:1.7}

.section{max-width:1120px; margin:0 auto; padding:54px 18px}
.sectionHead{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:16px}
.sectionHead h2{margin:0; font-family:"Space Grotesk", Inter, sans-serif; font-size:28px; letter-spacing:-.3px}
.sectionHead p{margin:0; color:var(--mut); max-width:70ch; line-height:1.55}

/* Stacked section heading (used for Automation / Social / Services / Contact) */
.sectionHead.headStack{flex-direction:column; align-items:flex-start}
.sectionHead.headStack p{max-width:78ch}

.filters{display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 18px}
.f{cursor:pointer; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:var(--fg);
  padding:9px 12px; border-radius:999px; font-weight:700; font-size:13px}
.f.active{background:linear-gradient(135deg, rgba(124,58,237,.6), rgba(34,211,238,.35)); border-color:transparent}

.projects{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px}

.project{
  display:flex;
  flex-direction:column;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  overflow:hidden;
  transform-style:preserve-3d;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.project:hover{border-color:rgba(34,211,238,.35); background:rgba(255,255,255,.06)}

.cover{height:168px; position:relative; overflow:hidden; background: radial-gradient(600px 220px at 20% 20%, rgba(124,58,237,.35), transparent 55%),
  radial-gradient(520px 240px at 80% 30%, rgba(34,211,238,.25), transparent 55%),
  rgba(255,255,255,.02);
}
.cover::after{content:""; position:absolute; inset:-40px; background:conic-gradient(from 180deg, rgba(124,58,237,.0), rgba(124,58,237,.35), rgba(34,211,238,.35), rgba(244,114,182,.25), rgba(124,58,237,.0)); filter:blur(24px); opacity:.65; animation:spin 10s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.mock{
  position:absolute; inset:16px; border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.05));
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  overflow:hidden;
}
.mockTop{height:26px; display:flex; align-items:center; gap:8px; padding:0 10px; border-bottom:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04)}
.dot{width:9px; height:9px; border-radius:999px; background:rgba(255,255,255,.25)}
.addr{font-size:11px; color:rgba(234,240,255,.75); margin-left:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.previewBtn{
  margin-left:auto;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg, rgba(124,58,237,.42), rgba(34,211,238,.22));
  color:rgba(234,240,255,.92);
  font-weight:900;
  font-size:11px;
  cursor:pointer;
  transform:translateZ(18px);
}
.previewBtn:hover{filter:brightness(1.08); transform:translateY(-1px) translateZ(18px)}
.noScroll{overflow:hidden}

/* Automation + Social sections */
.split{display:grid; grid-template-columns: 1.05fr .95fr; gap:14px; align-items:stretch}
.panel{border-radius:18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); padding:16px; overflow:hidden}
.panel.visual{position:relative}
.iconRow{display:flex; flex-wrap:wrap; gap:10px; margin:12px 0}
.iconChip{padding:9px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); font-weight:800}
.bullets{margin:0; padding-left:18px; color:rgba(234,240,255,.80); line-height:1.75}

.wfGrid{display:grid; grid-template-columns:1fr; gap:12px}
.wfCard{border-radius:18px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.18); overflow:hidden; position:relative}
.wfHead{display:flex; align-items:center; gap:10px; padding:12px 12px; border-bottom:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03)}
.wfDot{width:10px; height:10px; border-radius:999px; background:linear-gradient(135deg, rgba(124,58,237,.85), rgba(34,211,238,.55))}
.wfTitle{font-weight:900}
.wfBody{position:relative; height:150px; padding:16px}
.node{width:48px; height:28px; border-radius:12px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); display:inline-block; margin:10px 12px 0 0; box-shadow:0 16px 40px rgba(0,0,0,.35)}
.wire{position:absolute; left:22px; top:56px; right:28px; height:2px; background:linear-gradient(90deg, rgba(34,211,238,.0), rgba(34,211,238,.5), rgba(244,114,182,.35), rgba(34,211,238,.0)); opacity:.9; filter:blur(.2px); animation:wireMove 2.6s ease-in-out infinite}
.wire.w2{top:92px; animation-duration:3.2s; opacity:.65}
.wire.w3{top:78px; animation-duration:2.9s; opacity:.75}
@keyframes wireMove{0%,100%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
.wfFoot{padding:10px 12px; border-top:1px solid rgba(255,255,255,.10)}

.card.neon{position:relative; overflow:hidden}
.card.neon::before{content:""; position:absolute; inset:-40px; background:conic-gradient(from 180deg, rgba(124,58,237,.0), rgba(34,211,238,.26), rgba(244,114,182,.22), rgba(124,58,237,.0)); filter:blur(22px); opacity:.8; animation:spin 9s linear infinite}
.card.neon > *{position:relative}

/* Skills section (restructured) */
.pillMini{padding:7px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.18); font-weight:900; font-size:12px}

.skillsRows{display:flex; flex-direction:column; gap:14px}
.skillRow{
  display:grid;
  grid-template-columns: 200px 1fr;
  gap:14px;
  align-items:start;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  padding:16px;
  position:relative;
  overflow:hidden;
}
.skillRow::before{
  content:"";
  position:absolute;
  inset:-70px;
  background:
    radial-gradient(closest-side at 25% 25%, rgba(34,211,238,.14), transparent 62%),
    radial-gradient(closest-side at 80% 40%, rgba(124,58,237,.16), transparent 62%);
  opacity:.9;
}
.skillRow > *{position:relative}
.skillLeft{display:flex; flex-direction:column; gap:10px}
.skillLeft h3{margin:0; font-family:"Space Grotesk"; letter-spacing:-.2px}
.skillTags{display:flex; flex-wrap:wrap; gap:10px}

/* Modal carousel */
.modal{position:fixed; inset:0; z-index:50; display:none}
.modal.open{display:grid; place-items:center}
.modalBackdrop{position:absolute; inset:0; background:rgba(0,0,0,.62); backdrop-filter: blur(10px); animation:fadeIn .25s ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.modalPanel{position:relative;
  width:min(980px, calc(100% - 26px));
  border-radius:22px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.22));
  box-shadow:0 40px 120px rgba(0,0,0,.70);
  overflow:hidden;
  transform-origin: var(--pop-x, 50%) var(--pop-y, 50%);
  animation: popCircle .55s cubic-bezier(.2,1,.2,1) both;
}
@keyframes popCircle{
  from{clip-path: circle(0px at var(--pop-x, 50%) var(--pop-y, 50%)); opacity:0;}
  to{clip-path: circle(1500px at var(--pop-x, 50%) var(--pop-y, 50%)); opacity:1;}
}

.modalClose{position:absolute; top:10px; right:10px; width:40px; height:40px; border-radius:14px;
  border:1px solid rgba(255,255,255,.14); background:rgba(0,0,0,.20); color:var(--fg);
  font-size:20px; cursor:pointer; z-index:3}
.modalHead{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 18px 8px}
.modalTitle{font-family:"Space Grotesk"; font-weight:800; font-size:20px}
.modalSub{color:var(--mut); font-weight:800; font-size:12px; margin-top:4px}

.carousel{padding:10px 18px 18px}
.slides{position:relative; height:480px; border-radius:18px; border:1px solid rgba(255,255,255,.12); overflow:hidden;
  background:radial-gradient(700px 420px at 20% 20%, rgba(34,211,238,.18), transparent 60%),
             radial-gradient(700px 420px at 80% 40%, rgba(124,58,237,.20), transparent 60%),
             rgba(0,0,0,.18);
}
.slide{position:absolute; inset:0; transform:translateX(0); transition:transform .55s cubic-bezier(.2,1,.2,1);
  display:grid; place-items:center}
.slide img{width:100%; height:100%; object-fit:cover; display:block}
.slide.placeholder .ph{opacity:1}
.ph{position:absolute; inset:0; opacity:.0; background:linear-gradient(120deg, rgba(255,255,255,.06), rgba(255,255,255,.02), rgba(255,255,255,.06));
  background-size:200% 200%; animation: shimmer 2.2s ease-in-out infinite}
.ph2{position:absolute; inset:-60px; opacity:.35; filter:blur(22px);
  background:conic-gradient(from 180deg, rgba(124,58,237,.0), rgba(34,211,238,.35), rgba(244,114,182,.28), rgba(124,58,237,.0));
  animation:spin 8.5s linear infinite}
@keyframes shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

.carCtrls{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px}
.carBtn{width:48px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); color:var(--fg); font-weight:900; cursor:pointer}
.carBtn:hover{transform:translateY(-1px)}
.dots{display:flex; gap:8px; justify-content:center; flex:1}
.dotBtn{width:10px; height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.10); cursor:pointer}
.dotBtn.on{background:linear-gradient(135deg, rgba(124,58,237,.8), rgba(34,211,238,.55)); border-color:transparent}

@media (max-width: 980px){
  .heroGlass{grid-template-columns:1fr;}
  .heroAvatar{width:100%; height:320px}
  .split{grid-template-columns:1fr}
  .skillRow{grid-template-columns:1fr}
  .slides{height:360px}
}
.mockBody{padding:12px}
.mockTitle{font-family:"Space Grotesk"; font-weight:700; letter-spacing:-.2px}
.mockTags{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.badge{font-size:11px; padding:6px 8px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:rgba(234,240,255,.85)}

.pBody{
  padding:14px 14px 16px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.pTop{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.pName{margin:0; font-family:"Space Grotesk"; font-size:17px; letter-spacing:-.2px}
.pType{font-size:12px; color:var(--mut); font-weight:700}
.pDesc{margin:10px 0 12px; color:rgba(234,240,255,.83); line-height:1.55; font-size:13.5px}
.pStack{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px}
.pActions{display:flex; gap:10px; margin-top:auto; align-items:stretch}
.pActions a{flex:1; min-height:44px}

.note{margin-top:16px; display:flex; gap:10px; align-items:center; color:var(--mut); border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03); padding:12px 14px; border-radius:14px}

.cards{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px}
.card{border-radius:18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); padding:16px}
.card h3{margin:0 0 10px; font-family:"Space Grotesk"; letter-spacing:-.2px}
.card p{margin:0 0 10px; color:rgba(234,240,255,.82); line-height:1.55}
.card ul{margin:0; padding-left:18px; color:rgba(234,240,255,.78); line-height:1.75}

.stack{display:flex; flex-wrap:wrap; gap:10px}
.tag{padding:9px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); color:rgba(234,240,255,.85); font-weight:700; font-size:13px}

.contactGrid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px}
.contactCard{border-radius:18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); padding:16px;
  display:flex; flex-direction:column; gap:10px}
.contactCard > a.btn{align-self:flex-start; margin-top:2px}
.btnRow{display:flex; gap:10px; margin:10px 0 8px}
.muted{color:var(--mut); margin:0}
.social{display:flex; flex-direction:column; gap:10px; margin-top:8px}
.s{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); color:var(--fg); text-decoration:none; font-weight:800}
.s:hover{transform:translateY(-1px)}
.ico{width:28px; height:28px; border-radius:10px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(124,58,237,.8), rgba(34,211,238,.55)); border:1px solid rgba(255,255,255,.14)}
.big{font-size:15px; line-height:1.6; color:rgba(234,240,255,.86); margin:8px 0 0}

.footer{max-width:1120px; margin:0 auto; padding:18px; display:flex; justify-content:space-between; align-items:center; color:var(--mut); border-top:1px solid rgba(255,255,255,.08)}
.footer a{color:var(--mut); text-decoration:none}
.footer a:hover{color:var(--fg)}

code{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px; color:rgba(234,240,255,.86)}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .portalRing, .portalRing2, .waistRing, .wire, .cover::after, .card.neon::before, .ph, .ph2{animation:none !important}
  .btn:hover, .s:hover, .previewBtn:hover{transform:none}
}

@media (max-width: 980px){
  .hero{grid-template-columns:1fr; padding-top:42px}
  .projects{grid-template-columns:repeat(2, minmax(0,1fr))}
  .cards{grid-template-columns:1fr}
  .contactGrid{grid-template-columns:1fr}
  .sectionHead{flex-direction:column; align-items:flex-start}
}

@media (max-width: 620px){
  .nav{display:none}
  .nav.open{display:flex; position:absolute; top:64px; right:12px; flex-direction:column; gap:10px; padding:12px; border-radius:16px;
    background:rgba(7,10,16,.86); border:1px solid rgba(255,255,255,.10); backdrop-filter:blur(14px)}
  .navBtn{display:block}
  .projects{grid-template-columns:repeat(2, minmax(0,1fr))}
  .heroStats{grid-template-columns:1fr}
  .previewBtn { display: none !important; }
.mockTop .previewBtn { display: none !important; }

}
/* Pizza suggestions star (only for isPizzaSuggestion items) */
.starPulse{
  display:inline-block;
  margin-left:8px;
  transform-origin:center;
  animation: starPulse 1.4s ease-in-out infinite;
  filter: drop-shadow(0 0 10px rgba(244,114,182,.45));
}
.starPulse{
  display:inline-block;
  margin-left:8px;
  color:#FFD700; /* gold */
  transform-origin:center;
  animation: starPulse 1.4s ease-in-out infinite;
  text-shadow:
    0 0 6px rgba(255,215,0,.6),
    0 0 14px rgba(255,185,0,.45),
    0 0 22px rgba(255,140,0,.35);
}
/* Force pizza star to be gold */
.starPulse{
  color:#FFD700 !important;
  text-shadow:
    0 0 6px rgba(255,215,0,.65),
    0 0 14px rgba(255,185,0,.45),
    0 0 22px rgba(255,140,0,.35) !important;
}

