/* ══════════════════ TOKENS (light theme — single theme) ══════════════════ */
:root{
  --bg:#f6f4ef;
  --bg-2:#efece4;
  --card:#ffffff;
  --card-2:#f7f5ef;
  --line:rgba(25,20,10,.14);
  --line-soft:rgba(25,20,10,.08);
  --text:#1c1913;
  --muted:#57524a;
  --muted-2:#8a8478;
  --gold:#9a6409;
  --gold-2:#7a4e07;
  --gold-grad:linear-gradient(120deg,#a86a10 0%,#8a560b 55%,#6f4606 100%);
  --orange-btn:linear-gradient(135deg,#f2ab34 0%,#e0900f 55%,#c97c08 100%);
  --input-bg:#ffffff;
  --media-bg:#e7e2d7;
  --error:#c0392b;
  --success:#1f8a4c;
  --header-bg:rgba(255,255,255,.82);
  --scrim:rgba(28,22,12,.45);
  --toast-bg:rgba(255,255,255,.97);
  --menu-bg:rgba(255,255,255,.97);
  --chip-bg:repeating-linear-gradient(45deg, rgba(25,20,10,.03) 0 1px, transparent 1px 4px),linear-gradient(160deg, rgba(255,255,255,.97), rgba(247,245,239,.95));
  --grain-opacity:.05;
  --shadow-card:0 14px 34px rgba(30,24,12,.12);
  --shadow-card-hover:0 18px 40px rgba(30,24,12,.16);
  --shadow-header:0 8px 28px rgba(30,24,12,.10);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --r-lg:20px;
  --r-md:14px;
  --pad:clamp(20px,5vw,72px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  width:100%;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
body::before{ /* soft vignette glow */
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(900px 500px at 85% -5%, rgba(232,163,61,.035), transparent 60%),
    radial-gradient(800px 600px at 10% 110%, rgba(88,80,220,.04), transparent 60%);
}
body::after{ /* film grain */
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:var(--grain-opacity);
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}
::selection{background:rgba(232,163,61,.28);color:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}

.wrap{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 var(--pad)}

/* ══════════════════ HEADER ══════════════════ */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:72px;display:flex;align-items:center;
  background:var(--header-bg);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-bottom:1px solid var(--line-soft);
  transition:box-shadow .3s;
}
header.scrolled{box-shadow:var(--shadow-header)}
.header-in{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between}
.logo{font-family:var(--serif);font-size:1.35rem;font-weight:700;letter-spacing:.01em}
.logo b{font-weight:700;color:var(--text)}
.logo em{font-style:italic;font-weight:500;color:#cfc9bd}
.logo .dot{color:var(--gold)}
.nav-desktop{display:none;align-items:center;gap:30px}
.nav-desktop a{font-size:.82rem;font-weight:500;letter-spacing:.06em;color:var(--muted);transition:color .25s}
.nav-desktop a:hover{color:var(--gold-2)}
.nav-desktop a.nav-cta{
  color:#1c1204;background:var(--orange-btn);
  padding:10px 20px;border-radius:999px;font-weight:600;
  box-shadow:0 6px 20px rgba(232,137,12,.28);
  transition:transform .25s,box-shadow .25s;
}
.nav-desktop a.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(232,137,12,.4);color:#1c1204}
.nav-resume{
  display:none;align-items:center;gap:8px;
  font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--gold-2)!important;
  border:1px solid rgba(232,163,61,.45);padding:9px 18px;border-radius:999px;
  transition:transform .25s,background .25s,border-color .25s;
}
.nav-resume:hover{background:rgba(232,163,61,.12);border-color:var(--gold);transform:translateY(-1px)}
.burger{
  width:44px;height:44px;border:1px solid var(--line);border-radius:12px;
  background:rgba(255,255,255,.03);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;transition:border-color .25s;
}
.burger:hover{border-color:rgba(232,163,61,.5)}

.burger span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;transition:.3s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile overlay menu */
.menu{
  position:fixed;inset:0;z-index:99;background:var(--menu-bg);
  backdrop-filter:blur(20px);
  display:flex;flex-direction:column;justify-content:center;
  padding:90px var(--pad) 40px;
  opacity:0;pointer-events:none;transition:opacity .35s;
}
.menu.open{opacity:1;pointer-events:auto}
.menu a.mlink{
  font-family:var(--serif);font-size:clamp(2rem,8vw,3rem);font-weight:600;
  padding:12px 0;border-bottom:1px solid var(--line-soft);
  display:flex;align-items:baseline;gap:16px;color:var(--text);
  transform:translateY(18px);opacity:0;transition:.45s;
}
.menu.open a.mlink{transform:none;opacity:1}
.menu a.mlink i{font-family:var(--mono);font-style:normal;font-size:.8rem;color:var(--gold);letter-spacing:.2em}
.menu a.mlink:hover{color:var(--gold-2)}
.menu .menu-foot{margin-top:34px;font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;color:var(--muted-2)}

/* ══════════════════ HERO ══════════════════ */
#home{padding:140px 0 40px;position:relative;z-index:1;overflow-x:hidden;overflow-x:clip}
.hero-grid{display:flex;flex-direction:column;gap:56px}
.badge{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--line);border-radius:999px;
  padding:9px 18px;font-family:var(--mono);font-size:.68rem;
  letter-spacing:.32em;color:var(--muted);background:rgba(255,255,255,.02);
}
.badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 0 rgba(143,227,174,.5);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(143,227,174,0)}100%{box-shadow:0 0 0 0 rgba(143,227,174,0)}}
h1{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(3rem,10vw,5.6rem);line-height:1.04;
  letter-spacing:-.01em;margin:26px 0 20px;
}
h1 .accent{
  font-style:italic;font-weight:600;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.role-line{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.role-line .dash{width:26px;height:1px;background:var(--gold)}
.role-line span{font-family:var(--mono);font-size:.72rem;letter-spacing:.4em;color:var(--gold)}
.role-line .rule{flex:1;height:1px;background:var(--line)}
.lede{color:var(--muted);font-size:1.02rem;line-height:1.8;max-width:560px}
.hero-cta{display:flex;flex-direction:column;align-items:flex-start;gap:22px;margin:34px 0}
.btn-primary{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--orange-btn);color:#1c1204;
  font-weight:600;font-size:.95rem;padding:17px 34px;border-radius:999px;border:none;
  box-shadow:0 10px 30px rgba(232,137,12,.32);
  transition:transform .25s,box-shadow .25s;
}
.btn-primary i{font-size:.8rem}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(232,137,12,.45)}
.btn-resume{
  display:none;align-items:center;gap:10px;
  border:1px solid rgba(232,163,61,.5);color:var(--gold-2);
  background:rgba(232,163,61,.06);
  font-weight:600;font-size:.92rem;padding:16px 30px;border-radius:999px;
  transition:transform .25s,background .25s,box-shadow .25s;
}
.btn-resume:hover{background:rgba(232,163,61,.14);transform:translateY(-3px);box-shadow:0 12px 28px rgba(232,137,12,.18)}
.link-ghost{
  font-weight:600;font-size:.92rem;color:var(--text);
  border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:4px;
  transition:color .25s,border-color .25s;
}
.link-ghost:hover{color:var(--gold-2);border-color:var(--gold)}
.hero-meta{display:flex;flex-direction:column;gap:14px;font-size:.92rem;color:var(--muted)}
.hero-meta div{display:flex;align-items:center;gap:12px}
.hero-meta i{color:var(--gold);width:18px;text-align:center}
.hero-meta a:hover{color:var(--gold-2)}

/* hero portrait */
.hero-visual{display:flex;justify-content:center}
.portrait{position:relative;width:min(78vw,340px);aspect-ratio:1}
.portrait .glow{position:absolute;inset:-10%;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.13),rgba(59,110,246,.06) 45%,transparent 65%);filter:blur(12px);pointer-events:none;z-index:-1}
.portrait .photo{
  position:absolute;inset:0;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 35% 30%,#2a2d36,#141519 70%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 18px 4px rgba(255,255,255,.55),0 0 45px 14px rgba(255,255,255,.22),0 0 90px 30px rgba(255,255,255,.08);
}
.portrait .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.portrait .photo img.loaded{opacity:1}
.portrait .photo span{font-family:var(--serif);font-size:5.2rem;font-weight:700;font-style:italic;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.photo-edit{
  position:absolute;bottom:10px;right:10px;z-index:3;
  width:42px;height:42px;border-radius:50%;
  border:1px solid var(--line);background:rgba(10,10,12,.85);color:var(--gold-2);
  display:none;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);transition:.25s;font-size:.85rem;
}
.photo-edit:hover{border-color:var(--gold);transform:scale(1.08)}
body.admin .photo-edit{display:flex}
.chip-float{
  position:absolute;z-index:2;
  background:var(--chip-bg);
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;padding:13px 20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 18px 42px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.05);
  animation:float 6.5s ease-in-out infinite;
}
.chip-float small{display:block;font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.28em;color:var(--muted-2);margin-bottom:9px}
.chip-float .brand-row{display:flex;align-items:center;gap:9px}
.chip-float b{font-family:var(--sans);font-size:1.18rem;font-weight:700;color:var(--text);letter-spacing:-.01em}
.meta-glyph{
  font-size:1.55rem;font-weight:800;line-height:1;font-family:var(--sans);
  background:linear-gradient(90deg,#0064e0,#0081fb);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ms-logo{display:inline-grid;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);gap:2px}
.ms-logo i{display:block;width:9px;height:9px;border-radius:1px;font-style:normal}
.ms-logo i:nth-child(1){background:#f25022}
.ms-logo i:nth-child(2){background:#7fba00}
.ms-logo i:nth-child(3){background:#00a4ef}
.ms-logo i:nth-child(4){background:#ffb900}
.chip-meta{top:4%;left:-18%}
.chip-ms{bottom:10%;right:-16%;animation-delay:2.2s}
@media (max-width:640px){
  .chip-float{padding:10px 15px;border-radius:14px}
  .chip-float small{font-size:.56rem;margin-bottom:6px}
  .chip-float b{font-size:1rem}
  .meta-glyph{font-size:1.3rem}
  .ms-logo{grid-template-columns:repeat(2,7px);grid-template-rows:repeat(2,7px)}
  .chip-meta{top:2%;left:-8%}
  .chip-ms{bottom:8%;right:-8%}
}
@keyframes float{50%{transform:translateY(-7px)}}

/* ══════════════════ MARQUEE ══════════════════ */
.marquee{
  margin:70px 0 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  overflow:hidden;position:relative;z-index:1;background:rgba(255,255,255,.012);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee-track{display:flex;width:max-content;animation:scroll 42s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track .item{
  font-family:var(--serif);font-size:1.3rem;font-weight:500;color:#c9c5bc;
  padding:20px 32px;white-space:nowrap;display:flex;align-items:center;gap:32px;
}
.marquee-track .item::after{content:'✦';color:var(--gold);font-size:.85rem;opacity:.8}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ══════════════════ SECTIONS ══════════════════ */
section{padding:96px 0;position:relative;z-index:1}
.sec-label{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.42em;color:var(--gold);
  margin-bottom:20px;display:flex;align-items:center;gap:14px;
}
.sec-label::after{content:'';width:52px;height:1px;background:linear-gradient(90deg,rgba(232,163,61,.6),transparent)}
h2{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(2.1rem,6.4vw,3.3rem);line-height:1.12;letter-spacing:-.01em;
  margin-bottom:22px;
}
h2 .accent{font-style:italic;font-weight:600;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-copy{color:var(--muted);line-height:1.85;font-size:.98rem;max-width:640px}
.center{text-align:center}
.center .sec-label{justify-content:center}
.center .sec-label::after{display:none}
.center .sec-copy{margin:0 auto}

/* ── About ── */
.about-grid{display:flex;flex-direction:column;gap:44px}
.about-copy p{color:var(--muted);line-height:1.9;font-size:.98rem;margin-bottom:22px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 20px;margin:38px 0}
.stat .num{
  font-family:var(--serif);font-weight:700;font-size:clamp(2rem,6vw,2.7rem);
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat .lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;color:var(--muted);margin-top:8px}
.pills{display:grid;gap:14px;margin-top:8px;grid-template-columns:minmax(0,1fr)}
.pill{
  display:flex;align-items:center;gap:14px;
  border:1px solid var(--line);border-radius:999px;
  padding:16px 24px;font-size:.92rem;color:#d5d2ca;
  background:rgba(255,255,255,.02);transition:border-color .25s,transform .25s;
}
.pill:hover{border-color:rgba(232,163,61,.45);transform:translateX(6px)}
.pill::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px rgba(232,163,61,.7);flex-shrink:0}

/* ── Credentials ── */
.cred-grid{display:grid;gap:18px;margin-top:44px;grid-template-columns:minmax(0,1fr)}
.cred-card{
  position:relative;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:28px 26px;
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.cred-card:hover{transform:translateY(-6px);border-color:rgba(232,163,61,.4);box-shadow:var(--shadow-card)}
.cred-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.cred-icon{
  width:52px;height:52px;border-radius:14px;flex-shrink:0;
  background:rgba(232,163,61,.1);border:1px solid rgba(232,163,61,.22);
  display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.2rem;
}
.cred-issuer{font-family:var(--mono);font-size:.68rem;letter-spacing:.3em;color:var(--gold);padding-top:6px}
.cred-num{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:var(--muted-2);letter-spacing:.1em}
.cred-card h3{font-family:var(--serif);font-size:1.32rem;font-weight:600;line-height:1.35;margin-bottom:14px}
.cred-meta{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--muted)}

/* ── Skills ── */
.skill-grid{display:grid;gap:20px;margin-top:44px;grid-template-columns:minmax(0,1fr)}
.skill-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:30px 28px;transition:border-color .3s,transform .3s;
}
.skill-card:hover{border-color:rgba(232,163,61,.35);transform:translateY(-4px)}
.skill-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:26px}
.skill-head h3{font-family:var(--serif);font-size:1.5rem;font-weight:600}
.skill-head span{font-family:var(--mono);font-size:.75rem;color:var(--muted-2);letter-spacing:.12em}
.skill-row{margin-bottom:20px}
.skill-row:last-child{margin-bottom:0}
.skill-info{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.skill-info b{font-weight:500;font-size:.9rem;color:#ddd9d0}
.skill-info span{font-family:var(--mono);font-size:.78rem;color:var(--gold)}
.bar{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.bar i{
  display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,#f6b73c,#e8890c);
  box-shadow:0 0 12px rgba(232,137,12,.5);
  transition:width 1.3s cubic-bezier(.22,.8,.3,1);
}

/* ── Projects ── */
.filters{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 40px}
.fchip{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;
  padding:12px 24px;border-radius:999px;border:1px solid var(--line);
  background:transparent;color:var(--muted);transition:.25s;
}
.fchip:hover{border-color:rgba(232,163,61,.5);color:var(--gold-2)}
.fchip.active{background:var(--orange-btn);border-color:transparent;color:#1c1204;font-weight:600;box-shadow:0 8px 22px rgba(232,137,12,.3)}
.proj-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
.proj-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:30px 28px;display:flex;flex-direction:column;min-width:0;
  transition:transform .3s,border-color .3s,box-shadow .3s,opacity .35s;
}
.proj-card:hover{transform:translateY(-6px);border-color:rgba(232,163,61,.4);box-shadow:var(--shadow-card-hover)}
.proj-card.hide{display:none}
.proj-cover{margin:-30px -28px 22px;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;aspect-ratio:16/9;background:var(--media-bg);border-bottom:1px solid var(--line-soft)}
.proj-cover img{width:100%;height:100%;object-fit:cover}
.proj-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.proj-cat{font-family:var(--mono);font-size:.66rem;letter-spacing:.3em;color:var(--gold)}
.proj-idx{font-family:var(--mono);font-size:.74rem;color:var(--muted-2);letter-spacing:.14em}
.proj-card h3{font-family:var(--serif);font-size:1.42rem;font-weight:600;line-height:1.3;margin-bottom:16px;overflow-wrap:break-word}
.proj-card p{color:var(--muted);font-size:.9rem;line-height:1.8;flex:1;overflow-wrap:break-word}
.proj-foot{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-top:26px;padding-top:22px;border-top:1px solid var(--line-soft);
}
.link-chip{
  display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%;
  font-family:var(--mono);font-size:.72rem;color:#cfccc4;
  border:1px solid var(--line);border-radius:999px;padding:10px 18px;
  background:rgba(255,255,255,.02);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.link-chip i{color:var(--gold);font-size:.8rem;flex-shrink:0}
.link-chip.wip{color:var(--gold-2);border-color:rgba(232,163,61,.4);background:rgba(232,163,61,.05)}
.p-act.pv.wip:hover{background:rgba(232,163,61,.12);border-color:var(--gold);color:var(--gold-2)}
/* toast */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translate(-50%,16px);z-index:400;
  max-width:min(92vw,480px);text-align:center;
  background:var(--toast-bg);border:1px solid rgba(232,163,61,.45);
  color:var(--gold-2);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  padding:14px 26px;border-radius:999px;
  box-shadow:0 18px 50px rgba(0,0,0,.6);
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.proj-actions{display:flex;gap:8px;flex-shrink:0}
.p-act{
  width:42px;height:42px;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:var(--text);
  display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;
  transition:.25s;
}
.p-act.pv:hover{background:var(--orange-btn);border-color:transparent;color:#1c1204}
.p-act.pv:disabled{opacity:.3;cursor:not-allowed}
.p-act.pv:disabled:hover{background:transparent;border-color:var(--line);color:var(--text)}
.p-act.ed:hover{border-color:var(--gold);color:var(--gold-2)}
.p-act.del:hover{border-color:#e15b5b;color:var(--error)}
.proj-card.featured{border-color:rgba(232,163,61,.55);box-shadow:0 0 0 1px rgba(232,163,61,.25),0 20px 60px rgba(232,137,12,.12)}
.admin-only{display:none!important}
body.admin .admin-only{display:inline-flex!important}
.empty-proj{color:var(--muted-2);font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;padding:40px 0;text-align:center;grid-column:1/-1}

/* ── Contact ── */
.contact-grid{display:grid;gap:20px;margin-top:48px;grid-template-columns:minmax(0,1fr)}
.info-card{
  display:flex;align-items:center;gap:20px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:26px;transition:border-color .3s,transform .3s;
}
.info-card:hover{border-color:rgba(232,163,61,.4);transform:translateY(-4px)}
.info-icon{
  width:56px;height:56px;border-radius:16px;flex-shrink:0;
  background:rgba(232,163,61,.1);border:1px solid rgba(232,163,61,.22);
  display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.25rem;
}
.info-card small{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.32em;color:var(--gold);margin-bottom:7px}
.info-card b{font-weight:600;font-size:1rem;color:var(--text)}
.info-card p{color:var(--muted);font-size:.85rem;margin-top:4px}
.info-card.big .bigval{font-family:var(--serif);font-size:2.2rem;font-weight:700;line-height:1}
.form-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:32px 28px;
}
.f-row{display:grid;gap:18px;margin-bottom:18px;grid-template-columns:minmax(0,1fr)}
.field label{
  display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.3em;
  color:var(--muted);margin-bottom:10px;
}
.field label i{color:var(--gold);font-style:normal}
.field input,.field textarea{
  width:100%;background:var(--input-bg);border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;color:var(--text);font-family:var(--sans);font-size:.94rem;
  outline:none;transition:border-color .25s,box-shadow .25s;resize:vertical;
}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.field input:focus,.field textarea:focus{border-color:rgba(232,163,61,.6);box-shadow:0 0 0 4px rgba(232,163,61,.1)}
.form-status{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;margin-top:16px;min-height:1.2em}
.form-status.ok{color:var(--success)}
.form-status.err{color:var(--error)}

/* ── Footer ─ */
footer{border-top:1px solid var(--line-soft);padding:80px 0 34px;position:relative;z-index:1;background:rgba(255,255,255,.012)}
.foot-grid{display:grid;gap:44px;grid-template-columns:minmax(0,1fr)}
.foot-name{font-family:var(--serif);font-size:2rem;font-weight:700;margin-bottom:18px}
.foot-name .accent{font-style:italic;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.foot-grid p{color:var(--muted);font-size:.9rem;line-height:1.8;max-width:380px}
.socials{display:flex;gap:14px;margin-top:26px}
.socials a{
  width:48px;height:48px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--muted);
  transition:.25s;font-size:1rem;
}
.socials a:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-4px);box-shadow:0 10px 24px rgba(232,163,61,.18)}
.foot-h{font-family:var(--mono);font-size:.66rem;letter-spacing:.36em;color:var(--gold);margin-bottom:22px}
.foot-links{list-style:none;display:grid;gap:13px}
.foot-links a{color:var(--muted);font-size:.92rem;transition:.2s;display:inline-flex;align-items:center;gap:8px}
.foot-links a::before{content:'—';color:var(--gold);opacity:0;transition:.2s;margin-left:-18px}
.foot-links a:hover{color:var(--gold-2);padding-left:18px}
.foot-links a:hover::before{opacity:1}
.foot-contact{display:grid;gap:16px}
.foot-contact div{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:.88rem}
.foot-contact i{color:var(--gold);width:18px;text-align:center}
.foot-bottom{
  margin-top:64px;padding-top:28px;border-top:1px solid var(--line-soft);
  display:flex;flex-direction:column;gap:18px;align-items:flex-start;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;color:var(--muted-2);
}
.foot-actions{display:flex;align-items:center;gap:16px}
.admin-lock{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
  background:none;color:var(--muted-2);
  display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;
  transition:.25s;
}
.admin-lock:hover{border-color:var(--gold);color:var(--gold)}
body.admin .admin-lock{border-color:rgba(232,163,61,.6);color:var(--gold)}
.to-top{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.3em;color:var(--muted);
  background:none;border:none;transition:color .25s;
}
.to-top:hover{color:var(--gold-2)}
.to-top .circ{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;transition:.25s;
}
.to-top:hover .circ{border-color:var(--gold);transform:translateY(-4px)}

/* ══════════════════ PASSWORD MODAL ══════════════════ */
.pw-overlay{
  position:fixed;inset:0;z-index:300;background:var(--scrim);
  backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;
  padding:20px;opacity:0;pointer-events:none;transition:opacity .3s;
}
.pw-overlay.open{opacity:1;pointer-events:auto}
.pw-box{
  width:min(92vw,380px);background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:38px 30px 28px;text-align:center;
  transform:translateY(16px);transition:transform .3s;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.pw-overlay.open .pw-box{transform:none}
.pw-icon{
  width:64px;height:64px;margin:0 auto 20px;border-radius:50%;
  background:rgba(232,163,61,.1);border:1px solid rgba(232,163,61,.3);
  display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.35rem;
}
.pw-box h3{font-family:var(--serif);font-size:1.55rem;font-weight:600;margin-bottom:8px}
.pw-box p{color:var(--muted);font-size:.85rem;margin-bottom:22px;line-height:1.6}
.pw-box input{
  width:100%;background:var(--input-bg);border:1px solid var(--line);border-radius:12px;
  padding:15px 18px;color:var(--text);font-size:.95rem;text-align:center;
  letter-spacing:.25em;outline:none;transition:border-color .25s;
}
.pw-box input:focus{border-color:rgba(232,163,61,.6)}
.pw-err{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--error);min-height:1.2em;margin:12px 0 4px}
.pw-box .btn-primary{width:100%;justify-content:center;margin-top:8px}
.pw-cancel{background:none;border:none;color:var(--muted);font-size:.82rem;margin-top:18px;transition:color .25s}
.pw-cancel:hover{color:var(--text)}

/* ══════════════════ ADMIN BAR ══════════════════ */
.admin-bar{
  position:fixed;bottom:18px;left:50%;transform:translate(-50%,110px);z-index:200;
  display:flex;align-items:center;gap:12px;
  background:var(--toast-bg);border:1px solid rgba(232,163,61,.35);
  border-radius:999px;padding:10px 12px 10px 20px;
  backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.6);
  transition:transform .45s cubic-bezier(.22,.8,.3,1);
  max-width:calc(100vw - 24px);
}
.admin-bar.show{transform:translate(-50%,0)}
.admin-bar .ab-label{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;color:var(--gold-2);white-space:nowrap}
.admin-bar button{border-radius:999px;font-size:.76rem;font-weight:600;padding:10px 18px;transition:.25s;white-space:nowrap}
#openAdminPanel{background:var(--orange-btn);border:none;color:#1c1204}
#openAdminPanel:hover{transform:translateY(-2px)}
#adminLogout{background:transparent;border:1px solid rgba(240,138,138,.4);color:var(--error)}
#adminLogout:hover{background:rgba(240,138,138,.1)}

/* ══════════════════ ADMIN PANEL ══════════════════ */
.admin-overlay{
  position:fixed;inset:0;z-index:250;background:var(--scrim);
  backdrop-filter:blur(12px);overflow-y:auto;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.admin-overlay.open{opacity:1;pointer-events:auto}
.admin-sheet{max-width:760px;margin:0 auto;padding:90px 20px 120px}
.admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.admin-head h3{font-family:var(--serif);font-size:1.7rem;font-weight:700;display:flex;align-items:center;gap:12px}
.admin-head h3 i{color:var(--gold)}
.admin-close{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--text);font-size:1rem;transition:.25s;
}
.admin-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(90deg)}
.admin-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 24px;margin-bottom:18px}
.admin-card h4{font-family:var(--serif);font-size:1.22rem;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.admin-card h4 i{color:var(--gold);font-size:1rem}
.admin-card .hint{color:var(--muted-2);font-size:.78rem;line-height:1.65;margin-bottom:16px}
.a-status{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;margin-top:12px;min-height:1.1em}
.a-status.ok{color:var(--success)}
.a-status.err{color:var(--error)}
.a-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.a-btn{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--orange-btn);border:none;color:#1c1204;
  font-weight:600;font-size:.82rem;padding:12px 22px;border-radius:999px;
  transition:.25s;
}
.a-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(232,137,12,.3)}
.a-btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.a-btn.ghost:hover{border-color:var(--gold);color:var(--gold-2);box-shadow:none;transform:none}
.a-btn.danger{background:transparent;border:1px solid rgba(240,138,138,.4);color:var(--error)}
.a-btn.danger:hover{background:rgba(240,138,138,.08);box-shadow:none;transform:none}
.a-btn.sm{padding:10px 18px;font-size:.76rem}
.photo-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.photo-row>img{width:92px;height:92px;border-radius:50%;object-fit:cover;border:2px solid rgba(232,163,61,.4);flex-shrink:0}
.photo-row .col{display:flex;flex-direction:column;gap:10px;align-items:stretch;flex:1;min-width:220px}
.a-field{margin-bottom:16px}
.a-field>label{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.28em;color:var(--muted);margin-bottom:9px}
.a-field input[type=text],.a-field input[type=password],.a-field input[type=url],.a-field select,.a-field textarea{
  width:100%;background:var(--input-bg);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;color:var(--text);font-family:var(--sans);font-size:.9rem;
  outline:none;transition:border-color .25s;resize:vertical;
}
.a-field input[type=url]{font-family:var(--mono);font-size:.8rem}
.a-field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239b9ea7' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}
.a-field input:focus,.a-field select:focus,.a-field textarea:focus{border-color:rgba(232,163,61,.6)}
.admin-card .hint code{font-family:var(--mono);font-size:.72rem;color:var(--gold-2);background:rgba(232,163,61,.08);padding:1px 6px;border-radius:6px}
.a-file-name{font-family:var(--mono);font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.a-file-name.ready{color:var(--gold-2)}
.a-file-name.current{color:var(--muted-2)}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
@media(min-width:520px){.stat-grid{grid-template-columns:repeat(4,1fr)}}
.stat-box{background:var(--card-2);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 10px;text-align:center}
.stat-num{display:block;font-family:var(--serif);font-size:1.55rem;font-weight:700;color:var(--gold-2)}
.stat-label{display:block;margin-top:4px;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;color:var(--muted-2);text-transform:uppercase}
.days-list{font-family:var(--mono);font-size:.7rem;color:var(--muted);line-height:2;max-height:150px;overflow-y:auto;border-top:1px solid var(--line-soft);padding-top:10px}

/* manage projects list */
.plist{display:flex;flex-direction:column;gap:10px}
.p-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.85rem;background:var(--input-bg)}
.p-row .p-chip{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;color:var(--gold-2);border:1px solid rgba(232,163,61,.35);border-radius:999px;padding:4px 10px;white-space:nowrap;flex-shrink:0}
.p-row .p-info{flex:1;min-width:0}
.p-row .p-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p-row .p-sub{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;color:var(--muted-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p-row .p-btns{display:flex;gap:6px;flex-shrink:0}
.p-row .p-btns button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:.8rem;transition:.2s}
.p-row .p-btns button:hover{border-color:var(--gold);color:var(--gold-2)}
.p-row .p-btns button.del:hover{border-color:rgba(240,138,138,.5);color:var(--error)}
.plist-empty{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--muted-2);border:1px dashed var(--line);border-radius:12px;padding:20px;text-align:center}
.gh-last{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:var(--muted-2);margin-top:10px}

/* ══════════════════ PROJECT GALLERY (drag) ══════════════════ */
.g-viewport{position:relative;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.g-viewport:active{cursor:grabbing}
.g-track{display:flex;will-change:transform}
/* object-fit:contain = poora image dikhe (crop nahi) */
.g-track img{flex:0 0 100%;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;background:var(--media-bg)}
.g-viewport.single img{width:100%;height:100%;object-fit:contain;background:var(--media-bg)}
/* auto-screenshot (Thum.io 1200x675 = exact 16:9) → frame me poori fit (zero crop) */
.g-viewport.auto img{width:100%;height:100%;object-fit:cover;background:var(--media-bg)}
/* auto-screenshot loading spinner */
.auto-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:radial-gradient(circle at 50% 40%,var(--card-2),var(--media-bg));color:var(--muted)}
.auto-loading i{font-size:1.6rem;color:var(--gold)}
.auto-loading small{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em}

/* website card: highlighted link badges */
.site-links{display:flex;gap:10px;margin-top:24px}
.site-link{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 14px;border-radius:12px;font-weight:600;font-size:.92rem;letter-spacing:.02em;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s,color .2s}
.site-link i{font-size:1.05rem}
.site-link.live{background:var(--orange-btn);color:#1c1204;box-shadow:0 8px 20px rgba(232,137,12,.25)}
.site-link.live:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(232,137,12,.4)}
.site-link.source{background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--text)}
.site-link.source:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--gold-2);background:rgba(232,163,61,.06)}
.site-link.wip{background:rgba(255,255,255,.03);border:1px dashed var(--line);color:var(--muted);cursor:default}
/* top-right: admin buttons + index */
.proj-top-right{display:flex;align-items:center;gap:10px}
.site-admin{display:inline-flex;gap:6px}
.site-admin .p-act{width:34px;height:34px;font-size:.72rem}

/* drag handle button — pakdo aur drag karo */
.g-handle{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:4;display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;color:#fff;background:rgba(10,10,14,.72);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 16px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;backdrop-filter:blur(5px);transition:background .2s,border-color .2s,transform .2s}
.g-handle:active{cursor:grabbing;background:rgba(232,163,61,.32);border-color:var(--gold)}
.g-handle:hover{border-color:var(--gold)}
.grip{width:22px;height:10px;background-image:radial-gradient(circle,rgba(255,255,255,.85) 1.3px,transparent 1.4px);background-size:6px 5px;background-position:center}
.g-dots{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:3}
.g-dots button{width:7px;height:7px;border-radius:50%;border:none;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:background .25s,transform .25s}
.g-dots button.on{background:var(--gold);transform:scale(1.25)}
.g-count{position:absolute;top:9px;right:9px;z-index:3;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;background:rgba(0,0,0,.55);padding:3px 9px;border-radius:99px;color:#fff}
.g-prev,.g-next{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:34px;height:34px;border-radius:50%;border:none;background:rgba(0,0,0,.4);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;backdrop-filter:blur(4px)}
.g-viewport:hover .g-prev,.g-viewport:hover .g-next{opacity:1}
.g-prev{left:9px}.g-next{right:9px}
.g-prev:hover,.g-next:hover{background:rgba(232,163,61,.85)}
.proj-cats{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.pin-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;color:var(--gold-2);background:rgba(232,163,61,.1);border:1px solid rgba(232,163,61,.35);border-radius:999px;padding:3px 9px}
.pin-badge i{font-size:.6rem}
.pin-inline{color:var(--gold);font-size:.7rem;margin-left:4px}

/* image count badge (2+ images) — preview behtar */
.img-count-badge{position:absolute;top:9px;left:9px;z-index:3;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);padding:4px 11px;border-radius:999px;color:#fff;backdrop-filter:blur(4px);cursor:grab}
.img-count-badge i{color:var(--gold-2);font-size:.72rem}
/* auto-screenshot badge */
.img-auto-badge{position:absolute;top:9px;right:9px;z-index:3;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;color:var(--gold-2);background:rgba(10,10,14,.72);border:1px solid rgba(232,163,61,.4);border-radius:999px;padding:4px 11px;backdrop-filter:blur(5px)}
.img-auto-badge i{font-size:.68rem}
/* auto-screenshot fail → domain placeholder */
.auto-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:radial-gradient(circle at 50% 40%,var(--card-2),var(--media-bg));color:var(--muted)}
.auto-fallback i{font-size:2rem;color:var(--gold)}
.auto-fallback span{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* cover hover zoom — preview behtar */
.g-viewport img{transition:transform .6s cubic-bezier(.22,.8,.3,1)}
.proj-card:hover .g-viewport img{transform:scale(1.06)}
.lb-stage .g-viewport img{transition:none}

/* view all */
.view-all-wrap{display:flex;justify-content:center;margin-top:34px}
.view-all-btn{display:inline-flex;align-items:center;gap:12px;font-weight:600;font-size:.9rem;color:var(--gold-2);border:1px solid rgba(232,163,61,.5);background:rgba(232,163,61,.06);padding:14px 30px;border-radius:999px;transition:transform .25s,background .25s,box-shadow .25s}
.view-all-btn:hover{background:rgba(232,163,61,.14);transform:translateY(-2px);box-shadow:0 12px 28px rgba(232,137,12,.18)}
.view-all-btn i{font-size:.8rem;transition:transform .25s}
.view-all-btn:hover i{transform:translateX(4px)}

/* #websites section: default (home) me chhupa, sirf /websites page pe dikhe */
#websites{display:none}

/* projects page (saare projects) */
.projects-page #home,.projects-page #about,.projects-page #credentials,.projects-page #skills,.projects-page #contact{display:none}
.projects-page #work{padding-top:130px}
.projects-page header a[href="/projects"]{color:var(--gold-2)}

/* websites page (saari websites) */
.websites-page #home,.websites-page #about,.websites-page #credentials,.websites-page #skills,.websites-page #contact,.websites-page #work{display:none}
.websites-page #websites{display:block;padding-top:130px}
.websites-page header a[href="/websites"]{color:var(--gold-2)}

/* ══════════════════ LIGHTBOX ══════════════════ */
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(4,4,6,.94);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .3s}
.lightbox.show{opacity:1}
.lb-stage{width:min(1100px,94vw);height:min(74vh,760px);border-radius:18px;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.7)}
.lb-stage .g-track img{object-fit:contain}
.lb-close{position:absolute;top:22px;right:26px;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);font-size:1.1rem;cursor:pointer;transition:.25s;z-index:5}
.lb-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(90deg)}
.lb-meta{text-align:center;margin-top:18px;max-width:94vw}
.lb-title{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--text)}
.lb-sub{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--muted);margin-top:7px}

/* ══════════════════ ADMIN: category checks + image manager ══════════════════ */
.cat-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cat-check{display:flex;align-items:center;gap:10px;background:var(--input-bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .2s;font-size:.85rem}
.cat-check:hover{border-color:rgba(232,163,61,.4)}
.cat-check input{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}
.cat-check:has(input:checked){border-color:var(--gold);background:rgba(232,163,61,.08)}
.img-manager{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.img-empty{font-family:var(--mono);font-size:.7rem;color:var(--muted-2)}
.img-thumb{position:relative;width:84px;height:60px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--input-bg)}
.img-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.img-thumb.new{border-color:rgba(232,163,61,.5)}
.img-new-tag{position:absolute;top:3px;left:3px;font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;background:var(--gold);color:#1c1204;padding:1px 5px;border-radius:4px;font-weight:700}
.img-thumb button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.7);color:#fff;font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.img-thumb button:hover{background:#e15b5b}
#projImgAddBtn:disabled{opacity:.4;cursor:not-allowed}

/* ══════════════════ REVEAL ══════════════════ */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.8,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ══════════════════ RESPONSIVE ══════════════════ */
@media(max-width:899px){
  .chip-meta{left:-2%}
  .chip-ms{right:-2%}
  .portrait .glow{display:none}
}
@media(min-width:640px){
  .hero-cta{flex-direction:row;align-items:center;flex-wrap:wrap}
  .pills{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .f-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .f-row.full{grid-template-columns:minmax(0,1fr)}
}
@media(min-width:900px){
  .nav-desktop{display:flex}
  .burger{display:none}
  .hero-grid{flex-direction:row;align-items:center;justify-content:space-between}
  .hero-text{max-width:600px}
  .portrait{width:min(34vw,380px)}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cred-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .skill-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .proj-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .contact-info{display:grid;gap:20px;align-content:start}
  .foot-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr)}
  .foot-bottom{flex-direction:row;justify-content:space-between;align-items:center}
}
@media(min-width:1100px){
  .cred-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ══════════════════ LIGHT-THEME OVERRIDES ══════════════════
   Single-theme (light) codebase — yeh targeted rules base rules ko
   override karte hain (file ke end me hain, cascade se jeet te hain).
   Lightbox (image viewer) dark rehta hai — uspe text light hota hai.
   Image overlays (badges/handles) bhi dark rehte hain (images pe hote
   hain, viewer-style). */
body::before{
  background:
    radial-gradient(900px 500px at 85% -5%, rgba(232,163,61,.07), transparent 60%),
    radial-gradient(800px 600px at 10% 110%, rgba(120,100,60,.05), transparent 60%);
}
.bar{background:rgba(25,20,10,.10)}
.marquee-track .item{color:var(--muted)}
.portrait .photo{
  box-shadow:0 12px 40px rgba(30,24,12,.20), 0 0 0 6px rgba(255,255,255,.6);
}
.portrait .glow{
  background:radial-gradient(circle, rgba(232,163,61,.15), rgba(232,163,61,.05) 45%, transparent 65%);
}
.photo-edit{color:#f5c56b}
.link-chip{color:var(--muted)}
.logo em{color:#6b665c}
.pill{color:#4a463e}
.skill-info b{color:#2e2a24}
.site-link.source{background:var(--card-2)}
.admin-bar{box-shadow:0 18px 50px rgba(30,24,12,.22)}
/* lightbox dark rehta hai (image viewer) — uspe text light */
.lb-title{color:#f4f1ea}
.lb-sub{color:#9b9ea7}
::selection{background:rgba(176,115,15,.25);color:#1c1913}
.pw-box input,
.field input,
.field textarea,
.a-field input,
.a-field select,
.a-field textarea{box-shadow:0 1px 2px rgba(30,24,12,.04)}
