/* =================================================================
   SAKSHI JAIN — SHARED STYLESHEET
   Used by index.html, case-study-tripledart.html, case-study-restolabs.html
   Change a colour or a size here and all three pages follow.
   ================================================================= */

/* ---------- 1. TOKENS ---------- */
:root{
  --lavender:   #e2dffb;
  --lavender-2: #ecebfd;
  --paper:      #ffffff;
  --cream:      #faf7f0;
  --ink:        #1c1a19;
  --ink-70:     #4a4644;
  --ink-45:     #78716d;
  --line:       #1c1a19;
  --hairline:   #e4e1de;
  --gold:       #c1954e;

  --peach: #faede7;
  --mint:  #e5f4eb;
  --rose:  #fbe7f1;
  --ice:   #e7f1fb;

  --chip-blue:   #cfe4f5;
  --chip-yellow: #fbdda0;
  --chip-green:  #cdebd8;

  --r-sm: 12px;
  --r-md: 20px;
  --r-lg: 28px;
  --r-pill: 999px;

  --shell: 1180px;
  --gutter: 24px;
}

/* ---------- 2. BASE ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.08;letter-spacing:-.028em;font-weight:600}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--ink);outline-offset:3px;border-radius:4px}

.shell{max-width:var(--shell);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-block:110px}

.head{text-align:center;max-width:760px;margin:0 auto 60px}
.head h2{font-size:clamp(34px,5vw,52px)}
.head p{margin-top:18px;color:var(--ink-70);font-size:18px}
.head strong{font-weight:700;color:var(--ink)}

.btn{
  display:inline-block;padding:13px 24px;border:1.5px solid var(--line);
  border-radius:var(--r-sm);background:var(--paper);text-decoration:none;
  font-size:15px;font-weight:500;transition:background .18s ease,color .18s ease;
}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--chip-yellow);color:var(--ink);border-color:var(--line)}

/* ---------- 3. NAV ---------- */
.nav-wrap{position:sticky;top:0;z-index:60;padding:18px var(--gutter) 0;background:var(--lavender)}
.nav-wrap.on-paper{background:var(--paper);border-bottom:0}
.nav{
  max-width:var(--shell);margin:0 auto;display:flex;align-items:center;gap:20px;
  background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);padding:14px 22px;
}
.brand{font-size:22px;font-weight:700;letter-spacing:-.04em;text-decoration:none;white-space:nowrap}
.nav-links{display:flex;gap:26px;margin:0 auto}
.nav-links a{text-decoration:none;font-size:15px;font-weight:500;color:var(--ink-70)}
.nav-links a:hover{color:var(--ink)}
.socials{display:flex;gap:8px}
.socials a{
  width:36px;height:36px;border:1.5px solid var(--line);border-radius:var(--r-pill);
  display:grid;place-items:center;text-decoration:none;transition:background .18s ease;
}
.socials a:hover{background:var(--chip-yellow)}
.socials svg{width:16px;height:16px}
.nav-toggle{display:none;background:none;border:0;padding:6px;cursor:pointer}

/* ---------- 4. HERO ---------- */
.hero{position:relative;background:var(--lavender);padding-top:78px;overflow:hidden}
.hero-inner{max-width:1000px;margin:0 auto;text-align:center;position:relative;z-index:2}
.hero h1{font-size:clamp(38px,5.8vw,66px);font-weight:600;letter-spacing:-.045em;line-height:1.14}
.hero h1 em{font-style:italic;font-weight:600}
.hero-sub{
  margin:28px auto 0;max-width:760px;font-style:italic;
  font-size:clamp(17px,2vw,21px);color:var(--ink-70);line-height:1.5;
}
.hero-cta{margin-top:40px;display:flex;justify-content:center;max-width:1000px;margin-inline:auto}
.hero-cta .btn{padding:11px 20px;font-size:14px}

.line{display:block;position:relative}
.tag{
  display:inline-block;padding:8px 18px;border:1.5px solid var(--line);
  border-radius:var(--r-pill);background:var(--paper);
  font-size:14px;font-weight:500;font-style:normal;letter-spacing:0;
  line-height:1.4;white-space:nowrap;
}
.tag.blue{background:#dbeafd}
.tag.pink{background:#fbd9e8}
.tag.green{background:#d8f0e2}
/* Tags moved to a neat row below the headline to prevent overlapping */
.hero-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}
.line .tag{display:none} /* Hide the absolute positioned overlapping tags */

/* ---------- 5. HIGHLIGHT CARDS ---------- */
.tri-band{position:relative;background:linear-gradient(var(--lavender) 50%, var(--paper) 50%);padding-top:84px}
.tri-band::before{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--line)}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative;z-index:2}
.tri-card{
  background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-lg);
  padding:34px 28px 30px;text-align:center;text-decoration:none;
  display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .2s ease;
}
.tri-card:hover{transform:translateY(-5px)}
.tri-card h3{font-size:20px;font-weight:600}
.tri-card p{font-size:15px;color:var(--ink-70);max-width:28ch}
.tri-ico{width:52px;height:52px;display:grid;place-items:center;margin-bottom:4px}
.arrow{
  width:44px;height:44px;border-radius:var(--r-pill);border:1.5px solid var(--line);
  display:grid;place-items:center;margin-top:12px;
}
.arrow.b{background:var(--chip-blue)}
.arrow.y{background:var(--chip-yellow)}
.arrow.g{background:var(--chip-green)}
@media (max-width:840px){
  .tri{grid-template-columns:1fr;gap:18px}
  .tri-band{background:var(--lavender);padding-bottom:0}
  .tri-band::before{display:none}
}

/* ---------- 6. WORK CARDS ---------- */
.work-list{display:flex;flex-direction:column;gap:26px}
.work{
  border:1.5px solid var(--line);border-radius:var(--r-lg);
  display:grid;grid-template-columns:1.05fr 1fr;gap:46px;align-items:center;padding:46px 48px;
}
.work[hidden]{display:none}
.work h3{font-size:clamp(25px,3vw,33px);font-weight:600}
.kicker{margin-top:12px;font-size:12.5px;font-weight:500;color:var(--ink-45);letter-spacing:.06em;text-transform:uppercase}
.dek{margin-top:14px;font-style:italic;font-size:16.5px;color:var(--ink)}
.work p.body{margin-top:16px;color:var(--ink-70);font-size:15.5px;max-width:50ch}
.work p.body + p.body{margin-top:12px}
.work .btn{margin-top:26px}
.metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.metric{border:1.2px solid #e8e0cf;background:var(--cream);border-radius:var(--r-sm);padding:11px 16px}
.metric b{display:block;font-size:18px;font-weight:700;letter-spacing:-.025em;line-height:1.15}
.metric span{font-size:12.5px;color:var(--ink-45)}

.shot{
  border-radius:var(--r-md);aspect-ratio:16/11;overflow:hidden;
  background:repeating-linear-gradient(135deg,rgba(28,26,25,.05) 0 1px,transparent 1px 11px),var(--tint,#f1f0ee);
  border:1px solid var(--hairline);display:grid;place-items:center;
}
.shot img{width:100%;height:100%;object-fit:cover}
.shot span{font-size:13px;color:var(--ink-45)}
@media (max-width:900px){
  .work{grid-template-columns:1fr;gap:28px;padding:32px 26px}
  .work p.body{max-width:none}
}

/* resource cards (OSlash downloads) */
.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.res{
  border:1.2px solid #e8e0cf;background:var(--cream);border-radius:var(--r-sm);
  padding:18px 20px;display:flex;flex-direction:column;text-decoration:none;
}
.res b{font-size:15px;font-weight:600}
.res span{margin-top:7px;font-size:13.5px;color:var(--ink-70);line-height:1.45}
.res i{margin-top:14px;font-style:normal;font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.res:hover i{text-decoration:underline}
@media (max-width:900px){.resources{grid-template-columns:1fr}}

/* ---------- 7. STATEMENT ---------- */
.statement{text-align:center;padding-block:110px;max-width:900px;margin:0 auto}
.statement .ask{font-size:19px;margin-bottom:20px}
.statement .quote-line{margin-top:70px;font-size:clamp(25px,4vw,44px);font-weight:600;letter-spacing:-.035em;line-height:1.22}
.statement em{font-style:italic;color:var(--gold)}
.statement .tagline-quote{font-size:clamp(23px,3.3vw,36px);font-weight:500;letter-spacing:-.025em;line-height:1.35;max-width:800px;margin-inline:auto}
.statement .tagline-quote em{color:var(--ink)}
.statement .sig{margin-top:26px;font-size:16px;color:var(--ink-45);font-weight:500}

/* ---------- 8. NUMBERS ---------- */
.numbers{background:var(--lavender);border-block:1.5px solid var(--line)}
.stats{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;max-width:980px;margin:0 auto}
.stat{display:flex;align-items:center;gap:16px;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-pill);padding:16px 30px}
.stat b{font-size:36px;font-weight:800;letter-spacing:-.04em;line-height:1;color:transparent;-webkit-text-stroke:1.6px var(--sc,#8f8ad8)}
.stat span{font-size:15px;font-weight:500;max-width:15ch;line-height:1.3}

/* ---------- 9. ABOUT ---------- */
.about{display:grid;grid-template-columns:.92fr 1.08fr;gap:70px;align-items:center}
.portrait-wrap{position:relative}
.portrait{
  position:relative;aspect-ratio:1/1.13;background:linear-gradient(165deg,#fbd77e,#f6c85f);
  border-radius:46% 54% 44% 56% / 24% 22% 78% 76%;overflow:hidden;display:grid;place-items:center;
}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait span{font-size:13px;color:rgba(28,26,25,.55)}
.tape{position:absolute;top:-16px;left:22%;transform:rotate(-3deg);z-index:2}
.badge{position:absolute;left:0;bottom:8%;z-index:3;width:112px;height:112px}
.badge-ring{animation:spin 22s linear infinite;transform-origin:50% 50%}
@keyframes spin{to{transform:rotate(360deg)}}
.about h2{font-size:clamp(29px,3.7vw,40px);line-height:1.12}
.about h2 em{font-style:italic;color:var(--gold)}
.about p{margin-top:20px;color:var(--ink-70);font-size:16px;max-width:54ch}
.about p.pull{color:var(--ink);font-style:italic;border-left:2.5px solid var(--gold);padding-left:20px}
@media (max-width:900px){
  .about{grid-template-columns:1fr;gap:48px}
  .about p{max-width:none}
}

/* ---------- 10. EXPERTISE ---------- */
.exp-group + .exp-group{margin-top:40px}
.exp-group h3{font-size:16px;font-weight:700;text-align:center;margin-bottom:20px}
.caps{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:900px;margin:0 auto}
.cap{
  display:flex;align-items:center;gap:10px;padding:12px 24px;border:1.5px solid var(--line);
  border-radius:var(--r-pill);font-size:15.5px;font-weight:500;background:var(--paper);
  transition:background .18s ease;
}
.cap:hover{background:var(--lavender-2)}
.cap svg{width:16px;height:16px;flex:none}
.rule{height:1.5px;background:var(--line);max-width:var(--shell);margin:0 auto}

/* ---------- 11. CLIENTS ---------- */
.clients{background:var(--cream);border-block:1.5px solid var(--line)}
.logo-grid{
  display:grid;grid-template-columns:repeat(6,1fr);
  border-top:1.2px solid #e2d9c8;border-left:1.2px solid #e2d9c8;
}
.logo-grid li{
  border-right:1.2px solid #e2d9c8;border-bottom:1.2px solid #e2d9c8;
  padding:16px 18px;font-size:14.5px;font-weight:500;
}
.more{text-align:center;margin-top:26px;color:var(--ink-45);font-size:15px}
@media (max-width:900px){.logo-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.logo-grid{grid-template-columns:repeat(2,1fr)}.logo-grid li{padding:13px 14px;font-size:13.5px}}

/* ---------- 12. CONTACT + FOOTER ---------- */
.contact{background:var(--ink);color:#f7f5f2;position:relative;padding-block:130px 0;border-top:1.5px solid var(--line)}
.contact-inner{text-align:center;position:relative}
.contact h2{font-size:clamp(36px,6.2vw,70px);font-weight:600;letter-spacing:-.045em;max-width:14ch;margin-inline:auto}
.contact p{margin-top:24px;color:rgba(247,245,242,.72);font-size:17px}
.contact .btn{margin-top:36px;background:var(--paper);color:var(--ink);border-color:var(--paper)}
.contact .btn:hover{background:var(--chip-yellow);border-color:var(--chip-yellow)}
.reach{margin-top:28px;display:flex;justify-content:center;gap:26px;flex-wrap:wrap;font-size:15.5px}
.reach a{color:#f7f5f2;text-decoration:none;border-bottom:1px solid rgba(247,245,242,.4);padding-bottom:2px}
.reach a:hover{border-color:#f7f5f2}
.bubble{width:64px;height:44px;margin:0 auto 34px}
.scribble{position:absolute;left:calc(50% + 96px);bottom:-34px;display:flex;align-items:flex-start;gap:4px}
.scribble em{font-family:"Caveat",cursive;font-style:normal;font-size:21px;line-height:1.1;color:rgba(247,245,242,.85);transform:rotate(-6deg);margin-top:26px;width:88px}
.avail{position:absolute;top:-56px;right:var(--gutter);width:112px;height:112px;z-index:5}
footer{
  margin-top:120px;border-top:1.2px solid rgba(247,245,242,.22);padding-block:26px 34px;
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:14.5px;color:rgba(247,245,242,.72);
}
footer a{text-decoration:none}
footer nav{display:flex;gap:26px}
footer nav a{color:#f7f5f2;font-weight:500}
@media (max-width:900px){
  .scribble{display:none}
  .avail{width:88px;height:88px;top:-40px}
  .contact{padding-top:96px}
  footer{margin-top:90px}
}

/* =================================================================
   13. CASE STUDY PAGES
   ================================================================= */
.article-head{background:var(--lavender);border-bottom:1.5px solid var(--line);padding-block:72px 84px}
.article-head .shell{max-width:900px}
.back{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-size:14.5px;font-weight:500;color:var(--ink-70);margin-bottom:34px;
}
.back:hover{color:var(--ink)}
.article-head .kicker{margin:0 0 18px}
.article-head h1{font-size:clamp(32px,5.4vw,56px);font-weight:600;letter-spacing:-.04em;line-height:1.1}
.article-head .dek{margin-top:20px;font-size:19px;max-width:60ch}
.article-head .metrics{margin-top:30px}

.article{max-width:760px;margin:0 auto;padding:76px var(--gutter) 96px}
.article h2{font-size:clamp(25px,3.4vw,33px);margin-top:64px;letter-spacing:-.03em}
.article h3{font-size:20px;margin-top:44px;font-weight:600}
.article h4{font-size:17px;margin-top:32px;font-weight:700}
.article > p{margin-top:20px;color:var(--ink-70);font-size:17px;line-height:1.68}
.article > p:first-child{margin-top:0}
.article strong{color:var(--ink);font-weight:700}
.article em{font-style:italic}
.article a{color:var(--ink);text-underline-offset:3px}

.article ul.bul,.article ol.num{margin-top:20px;padding-left:26px;color:var(--ink-70)}
.article ul.bul{list-style:disc}
.article ol.num{list-style:decimal}
.article ul.bul li,.article ol.num li{margin-top:11px;padding-left:6px;line-height:1.6}
.article ul.check{margin-top:20px}
.article ul.check li{
  position:relative;padding-left:32px;margin-top:14px;color:var(--ink-70);line-height:1.6;
}
.article ul.check li::before{
  content:"";position:absolute;left:0;top:.42em;width:18px;height:18px;border-radius:5px;
  background:var(--mint);border:1.2px solid #a9cdb8;
}

.pull{
  margin-top:34px;padding:26px 30px;border-left:3px solid var(--gold);background:var(--cream);
  border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:19px;font-style:italic;line-height:1.5;
}
.lede{font-size:20px;color:var(--ink);line-height:1.6}

.fig{margin:38px 0 0}
.fig .shot{aspect-ratio:16/10}
.fig figcaption{margin-top:12px;font-size:13.5px;color:var(--ink-45);text-align:center}
.fig-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fig-pair .shot{aspect-ratio:1/1}
@media (max-width:640px){.fig-pair{grid-template-columns:1fr}}

.tbl{width:100%;border-collapse:collapse;margin-top:32px;font-size:15px}
.tbl th,.tbl td{border:1.2px solid var(--hairline);padding:14px 16px;text-align:left;vertical-align:top}
.tbl th{background:var(--cream);font-weight:700;font-size:14px}
.tbl td:first-child{font-weight:600;color:var(--ink);width:26%}
.tbl.results td:first-child{width:44%}
.tbl.results td{text-align:left}

.article-cta{
  margin-top:72px;padding-top:44px;border-top:1.5px solid var(--line);
  display:flex;gap:16px;flex-wrap:wrap;align-items:center;
}
.article-cta p{font-size:18px;font-weight:500;margin-right:auto}

/* ---------- 14. RESPONSIVE NAV + MOTION ---------- */
@media (max-width:1040px){
  .nav-links{
    display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;
    gap:4px;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);padding:16px 22px;
  }
  .nav-links.open{display:flex}
  .nav{position:relative}
  .nav-toggle{display:block;margin-left:auto}
  .socials{display:none}
}
@media (max-width:600px){
  .section{padding-block:76px}
  .head{margin-bottom:42px}
  .statement{padding-block:80px}
  .statement .quote-line{margin-top:56px}
  .stat{padding:14px 22px}
  .stat b{font-size:30px}
  .article{padding-block:56px 72px}
  .article h2{margin-top:48px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}


/* Portfolio refinements */
.work.oslash-work{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  grid-template-areas:
    "copy media"
    "resources resources";
  column-gap:46px;
  row-gap:30px;
  align-items:start;
}
.work.oslash-work > div:first-child{grid-area:copy}
.work.oslash-work .oslash-shot{
  grid-area:media;
  align-self:start;
  margin-top:0;
}
.resources.oslash-resources{
  grid-area:resources;
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:0;
}
.resources.oslash-resources .res{
  min-width:0;
  min-height:210px;
  padding:24px 24px 22px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  border-radius:12px;
}
.resources.oslash-resources .res b{
  font-size:16px;
}
.resources.oslash-resources .res span{
  margin-top:9px;
}
.resources.oslash-resources .res i{
  margin-top:auto;
  padding-top:22px;
  font-size:12.5px;
  white-space:normal;
}
.work .shot.project-media{
  aspect-ratio:auto;
  display:block;
  background:var(--paper);
  overflow:hidden;
}
.work .shot.project-media img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Keep the handwritten contact note in normal flow so it cannot
   overlap the LinkedIn / Medium links. */
.scribble{
  position:static;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:4px;
  margin:18px auto 0;
  width:max-content;
  max-width:100%;
}
.scribble em{
  margin-top:18px;
  width:auto;
  max-width:150px;
}
.reach{margin-top:24px}

@media (max-width:900px){
  .work.oslash-work{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "media"
      "resources";
    row-gap:26px;
  }
  .resources.oslash-resources{
    grid-template-columns:1fr;
  }
  .resources.oslash-resources .res{
    min-height:auto;
  }
  .scribble{display:flex}
}


/* ---------- SHARED CASE-STUDY COMPATIBILITY RULES ---------- */
.hero-face{
  display:inline-block;vertical-align:middle;width:.95em;height:.95em;
  border-radius:var(--r-pill);margin:0 .1em;overflow:hidden;
  background:linear-gradient(150deg,#f6c8d8,#e9d5f7);border:1.5px solid rgba(28,26,25,.14);
}
.hero-face img{width:100%;height:100%;object-fit:cover}

.fig .shot.has-img{aspect-ratio:auto;background:transparent;border:0;display:block;overflow:visible}
.fig .shot.has-img img{width:100%;height:auto;object-fit:contain;border-radius:var(--r-md);border:1px solid var(--hairline)}
.fig-pair{align-items:start}
.fig-pair .shot.has-img{aspect-ratio:auto}

.fig .shot.media{
  aspect-ratio:auto;
  display:block;
  background:none;
  overflow:hidden;
}
.fig .shot.media img{
  width:100%;
  height:auto;
  object-fit:contain;
}
