/* Production refinements loaded after styles.css */

.identity{
  font-family:var(--display);
  font-size:12px;
  font-weight:500;
  letter-spacing:-.025em;
  text-transform:lowercase;
  color:#d5d7d5;
}

/* Hero: static, restrained depth. */
.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:92px 0 4%;
  pointer-events:none;
  background:
    radial-gradient(ellipse 52% 40% at 28% 48%,rgba(200,255,72,.052),transparent 72%),
    radial-gradient(ellipse 30% 24% at 78% 34%,rgba(124,200,255,.018),transparent 78%);
  opacity:.9;
  mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 78%,transparent 100%);
}

/* Seamless capabilities marquee. app.js duplicates the source set once. */
.ticker{overflow:hidden}
.ticker-track{
  width:max-content;
  min-width:max-content;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:36px;
  padding:15px 18px;
  animation:portfolio-marquee 30s linear infinite!important;
  will-change:transform;
}
.ticker-track span,
.ticker-track b{flex:0 0 auto}
@keyframes portfolio-marquee{
  to{transform:translateX(calc(-50% - 9px))}
}

/* CV download is retired from the public UI. */
.mobile-menu a[href*="PrivacySafe.pdf"],
.about-actions a[href*="PrivacySafe.pdf"]{display:none!important}

/* Text-only project index. */
.project-stack{
  display:block;
  border-top:1px solid var(--line);
}
.project-card,
.project-card:nth-child(even){
  display:block;
  padding:0;
  margin:0;
  border-bottom:1px solid var(--line);
}
.project-content,
.project-card:nth-child(even) .project-content{
  display:grid;
  grid-template-columns:72px minmax(190px,.72fr) minmax(280px,1.35fr) auto;
  grid-template-rows:auto auto auto;
  column-gap:clamp(24px,3vw,52px);
  row-gap:14px;
  align-items:start;
  width:100%;
  max-width:none;
  padding:32px 0 34px;
}
.project-meta{
  grid-column:1;
  grid-row:1 / span 3;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
  padding:4px 0 0;
  border:0;
  font-family:var(--display);
  font-size:9px;
  letter-spacing:.12em;
  color:#737b82;
}
.project-meta span:first-child{color:var(--acid);font-size:10px}
.project-content h3{
  grid-column:2;
  grid-row:1;
  margin:0;
  font-size:clamp(31px,3vw,49px);
  line-height:.96;
  letter-spacing:-.055em;
  transition:color .25s var(--ease),transform .25s var(--ease);
}
.project-content>p{
  grid-column:3;
  grid-row:1;
  max-width:680px;
  margin:2px 0 0;
  color:#969da3;
  font-size:13px;
  line-height:1.72;
}
.tech-list{
  grid-column:3;
  grid-row:2;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0;
}
.tech-list li{
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:999px;
  background:rgba(255,255,255,.012);
  font-family:var(--display);
  font-size:8px;
  letter-spacing:.08em;
  color:#8b9298;
}
.project-evidence{
  grid-column:2 / 4;
  grid-row:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:10px 0 0;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.06);
}
.project-evidence>div{
  min-width:0;
  padding:14px 15px 15px;
  background:rgba(7,8,10,.96);
}
.project-evidence dt{
  margin-bottom:7px;
  font:500 8px/1 var(--display);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--acid);
}
.project-evidence dd{
  margin:0;
  color:#868d93;
  font-size:11px;
  line-height:1.6;
}
.project-links{
  grid-column:4;
  grid-row:1 / span 3;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:11px;
  margin:2px 0 0;
  white-space:nowrap;
}
.project-links a{
  position:relative;
  font-family:var(--display);
  font-size:9px;
  letter-spacing:.07em;
  color:#c1c5c7;
  transition:color .2s ease,transform .2s ease;
}
.project-links a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-3px;height:1px;
  background:var(--acid);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .22s var(--ease);
}
.project-links a:hover{color:var(--acid);transform:translateX(2px)}
.project-links a:hover::after{transform:scaleX(1)}
.project-card:hover .project-content h3{color:var(--acid);transform:translateX(3px)}
.work-end{margin-top:36px}

.about-coord{line-height:1.6}
.about-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.about-actions a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid #30373e;
  border-radius:999px;
  font:500 9px/1 var(--display);
  letter-spacing:.08em;
  transition:border-color .2s ease,color .2s ease,transform .2s ease;
}
.about-actions a:hover{border-color:var(--acid);color:var(--acid);transform:translateY(-1px)}
.form-privacy{max-width:520px;margin-top:12px;color:#727980;font-size:11px;line-height:1.6}

:focus-visible{outline:2px solid var(--acid);outline-offset:4px}

@media(max-width:980px){
  .project-content,
  .project-card:nth-child(even) .project-content{
    grid-template-columns:54px minmax(170px,.8fr) minmax(0,1.2fr);
    column-gap:24px;
  }
  .project-evidence{grid-column:2 / -1}
  .project-links{
    grid-column:2 / -1;
    grid-row:4;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    margin-top:4px;
  }
}

@media(max-width:820px){
  .hero::after{
    inset:78px -8% 8%;
    background:radial-gradient(ellipse 72% 36% at 34% 42%,rgba(200,255,72,.045),transparent 74%);
  }
  .ticker-track{gap:22px;padding:13px 11px;animation-duration:24s!important}
  .ticker-track span{font-size:7px}
  .ticker-track b{opacity:.45}
  .project-content,
  .project-card:nth-child(even) .project-content{
    grid-template-columns:30px minmax(0,1fr);
    grid-template-rows:auto auto auto auto auto;
    column-gap:14px;
    row-gap:11px;
    padding:25px 0 27px;
  }
  .project-meta{
    grid-column:1;
    grid-row:1 / span 5;
    padding-top:3px;
    gap:7px;
    font-size:8px;
  }
  .project-meta span:first-child{font-size:9px}
  .project-content h3{grid-column:2;grid-row:1;margin:0;font-size:30px;line-height:1}
  .project-content>p{grid-column:2;grid-row:2;margin:1px 0 0;max-width:560px;font-size:13px;line-height:1.66}
  .tech-list{grid-column:2;grid-row:3;margin-top:3px}
  .tech-list li{font-size:7px}
  .project-evidence{grid-column:2;grid-row:4;grid-template-columns:1fr;margin-top:5px}
  .project-evidence>div{padding:12px 13px}
  .project-evidence dd{font-size:11px}
  .project-links{grid-column:2;grid-row:5;flex-direction:row;flex-wrap:wrap;gap:14px;margin-top:3px}
  .project-card:hover .project-content h3{transform:none}
  .work-end{margin-top:28px}
}

@media(max-width:420px){
  .project-content,
  .project-card:nth-child(even) .project-content{
    grid-template-columns:26px minmax(0,1fr);
    column-gap:12px;
    padding:22px 0 24px;
  }
  .project-content h3{font-size:28px}
  .project-content>p{font-size:12.5px}
  .tech-list li{font-size:7px;padding:5px 7px}
}

@media(hover:none){
  .project-card:hover .project-content h3{color:inherit;transform:none}
}

@media(prefers-reduced-motion:reduce){
  .ticker-track{animation:none!important;transform:none!important}
  .project-content h3,.project-links a,.about-actions a{transition:none!important}
}
