/* ============================================================
   Sumit Rai Portfolio — Shared Stylesheet
   ============================================================ */

:root{
  --bg:#FFFFFF;
  --surface:#FFFFFF;
  --surface-raised:#F7F5F2;
  --ink:#161412;
  --ink-soft:rgba(22,20,18,.62);
  --ink-faint:rgba(22,20,18,.40);
  --accent:#E0631E;
  --accent-dark:#B94E14;
  --accent-soft:#F0925C;
  --accent-tint:#FDECE1;
  --shadow-d:rgba(20,18,14,.10);
  --shadow-l:rgba(255,255,255,.9);
  --line:rgba(22,20,18,.10);
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:10px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background-color: #FDFBF7;
  color:var(--ink);
  font-family:'Inter',sans-serif;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;margin:0;letter-spacing:-.02em;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;}
::selection{background:var(--accent);color:#fff;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px;}
.wrap-wide{max-width:1040px;margin:0 auto;padding:0 24px;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);}
.mono{font-family:'IBM Plex Mono',monospace;}

/* ---------- Clay system (Light Clay) ---------- */
.clay{
  background:#FFFFFF;
  border:1px solid rgba(22, 20, 18, 0.04);
  border-radius:var(--radius-lg);
  box-shadow:0 8px 30px rgba(22, 20, 18, 0.05);
}
.clay-sm{
  background:#FFFFFF;
  border:1px solid rgba(22, 20, 18, 0.04);
  border-radius:var(--radius-md);
  box-shadow:0 6px 20px rgba(22, 20, 18, 0.04);
}
.clay-btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;
  min-width:136px;
  min-height:44px;
  background:#FFFFFF;
  border:1px solid rgba(22, 20, 18, 0.05);
  padding:12px 22px;border-radius:999px;
  box-shadow:0 3px 10px var(--shadow-d);
  font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.14em;
  transition:transform .15s, box-shadow .15s;
  cursor:pointer;
}
.clay-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px var(--shadow-d);}
.clay-btn:active{box-shadow:inset 0 2px 6px var(--shadow-d);transform:translateY(0);}
.clay-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 4px 12px rgba(22,20,18,.28);}
.clay-btn.primary:hover{background:var(--accent);border-color:var(--accent);}

/* ---------- Nav ---------- */
header.nav-wrap{
  position:sticky;top:0;z-index:60;
  background:transparent;
  border:none;
  padding:0 24px;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
header.nav-wrap.nav-hidden{
  transform: translateY(-110%);
}
.nav-pill{
  width:100%;max-width:1040px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 22px;
  background:#FFFFFF;
  border:1px solid rgba(22,20,18,.05);
  border-radius:0 0 26px 26px;
  box-shadow:0 14px 32px rgba(22,20,18,.05);
  position:relative;
}
.nav-pill .logo{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;
  text-decoration:none;color:var(--ink);
}
.nav-tabs{display:flex;gap:6px;align-items:center;}
.nav-tabs a{
  padding:10px 16px;border-radius:10px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.13em;
  color:var(--ink-soft);transition:.2s;text-decoration:none;
}
.nav-tabs a:hover{color:var(--ink);}
.nav-tabs a.active{background:#111111;color:#fff;border-radius:12px;}

/* ---- Floating theme toggle ---- */
.theme-toggle-floating{
  position:fixed;bottom:24px;right:24px;z-index:100;
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:999px;
  background:#FFFFFF;border:1px solid rgba(22,20,18,.08);
  box-shadow:0 8px 24px rgba(22,20,18,.1);
  color:var(--ink);cursor:pointer;
  transition:transform .2s, box-shadow .2s, background .2s;
}
.theme-toggle-floating svg{width:18px;height:18px;}
.theme-toggle-floating:hover{transform:scale(1.08);box-shadow:0 12px 30px rgba(22,20,18,.15);}
.icon-moon{display:none;}
[data-theme="dark"] .icon-sun{display:none;}
[data-theme="dark"] .icon-moon{display:block;}
[data-theme="dark"] .theme-toggle-floating{background:#1F1D1B;border-color:rgba(255,255,255,.1);box-shadow:0 8px 24px rgba(0,0,0,.3);}

/* ---- Available-for-work badge (shown at bottom of page) ---- */
.nav-logo{transition:opacity .35s ease;}
.avail-badge{
  position:absolute;left:50%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 18px 7px 7px;
  background:#FFFFFF;
  border:1px solid rgba(22,20,18,.07);
  border-radius:999px;
  box-shadow:0 6px 22px rgba(22,20,18,.08);
  text-decoration:none;
  opacity:0;
  pointer-events:none;
  transition:opacity .38s cubic-bezier(.4,0,.2,1), transform .38s cubic-bezier(.4,0,.2,1);
  transform:translateX(-50%) scale(.94);
  white-space:nowrap;
}
.avail-badge.avail-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) scale(1);
}
.avail-avatar{
  width:32px;height:32px;border-radius:50%;object-fit:cover;
  border:2px solid rgba(22,20,18,.06);
  flex-shrink:0;
}
.avail-text{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:700;font-size:14px;color:var(--ink);
}
.avail-dot{
  width:12px;height:12px;border-radius:50%;
  background:#F5C518;
  border:3px solid rgba(245,197,24,.25);
  flex-shrink:0;
  animation:pulse-avail 1.8s ease-in-out infinite;
}
@keyframes pulse-avail{
  0%,100%{box-shadow:0 0 0 0 rgba(245,197,24,.5);}
  50%{box-shadow:0 0 0 6px rgba(245,197,24,0);}
}

/* ---- Chip text animation ---- */
.chip-text{
  display:inline;transition:opacity .3s ease, transform .3s ease;
}

/* ---- Dark mode overrides ---- */
[data-theme="dark"]{
  --bg:#161412;
  --surface:#1F1D1B;
  --surface-raised:#272523;
  --ink:#F7F5F2;
  --ink-soft:rgba(247,245,242,.62);
  --ink-faint:rgba(247,245,242,.38);
  --line:rgba(247,245,242,.08);
  --shadow-d:rgba(0,0,0,.28);
}
[data-theme="dark"] body{background-color:#161412;}
[data-theme="dark"] .clay,
[data-theme="dark"] .clay-sm{background:#1F1D1B;border-color:rgba(255,255,255,.06);box-shadow:0 8px 30px rgba(0,0,0,.18);}
[data-theme="dark"] .clay-btn{background:#1F1D1B;border-color:rgba(255,255,255,.08);}
[data-theme="dark"] .nav-pill{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] .proj-card{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] .avail-badge{background:#1F1D1B;border-color:rgba(255,255,255,.08);}
[data-theme="dark"] footer{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] .resume-a4{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] .nav-tabs a.active{background:#F7F5F2;color:#161412;}
[data-theme="dark"] .theme-toggle{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:var(--ink-soft);}

/* ---------- Page wrapper ---------- */
.page-body{padding:20px 0 100px;}

/* ---------- Hero ---------- */
.hero{padding:56px 0 48px;text-align:center;}
.hero h1{font-size:clamp(2rem,4.4vw,2.9rem);font-weight:800;line-height:1.18;letter-spacing:-.01em;max-width:900px;margin:18px auto 0;}
.hero h1 .accent{color:var(--accent);}
.hero p{max-width:520px;margin:22px auto 0;color:var(--ink-soft);font-size:15.5px;}
.hero .cta-row{margin-top:30px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.current-chip{
  display:inline-flex;align-items:center;gap:8px;padding:8px 16px;margin-bottom:22px;
  font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);
}
.current-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;}
.current-chip strong{color:var(--ink);font-weight:600;}

/* ================= PROJECT CARDS — text top / image bottom ================= */
.proj-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin-top:12px;
}
.proj-card{
  display:flex;flex-direction:column;
  background:#FFFFFF;
  border:1px solid rgba(22,20,18,.05);
  border-radius:20px;
  overflow:hidden;
  cursor:pointer;
  text-align:left;
  box-shadow:0 8px 28px rgba(22,20,18,.05);
  transition:transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s cubic-bezier(.2,.8,.2,1), border-color .28s;
  padding:0;
}
.proj-card:hover{
  transform:translateY(-5px);
  box-shadow:0 22px 44px rgba(20,18,14,.1);
  border-color:rgba(224,99,30,.2);
}
.proj-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}

/* IMAGE — 2/3 of card */
.proj-card .proj-image{
  width:100%;flex:0 0 auto;
  aspect-ratio:3/2;
  position:relative;overflow:hidden;
  border-radius:0;
  background:linear-gradient(160deg, var(--accent-tint) 0%, #F0EDE8 100%);
  border-bottom:1px solid rgba(22,20,18,.04);
}
.proj-card .proj-image img{
  width:100%;height:100%;object-fit:cover;object-position:top;
  display:block;
  transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.proj-card:hover .proj-image img{transform:scale(1.045);}
.proj-card .proj-image .img-fallback{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
}
.proj-card .proj-image .img-fallback svg{opacity:.25;width:40px;height:40px;color:var(--accent-dark);}

/* TEXT BOTTOM — 1/3 of card */
.proj-card .proj-body{
  padding:18px 20px 20px;
  display:flex;flex-direction:column;
  align-items:center;
  gap:10px;
  text-align:center;
}
.proj-card .proj-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;
  letter-spacing:.15em;color:var(--accent);
  line-height:1;
  text-align:center;
}
.proj-card h3{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:clamp(1.15rem,1.7vw,1.4rem);
  line-height:1.22;font-weight:700;
  color:var(--ink);margin:0;letter-spacing:-.02em;
  text-align:center;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.proj-card .tech-row{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;
  margin-top:auto;
}
.proj-card .tech-chip{
  font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.05em;
  padding:4px 10px;border-radius:999px;
  border:1px solid rgba(22,20,18,.08);color:var(--ink-soft);
  background:rgba(22,20,18,.028);
  white-space:nowrap;
  transition:background .2s, border-color .2s;
}
.proj-card:hover .tech-chip{
  border-color:rgba(224,99,30,.25);
  background:rgba(224,99,30,.06);
  color:var(--accent);
}
[data-theme="dark"] .proj-card .tech-chip{
  border-color:rgba(255,255,255,.08);color:var(--ink-soft);
  background:rgba(255,255,255,.04);
}

@media(max-width:820px){
  .proj-grid{grid-template-columns:1fr;}
}

/* ---------- Case study view ---------- */
.case-view{max-width:1040px;margin:0 auto;padding-top:12px;}
.case-header-chip{
  display:inline-flex;align-items:center;gap:8px;
  margin:0 auto 16px;
  font-size:11px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ink-soft);
  text-align:center;justify-content:center;width:100%;
}
.case-header-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;}
.case-top-actions{display:flex;justify-content:center;margin-bottom:28px;}
.case-pill-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 24px;border-radius:999px;
  background:#FFFFFF;border:1px solid rgba(22,20,18,.08);
  box-shadow:0 6px 20px rgba(22,20,18,.05);
  font-family:'Bricolage Grotesque',sans-serif;font-size:13px;font-weight:600;
  color:var(--ink);transition:transform .18s, box-shadow .18s, border-color .18s;
  cursor:pointer;
}
.case-pill-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(22,20,18,.1);border-color:rgba(224,99,30,.25);}

.case-head{text-align:center;max-width:800px;margin:0 auto 32px;}
.case-head h2{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:clamp(1.8rem, 3.6vw, 2.7rem);
  line-height:1.18;margin:0 0 14px;letter-spacing:-.02em;color:var(--ink);
}
.case-head p.summary{
  color:var(--ink-soft);font-size:16px;line-height:1.6;margin:0 auto;max-width:640px;
}

.case-image{
  width:100%;aspect-ratio:16/9;max-height:460px;
  border-radius:24px;overflow:hidden;margin-bottom:40px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, var(--accent-tint) 0%, #F0EDE8 100%);
  border:1px solid rgba(22,20,18,.06);
  box-shadow:0 12px 32px rgba(22,20,18,.05);
}
.case-image img{width:100%;height:100%;object-fit:cover;}
.case-image svg{width:56px;height:56px;opacity:.3;color:var(--accent-dark);}

.case-sections-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px;
}
.case-section-card{
  padding:24px 22px;border-radius:20px;
  background:#FFFFFF;border:1px solid rgba(22,20,18,.05);
  box-shadow:0 8px 24px rgba(22,20,18,.04);
  display:flex;flex-direction:column;gap:10px;
}
.case-section-card h3{
  font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--accent);margin:0;font-weight:600;
}
.case-section-card p{
  color:var(--ink-soft);font-size:14px;line-height:1.6;margin:0;
}

.case-nav{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding-top:32px;border-top:1px solid rgba(22,20,18,.06);
}
.case-nav-btn{
  display:flex;flex-direction:column;gap:4px;
  padding:16px 20px;border-radius:16px;
  background:#FFFFFF;border:1px solid rgba(22,20,18,.06);
  box-shadow:0 6px 20px rgba(22,20,18,.04);
  transition:transform .2s, box-shadow .2s, border-color .2s;
  cursor:pointer;text-align:left;flex:1;max-width:48%;
}
.case-nav-btn:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(22,20,18,.08);border-color:rgba(224,99,30,.2);}
.case-nav-btn.next{text-align:right;align-items:flex-end;}
.case-nav-btn .nav-label{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);}
.case-nav-btn .nav-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3;}

/* Dark Mode Case View */
[data-theme="dark"] .case-pill-btn{background:#1F1D1B;border-color:rgba(255,255,255,.1);color:#fff;}
[data-theme="dark"] .case-image{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] .case-section-card{background:#1F1D1B;border-color:rgba(255,255,255,.06);box-shadow:0 8px 28px rgba(0,0,0,.2);}
[data-theme="dark"] .case-nav-btn{background:#1F1D1B;border-color:rgba(255,255,255,.06);box-shadow:0 6px 20px rgba(0,0,0,.2);}
[data-theme="dark"] .case-nav{border-top-color:rgba(255,255,255,.06);}

@media(max-width:820px){
  .case-sections-grid{grid-template-columns:1fr;}
  .case-nav{flex-direction:column;align-items:stretch;}
  .case-nav-btn{max-width:100%;}
  .case-nav-btn.next{align-items:flex-start;text-align:left;}
}

/* ---------- About ---------- */
.about-hero{
  display:grid;grid-template-columns:1fr 260px;gap:56px;align-items:center;
  padding:48px 0 36px;border-bottom:1px solid var(--line);
}
.about-copy{display:flex;flex-direction:column;justify-content:center;}
.about-hero .about-eyebrow{display:block;margin-bottom:18px;}
.about-hero h1{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2.3rem,4vw,4rem);line-height:0.96;letter-spacing:-0.06em;margin-bottom:18px;max-width:680px;}
.about-hero p{color:var(--ink-soft);font-size:15px;line-height:1.6;max-width:480px;margin:0;}
.about-cta-row{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
.about-photo-wrap{position:relative;width:100%;max-width:240px;margin-left:auto;}
.about-photo{
  aspect-ratio:1/1;border-radius:12px;overflow:hidden;
  background:#FFFFFF;
  box-shadow:0 10px 30px rgba(22, 20, 18, 0.07);
  border:1px solid rgba(22, 20, 18, 0.06);
  display:flex;align-items:center;justify-content:center;
}
.about-photo img, .about-photo svg{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:820px){
  .about-hero{grid-template-columns:1fr;gap:24px;padding:32px 0 28px;}
  .about-photo-wrap{max-width:180px;margin:0 auto;order:-1;}
}

.stat-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:44px;
  width:100%;
}
.stat-item{
  display:flex;
  flex-direction:column;
  background:#FFFFFF;
  border:1px solid rgba(22,20,18,.06);
  border-radius:20px;
  padding:24px 22px;
  box-shadow:0 8px 24px rgba(22,20,18,.04);
  transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s cubic-bezier(.2,.8,.2,1), border-color .28s;
}
.stat-item:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(20,18,14,.08);
  border-color:rgba(224,99,30,.25);
}
.stat-item .stat-num{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:800;
  font-size:clamp(2.4rem,3.4vw,3.2rem);
  color:var(--accent);
  line-height:1;
  letter-spacing:-0.05em;
  margin-bottom:8px;
}
.stat-item .stat-label{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--ink);
  margin-bottom:4px;
}
.stat-item .stat-sub{
  font-size:12.5px;
  color:var(--ink-soft);
  line-height:1.35;
}
[data-theme="dark"] .stat-item{
  background:#1F1D1B;
  border-color:rgba(255,255,255,.06);
}
@media(max-width:860px){
  .stat-row{grid-template-columns:repeat(2,1fr);gap:16px;}
}
@media(max-width:480px){
  .stat-row{grid-template-columns:1fr;gap:14px;}
}

/* Worked at */
.worklogos{margin-top:52px;padding-top:0;}
.worklogos .section-label{display:flex;align-items:center;gap:8px;margin-bottom:20px;}
.worklogos .section-label .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;display:inline-block;}
.worklogos .section-label span{font-family:'IBM Plex Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);}
.work-row{display:flex;flex-direction:column;gap:14px;}
.work-item{
  display:grid;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:18px;
  border:1px solid rgba(22,20,18,.05);border-radius:18px;background:#FFFFFF;
  padding:18px 24px;
  box-shadow:0 6px 20px rgba(22,20,18,.04);
  transition:transform .2s, box-shadow .2s;
}
.work-item:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(22,20,18,.08);}
.work-company{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:700;line-height:1.2;letter-spacing:-0.02em;color:var(--ink);
}
.work-role{
  font-size:0.95rem;font-weight:500;color:var(--ink-soft);
}
.work-year{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;justify-self:end;
}
@media(max-width:720px){
  .work-item{grid-template-columns:1fr;gap:6px;}
  .work-year{justify-self:start;}
}

/* Beyond the pixel marquee scrolling gallery (Right to Left) */
.beyond-wrap{margin-top:60px;}
.beyond-wrap .section-label{display:flex;align-items:center;gap:8px;margin-bottom:22px;}
.beyond-wrap .section-label .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;display:inline-block;}
.beyond-wrap .section-label span{font-family:'IBM Plex Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);}
.beyond-gallery{
  width:100%;
  overflow:hidden;
  position:relative;
  padding:4px 0 12px;
  mask-image: linear-gradient(to right, transparent 0%, black 6%, black 94%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 6%, black 94%, transparent 100%);
}
.beyond-track{
  display:flex;
  width:max-content;
  gap:18px;
  animation:beyond-scroll-rtl 32s linear infinite;
  will-change:transform;
}
.beyond-gallery:hover .beyond-track{animation-play-state:paused;}
.beyond-gallery .photo-card{
  flex:0 0 clamp(190px, 24vw, 230px);
  margin:0;border-radius:20px;overflow:hidden;position:relative;
  background:#FFFFFF;border:1px solid rgba(22, 20, 18, 0.04);
  box-shadow:0 8px 24px rgba(22, 20, 18, 0.05);
  transition:transform .25s, box-shadow .25s;
}
.beyond-gallery .photo-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(22, 20, 18, 0.12);}
.beyond-gallery .photo-card img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;}

@keyframes beyond-scroll-rtl{
  0%{transform:translateX(0);}
  100%{transform:translateX(calc(-50% - 9px));}
}
@keyframes beyond-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(calc(-50% - 9px));}
}

@media (max-width: 700px){
  .stat-row{gap:16px;}
  .stat-item{min-width:calc(50% - 8px);}
  .work-item{grid-template-columns:1fr;gap:10px;}
  .work-year{justify-self:start;}
  .work-identity{align-items:center;}
  .work-name{white-space:normal;padding-bottom:0;}
  .beyond-track{gap:14px;animation-duration:28s;}
  .photo-card{flex-basis:170px;}
}

@media (prefers-reduced-motion: reduce){
  .beyond-gallery{
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .beyond-track{animation:none;}
  .photo-card{scroll-snap-align:start;}
}

/* ---------- Resume ---------- */
.resume-page-wrap{display:flex;flex-direction:column;align-items:center;gap:32px;margin-top:32px;}
.resume-a4{
  width:100%;max-width:580px;
  background:#FFFFFF;
  border:1px solid rgba(22, 20, 18, 0.05);
  border-radius:12px;
  box-shadow:0 14px 40px rgba(22, 20, 18, 0.04);
  padding:48px 44px;overflow-y:auto;text-align:left;
}
.resume-a4 .r-role-line{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:4px;}
.resume-a4 h2{font-size:1.6rem;margin-bottom:8px;}
.resume-a4 .r-contact{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);margin-bottom:26px;line-height:1.7;}
.resume-a4 h4{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--accent-dark);border-bottom:1px solid var(--line);padding-bottom:8px;margin:26px 0 14px;
}
.resume-a4 .a4-role{margin-bottom:18px;}
.resume-a4 .a4-role .role-head{display:flex;justify-content:space-between;gap:12px;font-weight:600;font-size:13px;}
.resume-a4 .a4-role .role-org{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);margin:2px 0 6px;}
.resume-a4 .a4-role p{font-size:12.5px;color:var(--ink-soft);margin:0;line-height:1.6;}
.resume-a4 .a4-skills{display:flex;flex-wrap:wrap;gap:7px;}
.resume-a4 .a4-skills span{
  font-family:'IBM Plex Mono',monospace;font-size:10px;padding:5px 10px;border-radius:6px;
  background:var(--accent-tint);color:var(--accent-dark);
}
.download-gate{width:100%;max-width:420px;text-align:center;}
.download-gate p{color:var(--ink-soft);font-size:13.5px;margin:0 0 16px;}
.download-form{display:flex;gap:8px;}
.download-form input{
  flex:1;padding:12px 18px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface-raised);font-family:'Inter',sans-serif;font-size:13.5px;color:var(--ink);
}
.download-form input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.download-form button{white-space:nowrap;}
#resumeDownload{display:none;margin:0 auto;}
#resumeDownload.show{display:inline-flex;}

/* ---------- Playground ---------- */
.pg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:12px;}
.pg-card{padding:0;overflow:hidden;}
.pg-thumb{
  height:220px;display:flex;align-items:center;justify-content:center;
  background: rgba(255, 255, 255, 0.2);
  overflow:hidden;
}
.pg-thumb img{width:100%;height:100%;object-fit:cover;}
.pg-thumb svg{width:36px;height:36px;opacity:.45;color:var(--accent-dark);}
.pg-card .pg-body{padding:18px;}
.pg-card h4{font-size:1rem;margin-bottom:6px;}
.pg-card p{font-size:12.5px;color:var(--ink-soft);margin:0;}
.pg-card .pg-live{
  display:inline-flex;align-items:center;gap:5px;margin-top:10px;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--accent);
}
.pg-card .pg-live:hover{text-decoration:underline;}
@media(max-width:760px){.pg-grid{grid-template-columns:1fr;}}

/* ---------- Home What I Do ---------- */
.home-whatido{
  max-width:760px;
  margin:54px auto 0;
  padding:34px 0 0;
  border-top:1px solid var(--line);
  text-align:center;
}
.home-whatido .eyebrow{display:block;margin-bottom:14px;}
.home-whatido p{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:clamp(1.55rem,3vw,2.35rem);
  font-weight:700;
  line-height:1.28;
  letter-spacing:-.01em;
  margin:0 auto;
  color:var(--ink);
}
.home-whatido .accent{color:var(--accent);}

/* ---------- Footer ---------- */
/* ---------- Footer ---------- */
footer{
  background: #FFFFFF;
  color: var(--ink);
  padding:48px 0 32px;margin-top:60px;
  border:1px solid rgba(22, 20, 18, 0.05);
  border-bottom:none;
  border-radius:24px 24px 0 0;
  overflow:hidden;
  box-shadow:0 -8px 30px rgba(22,20,18,.03);
  width:min(1040px, calc(100% - 48px));
  margin-left:auto;margin-right:auto;
}
footer .footer-inner{max-width:1040px;margin:0 auto;padding:0 24px;text-align:center;}

footer .footer-badge-wrap{display:flex;justify-content:center;margin-bottom:28px;}
footer .footer-status-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 22px;border-radius:999px;
  background:#FFFFFF;border:1px solid rgba(22,20,18,.08);
  box-shadow:0 4px 18px rgba(22,20,18,.04);
  font-size:11px;letter-spacing:.14em;color:var(--ink-soft);
  font-family:'IBM Plex Mono',monospace;
}
footer .footer-status-pill .dot{
  width:8px;height:8px;border-radius:50%;background:var(--accent);
  flex-shrink:0;box-shadow:0 0 0 3px rgba(224,99,30,.2);
}

footer .footer-tagline{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:700;color:var(--ink);
  font-size:clamp(1.75rem,3.8vw,2.6rem);
  line-height:1.24;letter-spacing:-.02em;
  max-width:760px;margin:0 auto 28px;text-align:center;
}
footer .footer-tagline .accent{color:var(--accent);}

/* Email Pill Box */
footer .footer-email-box{
  display:flex;justify-content:center;
  margin:28px 0 42px;
  padding:0 12px;
}
footer .footer-email-pill{
  display:inline-flex;align-items:center;justify-content:space-between;
  gap:16px;
  padding:8px 10px 8px 10px;
  background:#FFFFFF;
  border:1px solid rgba(22,20,18,.11);
  border-radius:20px;
  box-shadow:0 6px 24px rgba(22,20,18,.04);
  transition:border-color .2s, box-shadow .2s;
  max-width:100%;
}
footer .footer-email-pill:hover{
  border-color:rgba(224,99,30,.35);
  box-shadow:0 10px 30px rgba(22,20,18,.08);
}
footer .pill-left{
  display:inline-flex;align-items:center;gap:14px;
  text-decoration:none;color:var(--ink);
}
footer .pill-icon-chip{
  width:38px;height:38px;border-radius:12px;
  background:rgba(22,20,18,.035);
  border:1px solid rgba(22,20,18,.06);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);
  flex-shrink:0;
  transition:background .2s, color .2s, border-color .2s;
  position:relative;
}
footer .pill-left:hover .pill-icon-chip{
  background:rgba(224,99,30,.08);
  color:var(--accent);
  border-color:rgba(224,99,30,.2);
}
footer .email-text{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:700;font-size:clamp(1.1rem, 2.2vw, 1.45rem);
  color:var(--ink);letter-spacing:-.01em;
  padding:0 6px 0 2px;
  word-break:break-word;
}
footer .copy-btn{
  cursor:pointer;background:rgba(22,20,18,.035);
  border:1px solid rgba(22,20,18,.06);
}
footer .copy-btn:hover{
  background:rgba(224,99,30,.08);
  color:var(--accent);
  border-color:rgba(224,99,30,.2);
}
footer .copy-toast{
  position:absolute;top:-32px;left:50%;transform:translateX(-50%);
  background:var(--ink);color:#FFFFFF;font-family:'IBM Plex Mono',monospace;
  font-size:10px;padding:3px 8px;border-radius:6px;
  opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;
  white-space:nowrap;
}
footer .copy-btn.copied .copy-toast{
  opacity:1;transform:translateX(-50%) translateY(-2px);
}

footer .footer-row-simple{
  display:flex;justify-content:center;align-items:center;
  padding-top:24px;border-top:1px solid rgba(22,20,18,.06);
}
footer .flinks{display:flex;gap:36px;justify-content:center;}
footer .flinks a{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  text-transform:uppercase;letter-spacing:.16em;
  color:var(--ink-soft);transition:color .2s;
}
footer .flinks a:hover{color:var(--accent);}

/* Dark Mode Footer */
[data-theme="dark"] footer{background:#1F1D1B;border-color:rgba(255,255,255,.06);}
[data-theme="dark"] footer .footer-status-pill{background:#1F1D1B;border-color:rgba(255,255,255,.08);color:var(--ink-soft);}
[data-theme="dark"] footer .footer-email-pill{background:#1F1D1B;border-color:rgba(255,255,255,.1);}
[data-theme="dark"] footer .pill-icon-chip{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--ink-soft);}
[data-theme="dark"] footer .footer-row-simple{border-top-color:rgba(255,255,255,.06);}
@media(max-width:600px){footer .footer-row{flex-direction:column;align-items:flex-start;} footer{width:calc(100% - 20px);}}

/* ---------- Page-transition fade ---------- */
.page-body{animation:pgfade .35s ease both;}
@keyframes pgfade{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

@media(max-width:760px){
  .case-view{padding-top:0;}
  .nav-tabs{gap:2px;}
  .nav-tabs a{padding:8px 10px;font-size:10px;}
}
