/* ═══════════════════════════════════════════════════════
   ARNAB DEB PORTFOLIO v2 — MAIN CSS
   Aesthetic: Editorial Luxury Dark — like a high-end
   creative magazine printed on midnight paper.
   Fonts: Cormorant Garamond (editorial) + Outfit (clean)
          + JetBrains Mono (technical accents)
════════════════════════════════════════════════════════ */

/* ─── TOKENS ─────────────────────────────────────────── */
:root {
  --ink:        #0B0C0E;       /* near-black background  */
  --ink-2:      #111318;       /* card surface           */
  --ink-3:      #181C22;       /* elevated surface       */
  --border:     rgba(255,255,255,0.06);
  --border-hi:  rgba(200,169,110,0.35); /* gold border   */

  --gold:       #C8A96E;       /* warm gold accent        */
  --gold-lt:    #E8CFA0;       /* lighter gold            */
  --cream:      #F0EBE1;       /* off-white text          */
  --mist:       #8A8F9A;       /* secondary text          */
  --smoke:      #3A3F4A;       /* muted text              */

  --emerald:    #3E7B5E;       /* success / available     */
  --ruby:       #B54A4A;       /* error                   */

  --ff-display: 'Cormorant Garamond', Georgia, serif;
  --ff-body:    'Outfit', sans-serif;
  --ff-mono:    'JetBrains Mono', monospace;

  --ease-expo:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease-circ:   cubic-bezier(0.0, 0.0, 0.2, 1);
  --ease-back:   cubic-bezier(0.34, 1.56, 0.64, 1);

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;
  --r-xl: 32px;

  --max-w: 1360px;
  --pad-x: clamp(20px, 5vw, 80px);
  --section-y: clamp(80px, 10vw, 140px);
}

/* ─── RESET ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;
     scrollbar-width:thin;scrollbar-color:var(--gold) var(--ink-2)}
html::-webkit-scrollbar{width:3px}
html::-webkit-scrollbar-thumb{background:var(--gold)}
body{background:var(--ink);color:var(--cream);
     font-family:var(--ff-body);font-weight:400;line-height:1.6;
     overflow-x:hidden;cursor:none}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{display:block;max-width:100%}
button{cursor:none;border:none;background:none;font-family:inherit}
input,textarea,select{font-family:inherit}

/* ─── GRAIN OVERLAY ──────────────────────────────────── */
.site-grain{
  position:fixed;inset:0;z-index:9998;pointer-events:none;
  opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px;
}

/* ─── SCROLL PROGRESS ────────────────────────────────── */
.scroll-progress-bar{
  position:fixed;top:0;left:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt));
  z-index:9997;transform-origin:left;transform:scaleX(0);
  transition:transform .08s linear;
}

/* ─── CUSTOM CURSOR ──────────────────────────────────── */
.cursor{
  position:fixed;z-index:9999;pointer-events:none;
  width:40px;height:40px;
  transform:translate(-50%,-50%);
  transition:transform .08s var(--ease-expo);
  mix-blend-mode:difference;
}
.cursor-inner{
  width:100%;height:100%;border-radius:50%;
  border:1.5px solid var(--cream);
  transition:width .25s var(--ease-expo),height .25s var(--ease-expo),
             border-radius .25s var(--ease-expo),background .25s;
}
body.c-hover .cursor-inner{
  width:60px;height:60px;
  background:rgba(200,169,110,.15);
  border-color:var(--gold);
}
body.c-click .cursor-inner{
  width:24px;height:24px;background:var(--gold);
}

/* ─── HEADER / NAV ───────────────────────────────────── */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:900;
  padding:28px var(--pad-x);
  transition:padding .4s var(--ease-expo),
             background .4s,backdrop-filter .4s;
}
.site-header.scrolled{
  padding:16px var(--pad-x);
  background:rgba(11,12,14,.82);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
}
.nav-wrap{
  max-width:var(--max-w);margin:0 auto;
  display:flex;align-items:center;gap:40px;
}
.nav-brand{
  font-family:var(--ff-display);font-size:26px;font-weight:500;
  letter-spacing:.12em;color:var(--cream);
  display:flex;align-items:baseline;gap:1px;
  flex-shrink:0;
}
.brand-a{color:var(--gold);font-size:32px;line-height:1;font-weight:700}
.brand-rest{font-weight:300}
.brand-dot{color:var(--gold);font-size:36px;line-height:1}
.nav-list{display:flex;gap:8px;margin-left:auto;list-style:none}
.nav-item{
  font-family:var(--ff-body);font-size:13px;font-weight:400;
  letter-spacing:.06em;color:var(--mist);
  padding:8px 16px;border-radius:var(--r-sm);
  position:relative;transition:color .2s;
}
.nav-item::before{
  content:attr(data-num);
  font-family:var(--ff-mono);font-size:9px;
  color:var(--smoke);
  position:absolute;top:4px;left:8px;
  transition:color .2s;
}
.nav-item:hover,.nav-item.active{color:var(--cream)}
.nav-item:hover::before,.nav-item.active::before{color:var(--gold)}

.nav-actions{display:flex;align-items:center;gap:16px;margin-left:20px}
.nav-hire{
  display:flex;align-items:center;gap:8px;
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;
  color:var(--emerald);padding:8px 16px;
  border:1px solid rgba(62,123,94,.3);border-radius:100px;
  transition:background .2s,border-color .2s;
}
.hire-dot{
  width:6px;height:6px;border-radius:50%;background:var(--emerald);
  animation:pulse-green 2.5s ease-in-out infinite;
}
@keyframes pulse-green{
  0%,100%{box-shadow:0 0 0 0 rgba(62,123,94,.6)}
  50%{box-shadow:0 0 0 5px rgba(62,123,94,0)}
}
.nav-hire:hover{background:rgba(62,123,94,.1);border-color:rgba(62,123,94,.5)}

.nav-burger{
  display:none;flex-direction:column;gap:7px;padding:8px;
}
.nav-burger span{
  display:block;width:22px;height:1.5px;background:var(--cream);
  transition:transform .35s var(--ease-expo),opacity .35s;
}
.nav-burger.open span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.nav-burger.open span:nth-child(2){transform:translateY(-8.5px) rotate(-45deg)}

/* Mobile overlay */
.mobile-overlay{
  position:fixed;inset:0;z-index:850;
  background:var(--ink);
  transform:translateX(100%);
  transition:transform .55s var(--ease-expo);
  display:flex;align-items:center;justify-content:center;
}
.mobile-overlay.open{transform:translateX(0)}
.mobile-overlay-inner{text-align:center}
.mobile-nav{display:flex;flex-direction:column;gap:0;margin-bottom:48px}
.mob-link{
  font-family:var(--ff-display);font-size:clamp(44px,10vw,72px);
  font-weight:300;color:var(--smoke);letter-spacing:.04em;
  padding:8px 40px;
  transition:color .25s;
  display:flex;align-items:center;gap:16px;
  justify-content:center;
}
.mob-link em{
  font-family:var(--ff-mono);font-size:12px;
  font-style:normal;color:var(--smoke);letter-spacing:.1em;
  transition:color .25s;
}
.mob-link:hover{color:var(--cream)}
.mob-link:hover em{color:var(--gold)}
.mobile-footer-info{
  display:flex;flex-direction:column;gap:6px;
  font-family:var(--ff-mono);font-size:11px;
  color:var(--smoke);letter-spacing:.08em;
}

/* ─── SECTION UTILITIES ──────────────────────────────── */
.section-inner{
  max-width:var(--max-w);margin:0 auto;padding:var(--section-y) var(--pad-x);
}
.section-eyebrow{
  display:flex;align-items:center;gap:14px;margin-bottom:20px;
  font-family:var(--ff-mono);font-size:10px;letter-spacing:.22em;
  color:var(--gold);text-transform:uppercase;
}
.ey-line{display:block;width:40px;height:1px;background:var(--gold)}
.section-heading{
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(40px,5vw,72px);line-height:1.02;
  letter-spacing:.01em;margin-bottom:24px;
}
.section-heading em{
  font-style:italic;color:transparent;
  -webkit-text-stroke:1px var(--gold);
}
.section-header-row{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:40px;margin-bottom:64px;flex-wrap:wrap;
}
.section-sub-text{
  max-width:400px;font-size:15px;color:var(--mist);line-height:1.7;
}

.inline-link{
  color:var(--gold);border-bottom:1px solid rgba(200,169,110,.3);
  transition:border-color .2s;
}
.inline-link:hover{border-color:var(--gold)}

/* ─── BUTTONS ────────────────────────────────────────── */
.hcta-primary{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 32px;
  background:var(--gold);color:var(--ink);
  font-family:var(--ff-body);font-size:14px;font-weight:600;
  letter-spacing:.04em;border-radius:var(--r-sm);
  position:relative;overflow:hidden;
  transition:transform .25s var(--ease-expo),box-shadow .25s;
}
.hcta-primary::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  opacity:0;transition:opacity .3s;
}
.hcta-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(200,169,110,.3);
}
.hcta-primary:hover::before{opacity:1}
.hcta-primary .hcta-label,.hcta-arrow{position:relative;z-index:1}
.hcta-arrow{
  width:32px;height:32px;border-radius:50%;
  background:rgba(0,0,0,.15);
  display:flex;align-items:center;justify-content:center;
}

.hcta-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 20px;font-size:14px;color:var(--mist);
  border-bottom:1px solid var(--border);
  transition:color .2s,border-color .2s;
}
.hcta-ghost:hover{color:var(--cream);border-color:var(--cream)}

/* ═══════════════════════════════════════════════════════
   HERO v4 — Premium Split: Left headline + Right credential cards
   Clean, no photo, fully mobile-first
════════════════════════════════════════════════════════ */
.hero{
  min-height:100svh;
  display:flex;align-items:center;
  position:relative;overflow:hidden;
  padding-top:90px;padding-bottom:40px;
}
.hero-canvas{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;z-index:0;opacity:.4;
}
.hero-inner{
  position:relative;z-index:1;
  max-width:var(--max-w);margin:0 auto;
  padding:0 var(--pad-x);
  width:100%;
  display:grid;
  grid-template-columns:1fr 420px;
  gap:60px;
  align-items:center;
}

/* ── Left: headline block ── */
.hero-left{
  display:flex;flex-direction:column;gap:0;
}
.hero-status{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 18px;margin-bottom:36px;
  background:rgba(62,123,94,.1);
  border:1px solid rgba(62,123,94,.25);
  border-radius:100px;
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;
  color:var(--emerald);width:fit-content;
  opacity:0;animation:fadeIn .7s var(--ease-expo) .2s forwards;
}
.hs-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--emerald);flex-shrink:0;
  animation:pulse-green 2.5s ease-in-out infinite;
}

.hero-title{
  display:flex;flex-direction:column;
  margin-bottom:28px;
  overflow:visible;
}
.ht-line{
  display:block;overflow:hidden;line-height:1;
}
.ht-reveal{
  display:block;
  font-family:var(--ff-display);
  font-weight:300;
  font-size:clamp(56px,7.5vw,120px);
  line-height:1.0;
  letter-spacing:-.02em;
  color:var(--cream);
  transform:translateY(110%);
  animation:slideUp .9s var(--ease-expo) forwards;
  padding-bottom:.08em;
}
.ht-line:nth-child(1) .ht-reveal{animation-delay:.25s}
.ht-line:nth-child(2) .ht-reveal{animation-delay:.37s}
.ht-line:nth-child(3) .ht-reveal{animation-delay:.49s}
.ht-gold .ht-reveal{
  color:transparent;
  -webkit-text-stroke:clamp(1px,.12vw,2px) var(--gold);
  font-style:italic;
}

.hero-intro{
  font-size:clamp(15px,1.4vw,18px);
  line-height:1.75;color:var(--mist);
  max-width:520px;margin-bottom:44px;
  opacity:0;animation:fadeUp .8s var(--ease-expo) .65s forwards;
}
.hero-actions{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  opacity:0;animation:fadeUp .8s var(--ease-expo) .8s forwards;
}
.hcta-cv{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;
  border:1px solid var(--border-hi);
  border-radius:var(--r-sm);
  font-family:var(--ff-body);font-size:13px;font-weight:500;
  color:var(--gold);letter-spacing:.03em;
  transition:background .25s,border-color .25s,color .25s;
}
.hcta-cv:hover{background:rgba(200,169,110,.08);border-color:var(--gold)}

/* ── Right: credential cards ── */
.hero-right{
  display:flex;flex-direction:column;gap:10px;
  opacity:0;animation:fadeUp .9s var(--ease-expo) .5s forwards;
}
.hcard{
  background:rgba(17,19,24,.75);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:16px 20px;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  transition:border-color .3s var(--ease-expo),transform .3s var(--ease-expo);
}
.hcard:hover{border-color:var(--border-hi);transform:translateX(-4px)}

/* Name card */
.hcard-name{
  display:flex;align-items:center;gap:16px;
}
.hc-monogram{
  width:52px;height:52px;border-radius:var(--r-md);
  background:linear-gradient(135deg,var(--gold),var(--gold-lt));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-display);font-size:20px;font-weight:700;
  color:var(--ink);flex-shrink:0;letter-spacing:.06em;
}
.hcn-full{display:block;font-family:var(--ff-display);font-size:20px;
  font-weight:500;color:var(--cream);letter-spacing:.04em}
.hcn-title{display:block;font-family:var(--ff-mono);font-size:10px;
  letter-spacing:.12em;color:var(--smoke);text-transform:uppercase;margin:2px 0 6px}
.hcn-loc{
  display:flex;align-items:center;gap:5px;
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.1em;
  color:var(--smoke);text-transform:uppercase;
}

/* Stats card */
.hcard-stats{
  display:flex;align-items:center;justify-content:space-around;
  padding:18px 20px;
}
.hcs-item{display:flex;flex-direction:column;align-items:center;gap:3px}
.hcs-num{
  font-family:var(--ff-display);font-size:clamp(26px,3vw,36px);
  font-weight:500;color:var(--gold);line-height:1;
}
.hcs-num sup{font-size:60%;vertical-align:super}
.hcs-label{font-family:var(--ff-mono);font-size:9px;letter-spacing:.14em;
  color:var(--smoke);text-transform:uppercase}
.hcs-sep{width:1px;height:40px;background:var(--border)}

/* Expertise card */
.hcard-expertise{padding:16px 20px}
.hce-label{
  display:block;font-family:var(--ff-mono);font-size:9px;letter-spacing:.18em;
  color:var(--smoke);text-transform:uppercase;margin-bottom:12px;
}
.hce-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
}
.hce-grid span{
  font-size:12px;color:var(--mist);
  padding:5px 10px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--border);border-radius:4px;
  transition:border-color .2s,color .2s;
}
.hce-grid span:hover{border-color:var(--gold);color:var(--cream)}

/* Edu card */
.hcard-edu{
  display:flex;align-items:center;gap:14px;
  padding:14px 20px;
}
.hced-icon{font-size:22px;flex-shrink:0}
.hced-deg{display:block;font-size:13px;font-weight:500;color:var(--cream)}
.hced-uni{display:block;font-family:var(--ff-mono);font-size:9px;
  letter-spacing:.08em;color:var(--smoke);margin-top:2px}

/* Blog card */
.hcard-blog{padding:14px 20px}
.hcbl-link{display:flex;align-items:center;gap:12px;transition:opacity .2s}
.hcbl-link:hover{opacity:.8}
.hcbl-icon{
  font-size:20px;width:38px;height:38px;border-radius:var(--r-sm);
  background:rgba(200,169,110,.08);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.hcbl-name{display:block;font-size:13px;font-weight:500;color:var(--cream)}
.hcbl-sub{display:block;font-family:var(--ff-mono);font-size:9px;
  letter-spacing:.08em;color:var(--smoke)}
.hcbl-arrow{margin-left:auto;font-size:18px;color:var(--gold)}

/* ═══════════════════════════════════════════════════════
   ABOUT SECTION — v3 (photo fixed, languages, skills, CV)
════════════════════════════════════════════════════════ */
.about-section{
  background:var(--ink-2);
  border-top:1px solid var(--border);
}

/* Main grid: photo col | content col */
.about-grid{
  display:grid;
  grid-template-columns:380px 1fr;
  gap:72px;
  align-items:start;
  margin-bottom:60px;
}

/* ── Photo column ── */
.about-photo-col{
  display:flex;flex-direction:column;gap:20px;
  position:sticky;top:100px; /* sticks while scrolling content */
}
.about-photo-wrap{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  background:linear-gradient(160deg,var(--ink-3) 0%,var(--ink) 100%);
  border:1px solid var(--border);
  /* Fixed height so photo never gets cropped on any device */
  height:460px;
}
.about-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  /* Show from waist up always */
  object-position:center 10%;
  display:block;
  filter:grayscale(15%);
  transition:filter .5s,transform .5s var(--ease-expo);
}
.about-photo-wrap:hover .about-photo{
  filter:grayscale(0%);
  transform:scale(1.02);
}
.apw-bar{
  position:absolute;bottom:0;left:0;top:0;
  width:3px;
  background:linear-gradient(to bottom,transparent 10%,var(--gold) 50%,transparent 90%);
  opacity:0;
  transition:opacity .5s;
}
.about-photo-wrap:hover .apw-bar{opacity:1}
.apw-mark{
  position:absolute;bottom:16px;right:18px;
  font-family:var(--ff-display);font-size:56px;font-weight:700;
  color:rgba(200,169,110,.07);line-height:1;pointer-events:none;
  user-select:none;
}

/* Language cards */
.lang-cards{display:flex;flex-direction:column;gap:8px}
.lang-card{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  background:var(--ink);border:1px solid var(--border);
  border-radius:var(--r-md);
  transition:border-color .25s,transform .25s var(--ease-expo);
}
.lang-card:hover{border-color:var(--border-hi);transform:translateX(4px)}
.lc-flag{font-size:20px;flex-shrink:0}
.lc-info{flex:1;display:flex;flex-direction:column;gap:1px}
.lc-lang{font-size:13px;font-weight:500;color:var(--cream)}
.lc-level{font-family:var(--ff-mono);font-size:9px;
  letter-spacing:.1em;color:var(--smoke);text-transform:uppercase}
.lc-dots{display:flex;gap:4px;align-items:center;flex-shrink:0}
.lcd{
  width:6px;height:6px;border-radius:50%;
  border:1px solid var(--smoke);
  transition:background .2s;
}
.lcd.filled{background:var(--gold);border-color:var(--gold)}

/* ── Content column ── */
.about-content{display:flex;flex-direction:column;gap:0}
.about-headline{
  font-family:var(--ff-display);
  font-size:clamp(38px,3.8vw,60px);
  font-weight:400;line-height:1.05;
  letter-spacing:.01em;margin-bottom:28px;
}
.about-headline em{font-style:italic;color:var(--gold)}
.about-story{
  display:flex;flex-direction:column;gap:14px;margin-bottom:28px;
}
.about-story p{font-size:15px;color:var(--mist);line-height:1.8}
.about-story strong{color:var(--cream);font-weight:500}

/* Open to */
.about-open-to{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-bottom:24px;
}
.aot-label{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.16em;
  color:var(--smoke);text-transform:uppercase;white-space:nowrap;
}
.aot-tags{display:flex;flex-wrap:wrap;gap:6px}
.aot-tags span{
  font-size:12px;color:var(--mist);
  padding:5px 12px;border:1px solid var(--border);border-radius:100px;
  transition:border-color .2s,color .2s;
}
.aot-tags span:hover{border-color:var(--gold);color:var(--cream)}

/* Employers */
.about-employers{margin-bottom:32px}
.ae-label{
  display:block;font-family:var(--ff-mono);font-size:9px;letter-spacing:.16em;
  color:var(--smoke);text-transform:uppercase;margin-bottom:12px;
}
.ae-list{display:flex;flex-direction:column;gap:8px}
.ae-item{
  display:flex;align-items:center;gap:10px;
  font-size:13px;color:var(--mist);
}
.ae-flag{font-size:16px;flex-shrink:0}

/* Skill bars */
.about-skills{
  display:flex;flex-direction:column;gap:14px;
  margin-bottom:32px;
}
.ask-row{}
.ask-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:7px;
}
.ask-name{font-size:13px;color:var(--cream);font-weight:400}
.ask-pct{font-family:var(--ff-mono);font-size:10px;color:var(--gold);letter-spacing:.06em}
.ask-bar{
  height:2px;background:var(--border);border-radius:1px;overflow:hidden;
}
.ask-fill{
  height:100%;width:0;border-radius:1px;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt));
  transition:width 1.3s var(--ease-expo);
}

/* CV button */
.about-cv{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.cv-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 26px;
  background:transparent;
  border:1px solid var(--border-hi);
  border-radius:var(--r-sm);
  font-family:var(--ff-body);font-size:13px;font-weight:500;
  color:var(--gold);letter-spacing:.03em;
  transition:background .25s,border-color .25s,transform .25s var(--ease-expo);
}
.cv-btn:hover{
  background:rgba(200,169,110,.08);
  border-color:var(--gold);
  transform:translateY(-2px);
}
.cv-note{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.12em;
  color:var(--smoke);text-transform:uppercase;
}

/* ── Toolset (below grid, full width) ── */
.toolset-wrap{
  padding-top:40px;
  border-top:1px solid var(--border);
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
}
.ts-label{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.2em;
  color:var(--smoke);text-transform:uppercase;white-space:nowrap;flex-shrink:0;
}
.toolset-row{display:flex;flex-wrap:wrap;gap:8px;flex:1}
.tool-pill{
  display:flex;align-items:center;gap:8px;
  padding:7px 14px;
  border:1px solid var(--border);border-radius:100px;
  font-size:12px;color:var(--mist);
  transition:border-color .2s,color .2s;
}
.tool-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--tc,var(--gold));flex-shrink:0;
}
.tool-pill:hover{border-color:var(--tc,var(--gold));color:var(--cream)}

/* ═══════════════════════════════════════════════════════
   SERVICES
════════════════════════════════════════════════════════ */
.services-section{
  background:var(--ink);
  border-top:1px solid var(--border);
}
.services-list{border-top:1px solid var(--border)}
.svc-row{
  display:grid;
  grid-template-columns:80px 1fr 56px 48px;
  align-items:center;gap:24px;
  padding:28px 0;
  border-bottom:1px solid var(--border);
  transition:background .25s;
  cursor:default;
  position:relative;
}
.svc-row::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(200,169,110,.04),transparent);
  opacity:0;transition:opacity .3s;
}
.svc-row:hover::before{opacity:1}
.svc-num{
  font-family:var(--ff-mono);font-size:13px;color:var(--smoke);
  letter-spacing:.1em;text-align:right;padding-right:16px;
  border-right:1px solid var(--border);
  transition:color .2s;
}
.svc-row:hover .svc-num{color:var(--gold)}
.svc-title{
  font-family:var(--ff-display);font-size:clamp(20px,2vw,28px);
  font-weight:400;color:var(--cream);margin-bottom:8px;letter-spacing:.01em;
  transition:color .2s;
}
.svc-row:hover .svc-title{color:var(--gold-lt)}
.svc-desc{font-size:13px;color:var(--mist);line-height:1.6;margin-bottom:12px}
.svc-tags{display:flex;flex-wrap:wrap;gap:6px}
.svc-tags span{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.12em;
  color:var(--smoke);padding:3px 10px;
  border:1px solid var(--border);border-radius:100px;
  text-transform:uppercase;
}
.svc-icon-wrap{
  color:var(--smoke);transition:color .3s;
  display:flex;align-items:center;justify-content:center;
}
.svc-row:hover .svc-icon-wrap{color:var(--gold)}
.svc-arrow{
  color:var(--smoke);transform:rotate(0deg);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s var(--ease-expo),color .3s;
}
.svc-row:hover .svc-arrow{
  color:var(--gold);transform:rotate(0deg) translateX(4px) translateY(-4px);
}

/* ═══════════════════════════════════════════════════════
   WORK / PORTFOLIO
════════════════════════════════════════════════════════ */
.work-section{
  background:var(--ink-2);
  border-top:1px solid var(--border);
}
.work-filter-wrap{
  display:flex;gap:4px;align-self:flex-end;
  background:var(--ink-3);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:4px;
}
.wf-btn{
  padding:8px 18px;border-radius:4px;
  font-family:var(--ff-body);font-size:12px;font-weight:400;
  letter-spacing:.04em;color:var(--smoke);
  transition:background .2s,color .2s;
}
.wf-btn.active,.wf-btn:hover{background:var(--gold);color:var(--ink)}

/* Mosaic grid */
.work-mosaic{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(2,280px);
  gap:3px;margin-bottom:32px;
}
.work-item{overflow:hidden;position:relative;cursor:none}
.wi-large{grid-column:span 2;grid-row:span 1}
.wi-inner{
  width:100%;height:100%;
  background:var(--ink-3);
  position:relative;overflow:hidden;
}
.wi-bg{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--wc),transparent 60%);
  opacity:.12;transition:opacity .5s;
}
.work-item:hover .wi-bg{opacity:.24}
.wi-num{
  position:absolute;top:16px;left:20px;
  font-family:var(--ff-display);font-size:64px;font-weight:700;
  color:rgba(255,255,255,.04);line-height:1;
  transition:color .4s;
}
.work-item:hover .wi-num{color:rgba(255,255,255,.07)}
.wi-hover{
  position:absolute;inset:0;padding:24px;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(to top,rgba(11,12,14,.85) 0%,transparent 50%);
  opacity:0;transform:translateY(8px);
  transition:opacity .35s,transform .35s var(--ease-expo);
}
.work-item:hover .wi-hover{opacity:1;transform:translateY(0)}
.wi-type{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.16em;
  color:var(--gold);text-transform:uppercase;margin-bottom:6px;
}
.wi-title{
  font-family:var(--ff-display);font-size:22px;font-weight:400;
  color:var(--cream);margin-bottom:12px;
}
.wi-view{
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;
  color:var(--mist);
  padding:6px 14px;border:1px solid rgba(255,255,255,.15);border-radius:4px;
  align-self:flex-start;
  transition:background .2s,color .2s,border-color .2s;
}
.work-item:hover .wi-view{
  background:var(--gold);color:var(--ink);border-color:var(--gold);
}
.work-item.hidden{display:none}
.work-note{
  text-align:center;padding:24px;
  font-size:13px;color:var(--smoke);
  font-family:var(--ff-mono);letter-spacing:.06em;
}

/* ═══════════════════════════════════════════════════════
   PRODUCT — PropManager Pro
════════════════════════════════════════════════════════ */
.product-section{
  background:var(--ink);border-top:1px solid var(--border);
  position:relative;overflow:hidden;
}
.product-section::before{
  content:'';position:absolute;
  top:-200px;right:-200px;
  width:700px;height:700px;
  background:radial-gradient(circle,rgba(200,169,110,.06),transparent 65%);
  pointer-events:none;
}

.product-badge-row{
  display:flex;align-items:center;gap:12px;margin-bottom:48px;
}
.prod-badge{
  padding:8px 20px;
  background:rgba(200,169,110,.08);
  border:1px solid rgba(200,169,110,.2);
  border-radius:100px;
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;
  color:var(--gold);
}
.prod-badge-sub{font-family:var(--ff-mono);font-size:11px;
  letter-spacing:.08em;color:var(--smoke)}

.product-layout{
  display:grid;grid-template-columns:1fr 1.1fr;gap:80px;
  align-items:center;margin-bottom:60px;
}
.prod-heading{
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(52px,6vw,88px);line-height:.95;
  letter-spacing:-.01em;margin-bottom:16px;
}
.ph-prop{color:var(--cream)}
.ph-manager{color:var(--gold);font-style:italic}
.ph-pro{
  color:transparent;-webkit-text-stroke:1.5px var(--gold);
  font-style:italic;
}
.prod-tagline{
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;
  color:var(--smoke);text-transform:uppercase;margin-bottom:24px;
}
.prod-desc{font-size:15px;color:var(--mist);line-height:1.8;margin-bottom:36px}

.prod-highlights{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:32px;
}
.prod-hl{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px;border:1px solid var(--border);border-radius:var(--r-md);
  transition:border-color .3s,transform .3s var(--ease-expo);
}
.prod-hl:hover{border-color:var(--border-hi);transform:translateY(-3px)}
.phl-icon{font-size:18px;flex-shrink:0;margin-top:2px}
.phl-mod{display:block;font-size:13px;font-weight:500;color:var(--cream);margin-bottom:2px}
.phl-desc{display:block;font-size:11px;color:var(--smoke);line-height:1.4}

.prod-tech-row{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;
}
.prod-tech-row span{
  font-family:var(--ff-mono);font-size:10px;letter-spacing:.1em;
  color:var(--gold);padding:5px 14px;
  background:rgba(200,169,110,.06);
  border:1px solid rgba(200,169,110,.15);border-radius:4px;
}
.prod-cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.prod-avail{
  display:flex;align-items:center;gap:8px;
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.08em;color:var(--mist);
}
.pa-dot{
  width:7px;height:7px;border-radius:50%;background:var(--emerald);
  animation:pulse-green 2.5s ease-in-out infinite;
}

/* Screen mockup */
.prod-visual{position:relative}
.prod-screen-wrap{
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 40px 100px rgba(0,0,0,.5),0 0 0 1px var(--border);
  position:relative;z-index:1;
}
.prod-browser-chrome{
  background:var(--ink-3);border-bottom:1px solid var(--border);
  padding:12px 16px;display:flex;align-items:center;gap:10px;
}
.pbc-dots{display:flex;gap:6px}
.pbc-d{width:10px;height:10px;border-radius:50%}
.pbc-d.red{background:#FF5F56}
.pbc-d.yellow{background:#FFBD2E}
.pbc-d.green{background:#27C93F}
.pbc-url{
  flex:1;margin-left:8px;padding:4px 12px;
  background:var(--ink);border-radius:4px;
  font-family:var(--ff-mono);font-size:10px;color:var(--smoke);
}
.prod-screen-img{line-height:0}
.pmp-screenshot{width:100%;height:auto;display:block}
.prod-glow{
  position:absolute;inset:-40px;
  background:radial-gradient(ellipse at center,
    rgba(200,169,110,.08),transparent 70%);
  pointer-events:none;z-index:0;
}

/* Compat bar */
.compat-bar{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:20px 24px;
  border:1px solid var(--border);border-radius:var(--r-md);
  background:var(--ink-2);
}
.compat-label{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.16em;
  color:var(--smoke);text-transform:uppercase;margin-right:4px;
}
.compat-item{font-size:13px;color:var(--mist)}

/* ═══════════════════════════════════════════════════════
   CONTACT
════════════════════════════════════════════════════════ */
.contact-section{
  background:var(--ink-2);border-top:1px solid var(--border);
}
.contact-layout{
  display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;
}
.contact-heading{font-size:clamp(40px,4.5vw,68px)}
.contact-intro{
  font-size:15px;color:var(--mist);line-height:1.8;margin-bottom:40px;
}
.contact-links{display:flex;flex-direction:column;gap:12px;margin-bottom:40px}
.cl-item{
  display:flex;align-items:center;gap:14px;
  padding:16px;border:1px solid var(--border);border-radius:var(--r-md);
  transition:border-color .3s,background .3s,transform .3s var(--ease-expo);
}
.cl-item:hover{
  border-color:var(--border-hi);
  background:rgba(200,169,110,.04);
  transform:translateX(6px);
}
.cl-loc:hover{transform:none}
.cl-icon{
  width:38px;height:38px;border-radius:var(--r-sm);
  background:rgba(200,169,110,.08);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);flex-shrink:0;
}
.cl-label{display:block;font-family:var(--ff-mono);font-size:9px;
  letter-spacing:.14em;color:var(--smoke);text-transform:uppercase;margin-bottom:2px}
.cl-val{display:block;font-size:13px;color:var(--cream)}
.cl-arrow{margin-left:auto;font-size:18px;color:var(--gold)}

.contact-open-to h4{
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.18em;
  color:var(--smoke);text-transform:uppercase;margin-bottom:12px;
}
.ot-tags{display:flex;flex-wrap:wrap;gap:8px}
.ot-tags span{
  font-size:12px;color:var(--mist);
  padding:6px 14px;border:1px solid var(--border);border-radius:100px;
  transition:border-color .2s,color .2s;
}
.ot-tags span:hover{border-color:var(--gold);color:var(--cream)}

/* Form */
.contact-form{display:flex;flex-direction:column;gap:18px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf-group{position:relative}
.cf-group input,
.cf-group textarea,
.cf-group select{
  width:100%;padding:22px 18px 8px;
  background:var(--ink);
  border:1px solid var(--border);border-radius:var(--r-md);
  color:var(--cream);font-size:14px;outline:none;
  transition:border-color .2s,background .2s;
  -webkit-appearance:none;appearance:none;
}
.cf-group input:focus,
.cf-group textarea:focus,
.cf-group select:focus{
  border-color:var(--gold);background:var(--ink-2);
}
.cf-group label,.cf-select-label{
  position:absolute;top:14px;left:18px;
  font-size:13px;color:var(--smoke);pointer-events:none;
  transition:top .2s,font-size .2s,color .2s;
  font-family:var(--ff-body);
}
.cf-group input:focus ~ label,
.cf-group input:not(:placeholder-shown) ~ label,
.cf-group textarea:focus ~ label,
.cf-group textarea:not(:placeholder-shown) ~ label{
  top:6px;font-size:9px;color:var(--gold);
  letter-spacing:.1em;text-transform:uppercase;font-family:var(--ff-mono);
}
.cf-select-label{top:6px;font-size:9px;color:var(--gold);
  letter-spacing:.1em;text-transform:uppercase;font-family:var(--ff-mono)}
.cf-group select{padding-top:22px;color:var(--mist)}
.cf-group select option{background:var(--ink-2)}
.cf-group textarea{resize:vertical;min-height:160px;padding-top:26px}
.cf-err{display:block;font-size:11px;color:var(--ruby);margin-top:4px;min-height:14px}
.hp-field{position:absolute;left:-9999px;visibility:hidden}

.form-submit-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 36px;width:100%;
  background:var(--gold);color:var(--ink);
  font-family:var(--ff-body);font-size:14px;font-weight:600;letter-spacing:.04em;
  border-radius:var(--r-md);position:relative;overflow:hidden;
  transition:transform .25s var(--ease-expo),box-shadow .25s;
}
.form-submit-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(200,169,110,.25);
}
.form-submit-btn:active{transform:translateY(0)}
.fsb-text,.fsb-loading,.fsb-icon{position:relative;z-index:1}
.fsb-loading{display:none}
.form-submit-btn.loading .fsb-text{display:none}
.form-submit-btn.loading .fsb-loading{display:flex;align-items:center;gap:8px}
.fsb-spinner{
  width:14px;height:14px;border-radius:50%;
  border:2px solid rgba(11,12,14,.3);border-top-color:var(--ink);
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.form-feedback{
  padding:14px 18px;border-radius:var(--r-md);
  font-size:13px;display:none;
}
.ff-success{background:rgba(62,123,94,.1);border:1px solid rgba(62,123,94,.25);color:var(--emerald)}
.ff-error{background:rgba(181,74,74,.1);border:1px solid rgba(181,74,74,.25);color:var(--ruby)}

/* ─── FOOTER ──────────────────────────────────────── */
.site-footer{
  background:var(--ink);
  border-top:1px solid var(--border);
  padding:60px var(--pad-x) 40px;
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:40px;flex-wrap:wrap;margin-bottom:48px;
  padding-bottom:48px;border-bottom:1px solid var(--border);
}
.fb-name{
  display:block;font-family:var(--ff-display);font-size:36px;font-weight:400;
  letter-spacing:.1em;color:var(--cream);margin-bottom:4px;
}
.fb-dot{color:var(--gold)}
.fb-title{font-family:var(--ff-mono);font-size:10px;letter-spacing:.2em;
  color:var(--smoke);text-transform:uppercase}
.footer-cta-text{font-size:13px;color:var(--smoke);margin-bottom:8px}
.footer-cta-link{
  font-family:var(--ff-display);font-size:28px;font-weight:400;
  color:var(--gold);transition:letter-spacing .3s;
}
.footer-cta-link span{display:inline-block;transition:transform .3s var(--ease-expo)}
.footer-cta-link:hover{letter-spacing:.04em}
.footer-cta-link:hover span{transform:translateX(6px)}

.footer-mid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:40px;
  margin-bottom:48px;
}
.footer-col{display:flex;flex-direction:column;gap:10px}
.footer-col h4{font-family:var(--ff-mono);font-size:9px;letter-spacing:.2em;
  color:var(--smoke);text-transform:uppercase;margin-bottom:6px}
.footer-col a,.footer-col span{font-size:13px;color:var(--mist);
  transition:color .2s}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  flex-wrap:wrap;font-family:var(--ff-mono);font-size:10px;
  letter-spacing:.1em;color:var(--smoke);
}
.footer-made{}

/* ─── REVEAL ─────────────────────────────────────── */
.r{opacity:0;transform:translateY(32px);
  transition:opacity .8s var(--ease-expo),transform .8s var(--ease-expo)}
.r.vis{opacity:1;transform:none}
.r-left{opacity:0;transform:translateX(-32px);
  transition:opacity .8s var(--ease-expo),transform .8s var(--ease-expo)}
.r-left.vis{opacity:1;transform:none}
.r-right{opacity:0;transform:translateX(32px);
  transition:opacity .8s var(--ease-expo),transform .8s var(--ease-expo)}
.r-right.vis{opacity:1;transform:none}

/* ─── KEYFRAMES ─────────────────────────────────── */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:none}
}
@keyframes slideUp{
  from{transform:translateY(105%)}
  to{transform:none}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}