/* ============================================================
   Daiven Reyes — portfolio root stylesheet
   Mobile-first. Base styles = small screens; only min-width
   media queries below. Palette matches the Prototype Lab hub.
   ============================================================ */

:root{
  --bg:#0d0e12;
  --surface:#15171d;
  --surface-2:#1b1e26;
  --line:#262a34;
  --ink:#f2f3f5;
  --muted:#9aa0ab;
  --faint:#5f6672;
  --accent:#6b8afd;
  --display:'Space Grotesk',system-ui,sans-serif;
  --body:Inter,system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);
  background:var(--bg);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* ---------- top bar ---------- */
.top{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.top__mark{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:-.01em}
.top__mark em{font-style:normal;color:var(--accent)}
.top__nav{display:flex;gap:18px;font-family:var(--display);font-size:13px;color:var(--muted)}
.top__nav a:hover{color:var(--ink)}

/* ---------- hero ---------- */
.hero{padding:clamp(56px,10vw,130px) 0 clamp(36px,6vw,64px)}
.eyebrow{
  font-family:var(--display);font-size:12px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:22px;
  display:flex;align-items:center;gap:12px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--accent);flex:none}
.hero h1{
  font-family:var(--display);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(34px,6.4vw,66px);line-height:1.03;max-width:15ch;
}
.hero h1 em{font-style:normal;color:var(--muted)}
.manifesto{margin-top:24px;max-width:52ch;color:var(--muted);font-size:clamp(15px,1.6vw,18px)}
.statline{
  margin-top:36px;display:flex;flex-wrap:wrap;gap:10px 0;align-items:baseline;
  font-family:var(--display);font-size:clamp(14px,1.6vw,17px);font-weight:600;letter-spacing:.01em;
}
.statline b{font-weight:700;color:var(--ink)}
.statline span{color:var(--muted);font-weight:500}
.statline .dot{color:var(--faint);margin:0 14px;font-weight:500}

/* ---------- section headers (matches hub batch rows) ---------- */
.sec{margin-top:clamp(48px,8vw,96px)}
.sec__head{
  display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;
  padding-top:28px;border-top:1px solid var(--line);margin-bottom:20px;
}
.sec__head h2{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.01em}
.sec__head .tag{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.sec__intro{color:var(--muted);max-width:62ch;font-size:15px;margin-bottom:26px}

/* ---------- lab ledger rows ---------- */
.labrow{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding:18px 2px;border-bottom:1px solid var(--line);
  transition:background .2s ease,padding .2s ease;
}
.labrow:first-of-type{border-top:1px solid var(--line)}
.labrow__no{font-family:var(--display);font-size:12px;color:var(--faint);letter-spacing:.14em;width:34px;flex:none}
.labrow__name{font-family:var(--display);font-size:clamp(17px,2.4vw,22px);font-weight:600;letter-spacing:-.01em}
.labrow__count{color:var(--faint);font-size:13px}
.labrow__go{margin-left:auto;font-family:var(--display);font-size:13px;color:var(--accent);opacity:0;transition:opacity .2s ease;display:none}
.labrow:hover{background:var(--surface);padding-left:12px;padding-right:12px}
.labrow:hover .labrow__go{opacity:1}
.cta{
  display:inline-flex;align-items:center;gap:10px;margin-top:30px;
  font-family:var(--display);font-weight:600;font-size:15px;
  background:var(--accent);color:#0b0d14;border-radius:10px;
  padding:14px 24px;transition:transform .2s ease,box-shadow .2s ease;
}
.cta:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(107,138,253,.25)}

/* ---------- capability cards ---------- */
.cards{display:grid;grid-template-columns:1fr;gap:clamp(14px,2vw,22px)}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:22px 22px 24px;display:flex;flex-direction:column;gap:9px;
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.card:hover{transform:translateY(-4px);border-color:#39404e;background:var(--surface-2)}
.kicker{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.card h3{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em}
.card p{font-size:13.5px;color:var(--muted);line-height:1.55}
.card p code{font-family:ui-monospace,'JetBrains Mono',monospace;font-size:12px;
  background:var(--surface-2,rgba(255,255,255,.05));border:1px solid var(--line);
  border-radius:5px;padding:1px 6px;color:var(--ink)}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}
.pills span{
  font-size:11px;color:var(--faint);border:1px solid var(--line);
  border-radius:999px;padding:3px 9px;font-family:var(--display);
}

/* ---------- experience snapshot ---------- */
.xp{border-top:1px solid var(--line)}
.xp li{
  list-style:none;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;
  padding:16px 2px;border-bottom:1px solid var(--line);
}
.xp .role{font-family:var(--display);font-weight:600;font-size:15px}
.xp .org{color:var(--muted);font-size:14px}
.xp .when{margin-left:auto;color:var(--faint);font-size:13px;font-family:var(--display)}
.more{
  display:inline-flex;align-items:center;gap:8px;margin-top:22px;
  font-family:var(--display);font-size:14px;color:var(--accent);font-weight:500;
}
.more:hover{gap:12px}

/* ---------- contact ---------- */
.contact-card{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:clamp(24px,4vw,40px);display:flex;flex-direction:column;gap:22px;
}
.contact-links{display:flex;flex-wrap:wrap;gap:12px}
.linkbtn{
  display:inline-flex;align-items:center;gap:9px;
  border:1px solid var(--line);border-radius:10px;padding:11px 18px;
  font-family:var(--display);font-size:14px;font-weight:500;
  transition:border-color .2s ease,background .2s ease;
}
.linkbtn:hover{border-color:var(--accent);background:var(--surface-2)}
.linkbtn svg{width:16px;height:16px;fill:var(--muted);flex:none}
.linkbtn:hover svg{fill:var(--accent)}
.email-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.email-note{color:var(--faint);font-size:13px}
.btn-reveal{
  border:1px solid var(--accent);color:var(--accent);border-radius:10px;
  padding:11px 18px;font-family:var(--display);font-size:14px;font-weight:600;
  transition:background .2s ease,color .2s ease;
}
.btn-reveal:hover{background:var(--accent);color:#0b0d14}
.email-slot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:24px}
.email-text{
  font-family:var(--display);font-size:clamp(15px,2.4vw,18px);font-weight:600;
  letter-spacing:.01em;word-break:break-all;
}
.btn-copy{
  border:1px solid var(--line);border-radius:8px;padding:6px 14px;
  font-family:var(--display);font-size:12.5px;color:var(--muted);
  transition:border-color .2s ease,color .2s ease;
}
.btn-copy:hover{border-color:var(--accent);color:var(--ink)}

/* ---------- footer ---------- */
.foot{
  margin:clamp(60px,9vw,120px) 0 60px;padding-top:28px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  color:var(--faint);font-size:13px;
}
.foot nav{display:flex;gap:18px}
.foot a:hover{color:var(--ink)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}

/* ============================================================
   RESUME
   ============================================================ */
.r-back{color:var(--faint);font-size:13.5px}
.r-back a{color:var(--accent)}
.r-back a:hover{text-decoration:underline}
.r-head{padding:clamp(44px,7vw,88px) 0 clamp(24px,4vw,40px)}
.r-head h1{
  font-family:var(--display);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(30px,5vw,52px);line-height:1.05;
}
.r-head .r-sub{margin-top:12px;color:var(--muted);font-family:var(--display);font-size:clamp(14px,1.8vw,17px)}
.r-head .r-loc{margin-top:6px;color:var(--faint);font-size:13.5px}

.r-layout{display:block}
.r-main{max-width:72ch}
.r-sec{margin-top:clamp(36px,5vw,56px)}
.r-sec>h2{
  font-family:var(--display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:600;margin-bottom:18px;
  display:flex;align-items:center;gap:12px;
}
.r-sec>h2::before{content:"";width:22px;height:1px;background:var(--accent);flex:none}
.r-sec p{color:var(--muted);font-size:15px}

.r-job{padding:20px 0;border-top:1px solid var(--line)}
.r-job:first-of-type{border-top:0;padding-top:0}
.r-job__head{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin-bottom:4px}
.r-job__head h3{font-family:var(--display);font-size:16.5px;font-weight:600;letter-spacing:-.01em}
.r-job__when{margin-left:auto;color:var(--faint);font-size:13px;font-family:var(--display);white-space:nowrap}
.r-job__org{color:var(--muted);font-size:14px;margin-bottom:10px}
.r-job ul{margin:0;padding-left:18px}
.r-job li{color:var(--muted);font-size:14px;margin-bottom:6px}
.r-job li::marker{color:var(--faint)}

.r-proj{padding:12px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.r-proj:first-of-type{border-top:0;padding-top:0}
.r-proj b{font-family:var(--display);font-weight:600;color:var(--ink)}
.r-proj a{color:var(--accent)}
.r-proj a:hover{text-decoration:underline}
.r-proj-group{font-family:var(--display);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);font-weight:600;margin:22px 0 2px}
.r-proj-group:first-of-type{margin-top:6px}
.r-proj-group + .r-proj{border-top:0;padding-top:4px}

.r-list{list-style:none}
.r-list li{padding:8px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.r-list li:first-child{border-top:0;padding-top:0}
.r-list b{color:var(--ink);font-weight:600;font-family:var(--display);font-size:13.5px}

/* skills rail */
.r-skill{margin-bottom:20px}
.r-skill h3{font-family:var(--display);font-size:13px;font-weight:600;margin-bottom:8px;letter-spacing:.01em}
.r-skill p{color:var(--muted);font-size:13px;line-height:1.6}

/* ============================================================
   PROJECTS redirect page
   ============================================================ */
.redirect{
  min-height:100vh;display:flex;flex-direction:column;align-items:flex-start;
  justify-content:center;gap:18px;max-width:560px;margin:0 auto;
  padding:0 clamp(20px,6vw,48px);
}
.redirect h1{font-family:var(--display);font-weight:700;font-size:clamp(24px,5vw,34px);letter-spacing:-.02em}
.redirect p{color:var(--muted);font-size:15px}

/* ============================================================
   MIN-WIDTH ENHANCEMENTS ONLY
   ============================================================ */
@media (min-width:640px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .labrow__go{display:inline}
}

@media (min-width:960px){
  .r-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(40px,5vw,72px);align-items:start}
  .r-rail{position:sticky;top:32px}
  .r-rail .r-sec{margin-top:0;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
}

/* ============================================================
   PRINT (resume)
   ============================================================ */
@media print{
  body{background:#fff;color:#000}
  .top,.foot,.r-back,.no-print{display:none!important}
  .wrap{max-width:none;padding:0}
  .r-layout{display:block}
  .r-main{max-width:none}
  .r-head{padding:0 0 16px}
  .r-head h1,.r-job__head h3,.r-skill h3,.r-proj b,.r-list b{color:#000}
  .r-proj-group{color:#333}
  .r-head .r-sub,.r-head .r-loc,.r-sec p,.r-job li,.r-job__org,.r-job__when,
  .r-proj,.r-list li,.r-skill p{color:#222}
  .r-sec>h2{color:#000}
  .r-sec>h2::before{background:#000}
  .r-job,.r-proj,.r-list li{border-color:#ccc}
  .r-rail .r-sec{background:none;border:0;padding:0}
  a{color:#000}
  .rv{opacity:1;transform:none}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}
