:root{
  --paper:#EDEEE9;
  --panel:#E1E3DA;
  --ink:#1B2420;
  --ink-soft:#4B554F;
  --accent:#E29A1F;
  --teal:#3E6259;
  --rose:#B5533C;
  --line: rgba(27,36,32,0.16);
  --line-strong: rgba(27,36,32,0.32);
}

/* ============================================================
   AMBIENT "BREATHING" LAYER — applies site-wide.
   A slow-drifting soft glow behind everything, plus gentle idle
   scale/float motion on key elements, so the page never feels
   static. Everything here is intentionally subtle and respects
   reduced-motion preferences.
   ============================================================ */
body{ position:relative; }
body::before{
  content:'';
  position:fixed; inset:-10%;
  z-index:0; pointer-events:none;
  background:
    radial-gradient(38rem 30rem at 12% 8%, rgba(226,154,31,0.10), transparent 60%),
    radial-gradient(34rem 28rem at 88% 18%, rgba(62,98,89,0.12), transparent 60%),
    radial-gradient(40rem 34rem at 50% 96%, rgba(181,83,60,0.08), transparent 60%);
  animation: site-breathe 11s ease-in-out infinite;
  will-change: transform, opacity;
}
header, footer, section, .back-bar{ position:relative; z-index:1; }
@keyframes site-breathe{
  0%,100%{ transform:scale(1) translate(0,0); opacity:0.9; }
  50%{ transform:scale(1.06) translate(-1%, 1%); opacity:1; }
}

/* Gentle idle breathing for photos, badges & key visuals */
.hero-photo-shape img, .about-photo, .team-photo, .logo-img, .person-photo{
  animation: soft-breathe 3s ease-in-out infinite;
}
.hero-badge{ animation: soft-float 2.5s ease-in-out infinite; }
.hero-badge-bottom{ animation-delay:-1.2s; }
@keyframes soft-breathe{
  0%,100%{ transform:scale(1); }
  50%{ transform:scale(1.025); }
}
@keyframes soft-float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-6px); }
}

/* Text breathing — subtle scale/opacity pulse for key headings & copy */
.text-breathe{
  display:inline-block;
  animation: text-breathe 3s ease-in-out infinite;
  transform-origin:center;
}
@keyframes text-breathe{
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.015); opacity:0.86; }
}

/* Card breathing — opacity/shadow pulse (no transform, so it never
   fights with a card's own :hover lift) */
[class*="card"]{
  animation: card-breathe 4s ease-in-out infinite;
}
@keyframes card-breathe{
  0%,100%{ opacity:1; }
  50%{ opacity:0.94; }
}

/* Icon breathing — small scale pulse on icon wrappers & standalone svgs.
   Elements that already carry their own animation (social orbit icons,
   kanban column icons) are left alone so they don't fight each other. */
[class*="icon"]:not(.hero-social-icon):not(.kanban-col-icon),
.wa-float svg{
  animation: soft-breathe 2.5s ease-in-out infinite;
}

/* Small text breathing — badges, tags, labels, eyebrows, chips, stats,
   plus every other small/fine-print text block on the site (nav, notes,
   card copy, list items, price lines, contact values, etc.) */
[class*="badge"], [class*="tag"], [class*="label"], [class*="eyebrow"],
[class*="chip"], [class*="kicker"], [class*="stat"], [class*="role"],
[class*="price-note"], .since-badge,
.navlinks a, .navtoggle, .back-btn,
.audit-card .sub, .audit-row, .audit-note, .section-num,
.teaser p, .teaser a.more,
.process-item .n, .process-item p,
.team-card p,
.service p, .service .price, .service ul.includes li,
.cs-platforms a,
.work-card p, .work-card ul li, .work-empty,
.contact-line .val, .contact-note,
.snapshot-row .snap-lock, .snapshot-row .snap-val,
.yt-note, .yt-val,
.person-info .person-phone,
.board-legend .item,
.kanban-card p, .kanban-card .chip,
.pricing-note-card p{
  animation: text-breathe 3.4s ease-in-out infinite;
}

/* Header & footer are excluded from every breathing effect above */
header, header *, footer, footer *{
  animation: none !important;
}

/* Reveal-on-scroll: elements start slightly settled/faded and ease
   into place as they enter the viewport (script.js toggles .in-view) */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-stagger.in-view > *{ animation:none; }

@media (prefers-reduced-motion: reduce){
  body::before{ animation:none; }
  .hero-photo-shape img, .about-photo, .team-photo, .logo-img, .person-photo,
  .hero-badge, .hero-social-icon, .text-breathe,
  [class*="card"], [class*="icon"], [class*="badge"], [class*="tag"],
  [class*="label"], [class*="eyebrow"], [class*="chip"], [class*="kicker"],
  [class*="stat"], [class*="role"], .since-badge,
  .navlinks a, .navtoggle, .back-btn,
  .audit-card .sub, .audit-row, .audit-note, .section-num,
  .teaser p, .teaser a.more,
  .process-item .n, .process-item p,
  .team-card p,
  .service p, .service .price, .service ul.includes li,
  .cs-platforms a,
  .work-card p, .work-card ul li, .work-empty,
  .contact-line .val, .contact-note,
  .snapshot-row .snap-lock, .snapshot-row .snap-val,
  .yt-note, .yt-val,
  .person-info .person-phone,
  .board-legend .item,
  .kanban-card p, .kanban-card .chip,
  .pricing-note-card p{ animation:none !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
}
.since-badge{font-weight:700; font-size:1.15em; color:var(--teal);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  margin:0;
  letter-spacing:-0.01em;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1440px;margin:0 auto;padding:0 40px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

/* NAV */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(237,238,233,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.logo{ font-family:'Fraunces', serif; font-size:1.15rem; font-weight:600; text-decoration:none; display:flex; align-items:center; gap:10px; }
.logo span{color:var(--accent);}
.logo-img{width:32px; height:32px; border-radius:50%; object-fit:cover; display:block;}
.navlinks{display:flex; gap:28px; font-size:0.92rem;}
.navlinks a{text-decoration:none; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:2px; transition:color .15s, border-color .15s;}
.navlinks a:hover, .navlinks a.active{color:var(--ink); border-color:var(--ink);}
.nav-cta{
  font-size:0.88rem; padding:9px 16px; background:var(--ink); color:var(--paper);
  border-radius:2px; text-decoration:none; white-space:nowrap;
}
.nav-back{font-size:0.88rem; padding:9px 16px; border:1px solid var(--line-strong); color:var(--ink-soft); border-radius:2px; text-decoration:none; white-space:nowrap; transition:color .15s, border-color .15s;}
.nav-back:hover{color:var(--ink); border-color:var(--ink);}
.navtoggle{display:none;}
@media (max-width:760px){
  .navlinks{
    display:none; position:absolute; top:64px; left:0; right:0;
    flex-direction:column; background:var(--paper); border-bottom:1px solid var(--line);
    padding:16px 20px; gap:16px;
  }
  .navlinks.open{display:flex;}
  .navtoggle{display:inline-block; background:none; border:1px solid var(--line-strong); padding:7px 11px; font-size:0.85rem; border-radius:2px; color:var(--ink); cursor:pointer;}
}

/* BACK BUTTON */
.back-bar{padding-top:18px;}
.back-btn{display:inline-flex; align-items:center; gap:6px; font-family:'IBM Plex Mono',monospace; font-size:0.8rem; color:var(--ink-soft); text-decoration:none; border:1px solid var(--line-strong); padding:7px 14px; border-radius:2px; transition:color .15s, border-color .15s;}
.back-btn:hover{color:var(--ink); border-color:var(--ink);}

/* PAGE HEADER (non-home pages) */
.page-header{padding:56px 0 40px;}
.page-eyebrow{font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--teal); margin-bottom:14px;}
.page-header h1{font-size:clamp(2rem,4vw,2.9rem);}
.page-header p{margin-top:16px; color:var(--ink-soft); max-width:52ch; font-size:1.02rem;}

/* HERO (home only) */
.hero{padding:92px 0 76px; position:relative;}
.hero-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:start;}
@media (max-width:820px){ .hero-grid{grid-template-columns:1fr;} }
.eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--teal); margin-bottom:18px; }
.hero h1{ font-size:clamp(2.3rem, 4.6vw, 3.5rem); line-height:1.08; max-width:15ch; }
.hero p.lede{ margin-top:22px; font-size:1.08rem; color:var(--ink-soft); max-width:46ch; }
.hero-ctas{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.btn{ display:inline-block; padding:13px 22px; text-decoration:none; font-size:0.94rem; border-radius:2px; font-weight:500; border:1px solid transparent; }
.btn-primary{background:var(--ink); color:var(--paper);}
.btn-secondary{border:1px solid var(--line-strong); color:var(--ink);}

.audit-card{ border:1px solid var(--line-strong); background:var(--panel); padding:26px 24px; font-family:'IBM Plex Mono', monospace; }
.audit-card .title{font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:0.95rem; margin-bottom:4px;}
.audit-card .sub{font-size:0.78rem; color:var(--ink-soft); margin-bottom:18px;}
.audit-row{display:flex; justify-content:space-between; padding:10px 0; border-top:1px solid var(--line); font-size:0.85rem;}
.audit-row:first-of-type{border-top:none;}
.audit-row .val{color:var(--teal); font-weight:500;}
.audit-note{margin-top:16px; font-size:0.74rem; color:var(--ink-soft); font-style:italic; font-family:'IBM Plex Sans',sans-serif;}

section{padding:72px 0; border-top:1px solid var(--line);}
.no-border{border-top:none;}
.section-head{display:flex; justify-content:space-between; align-items:baseline; gap:24px; margin-bottom:44px; flex-wrap:wrap;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.15rem);}
.section-num{font-family:'IBM Plex Mono',monospace; font-size:0.8rem; color:var(--ink-soft);}

/* HOME teasers */
.teaser-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:760px){ .teaser-grid{grid-template-columns:1fr;} }
.teaser{border:1px solid var(--line); padding:26px; background:var(--panel);}
.teaser .tag{font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--teal);}
.teaser h3{font-size:1.15rem; margin-top:10px; font-weight:500;}
.teaser p{color:var(--ink-soft); font-size:0.92rem; margin-top:10px;}
.teaser a.more{display:inline-block; margin-top:14px; font-size:0.85rem; text-decoration:underline; text-underline-offset:3px;}

/* ABOUT */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:760px){ .about-grid{grid-template-columns:1fr;} }
.about-grid p{color:var(--ink-soft); max-width:52ch;}
.about-grid p + p{margin-top:16px;}
.about-photo{width:180px; height:180px; border-radius:50%; object-fit:cover; margin-bottom:24px; border:1px solid var(--line-strong);}
.process{margin-top:8px;}
.process-item{display:grid; grid-template-columns:44px 1fr; gap:16px; padding:18px 0; border-top:1px solid var(--line);}
.process-item:last-child{border-bottom:1px solid var(--line);}
.process-item .n{font-family:'IBM Plex Mono',monospace; color:var(--accent); font-size:0.95rem; padding-top:2px;}
.process-item h3{font-size:1.02rem; font-weight:600; font-family:'IBM Plex Sans',sans-serif;}
.process-item p{margin-top:4px; color:var(--ink-soft); font-size:0.92rem;}
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; padding-top:40px; border-top:1px solid var(--line);}
@media (max-width:700px){ .stat-row{grid-template-columns:1fr 1fr;} }
.stat-row .stat b{font-family:'Fraunces',serif; font-size:2rem; font-weight:500; display:block;}
.stat-row .stat span{font-size:0.85rem; color:var(--ink-soft);}

/* TEAM */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:44px;}
@media (max-width:900px){ .team-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .team-grid{grid-template-columns:1fr;} }
.team-card{border:1px solid var(--line); background:var(--panel); padding:22px;}
.team-card .team-photo{width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:14px; border:1px solid var(--line-strong);}
.team-card h3{font-size:1.02rem; font-weight:600; font-family:'IBM Plex Sans',sans-serif;}
.team-card .role{font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--teal); margin-top:4px;}
.team-card p{color:var(--ink-soft); font-size:0.86rem; margin-top:10px;}
.team-social{display:flex; gap:14px; margin-top:12px;}
.team-social a{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--teal); text-decoration:none; border-bottom:1px solid transparent;}
.team-social a:hover{border-color:var(--teal);}

/* SERVICES */
.service-list{border-top:1px solid var(--line);}
.service{ display:grid; grid-template-columns:220px 1fr; gap:32px; padding:30px 0; border-bottom:1px solid var(--line); }
@media (max-width:700px){ .service{grid-template-columns:1fr; gap:10px;} }
.service .tag{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--teal); text-transform:lowercase;}
.service h3{font-size:1.25rem; margin-top:6px; font-weight:500;}
.service p{color:var(--ink-soft); margin-top:10px; max-width:56ch; font-size:0.96rem;}
.service .price{margin-top:12px; font-family:'IBM Plex Mono',monospace; font-size:0.82rem; color:var(--ink);}
.service .price-note{margin-top:6px; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--teal); max-width:180px;}

/* CREATOR PLATFORM LINKS (case studies) */
.cs-platforms{margin-top:20px; display:flex; flex-wrap:wrap; gap:10px;}
.cs-platforms a{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; border:1px solid var(--line-strong); padding:6px 14px; border-radius:999px; text-decoration:none; color:var(--ink); transition:border-color .15s, background .15s;}
.cs-platforms a:hover{border-color:var(--ink); background:var(--panel);}
.service ul.includes{margin:14px 0 0; padding-left:18px; color:var(--ink-soft); font-size:0.9rem;}
.service ul.includes li{margin-bottom:4px;}

/* WORK */
.work-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media (max-width:700px){ .work-grid{grid-template-columns:1fr;} }
.work-card{background:var(--panel); border:1px solid var(--line); padding:26px;}
.work-card .kicker{font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--rose); margin-bottom:10px;}
.work-card h3{font-size:1.1rem; font-weight:600; font-family:'IBM Plex Sans',sans-serif;}
.work-card p{color:var(--ink-soft); font-size:0.92rem; margin-top:10px;}
.work-card ul{margin:14px 0 0; padding-left:18px; color:var(--ink-soft); font-size:0.9rem;}
.work-card li{margin-bottom:6px;}
.work-empty{ grid-column:1/-1; border:1px dashed var(--line-strong); padding:36px; text-align:left; color:var(--ink-soft); font-size:0.94rem; }
.work-empty strong{color:var(--ink); display:block; font-family:'Fraunces',serif; font-size:1.15rem; font-weight:500; margin-bottom:8px;}

/* TESTIMONIALS */
.testi-empty{ border:1px solid var(--line); padding:48px 40px; text-align:center; background:var(--panel); }
.testi-empty h3{font-size:1.2rem; font-weight:500;}
.testi-empty p{color:var(--ink-soft); margin-top:10px; font-size:0.94rem;}
.testi-empty .btn{margin-top:20px;}

/* CONTACT */
.contact-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start;}
@media (max-width:760px){ .contact-grid{grid-template-columns:1fr;} }
.contact-grid h2{font-size:clamp(1.8rem,3.4vw,2.4rem); max-width:14ch;}
.contact-grid p{color:var(--ink-soft); margin-top:16px; max-width:44ch;}
.contact-block{border:1px solid var(--line-strong); padding:28px;}
.contact-line{display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid var(--line);}
.contact-line:first-child{border-top:none; padding-top:0;}
.contact-line .label{font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:var(--ink-soft);}
.contact-line .val{font-size:0.96rem; font-weight:500; text-decoration:none;}
.contact-note{margin-top:20px; font-size:0.85rem; color:var(--ink-soft);}

footer{border-top:1px solid var(--line); padding:28px 0; font-size:0.82rem; color:var(--ink-soft);}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}
footer a{text-decoration:none; color:var(--ink-soft);}
footer a:hover{color:var(--ink);}

/* FLOATING WHATSAPP BUTTON */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:90;
  width:50px; height:50px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 16px rgba(18,24,20,0.3);
  transition:transform .25s ease, box-shadow .25s ease;
}
.wa-float svg{width:24px; height:24px; display:block;}
.wa-float::before{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:2px solid rgba(37,211,102,0.55);
  opacity:0;
}
.wa-float:hover{transform:translateY(-3px) scale(1.08); box-shadow:0 10px 24px rgba(18,24,20,0.36);}
.wa-float:hover::before{opacity:1; animation:wa-ripple 1.1s ease-out infinite;}
@keyframes wa-ripple{
  0%{transform:scale(1); opacity:0.65;}
  100%{transform:scale(1.55); opacity:0;}
}
@media (max-width:640px){ .wa-float{right:14px; bottom:14px; width:46px; height:46px;} .wa-float svg{width:22px; height:22px;} }

/* CHANNEL SNAPSHOT — screenshot-style metrics row (Views / Watch time / Subscribers / Revenue) */
.snapshot-headline{
  font-family:'Fraunces', serif; font-weight:500; font-size:1.35rem;
  margin:28px 0 18px; line-height:1.4; color:var(--ink); text-align:center;
}
.snapshot-headline strong{color:var(--accent);}
.snapshot-row{display:grid; grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line-strong); background:var(--line); gap:1px; margin-top:6px;}
@media (max-width:700px){ .snapshot-row{grid-template-columns:repeat(2,1fr);} }
.snapshot-row .snap-cell{background:var(--panel); padding:18px 20px;}
.snapshot-row .snap-label{display:block; font-size:0.76rem; color:var(--ink-soft); margin-bottom:8px;
  font-family:'IBM Plex Mono',monospace;}
.snapshot-row .snap-label .warn{color:var(--rose); margin-left:3px;}
.snapshot-row .snap-val{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:500; display:block; color:var(--ink);}
.snapshot-row .snap-cell.blurred .snap-val{filter:blur(7px); user-select:none;}
.snapshot-row .snap-lock{display:block; font-size:0.65rem; color:var(--ink-soft); opacity:.75; margin-top:6px;
  font-family:'IBM Plex Mono',monospace; line-height:1.4;}

/* YT STUDIO-STYLE DASHBOARD CARD (channel snapshot) */
.yt-dashboard{ margin-top:24px; }
.yt-headline{
  font-family:'IBM Plex Sans', sans-serif; font-weight:700; font-size:1.4rem; line-height:1.4;
  text-align:center; margin:0 0 24px; color:#111;
}
@media (max-width:640px){ .yt-headline{font-size:1.1rem;} }
.yt-stats{
  display:grid; grid-template-columns:repeat(4,1fr);
  background:#F3F3F1; border-radius:12px; overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,0.05), 0 2px 8px rgba(0,0,0,0.06);
}
@media (max-width:700px){ .yt-stats{grid-template-columns:repeat(2,1fr);} }
.yt-stat{ padding:20px 24px; border-right:1px solid rgba(0,0,0,0.08); }
.yt-stat:nth-child(4){border-right:none;}
@media (max-width:700px){
  .yt-stat:nth-child(2){border-right:none;}
  .yt-stat:nth-child(3){border-top:1px solid rgba(0,0,0,0.08);}
  .yt-stat:nth-child(4){border-top:1px solid rgba(0,0,0,0.08);}
}
.yt-label{
  display:block; font-size:0.82rem; color:#5f6368; margin-bottom:10px;
  font-family:'IBM Plex Sans', sans-serif;
}
.yt-label .warn{color:#5f6368; margin-left:4px;}
.yt-val{font-family:'IBM Plex Sans', sans-serif; font-size:1.6rem; font-weight:700; display:block; color:#111;}
.yt-stat.blurred .yt-val{filter:blur(7px); user-select:none;}
.yt-privacy-note{
  font-size:0.82rem; color:var(--ink-soft); margin:0 0 14px; font-style:italic;
}
.yt-chart{margin-top:26px; position:relative;}
.yt-chart svg{width:100%; height:auto; display:block;}
.yt-chart-badges{position:absolute; right:0; bottom:26px; display:flex; gap:4px;}
.yt-chart-badges span{
  background:#3c4043; color:#fff; font-size:0.66rem; font-weight:600; line-height:1;
  padding:4px 5px; border-radius:3px; font-family:'IBM Plex Sans', sans-serif;
}

/* CONTACT — team person cards */
.person-card{border:1px solid var(--line); background:var(--panel); padding:24px; display:flex; align-items:center; gap:20px;}
.person-photo{flex-shrink:0; width:64px; height:64px; border-radius:50%; background:var(--teal); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:1rem; border:1px solid var(--line-strong); object-fit:cover;}
.person-info h3{font-size:1.05rem; font-weight:600; font-family:'IBM Plex Sans',sans-serif;}
.person-info .role{font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:var(--teal); margin-top:4px;}
.person-info .person-phone{display:inline-block; margin-top:10px; font-size:0.92rem; font-weight:500; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line-strong);}
.person-info .person-phone:hover{color:var(--teal); border-color:var(--teal);}

.person-card-lead{margin-bottom:24px; padding:34px; border-color:var(--line-strong); background:var(--paper); box-shadow:0 1px 0 var(--line-strong);}
.person-card-lead .person-photo{width:88px; height:88px; font-size:1.3rem; background:var(--accent);}
.person-card-lead .person-info h3{font-size:1.35rem;}
.person-card-lead .person-info .role{font-size:0.82rem;}
.person-card-lead .person-info .person-phone{font-size:1.02rem;}

.person-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media (max-width:600px){ .person-grid{grid-template-columns:1fr;} }

/* SERVICES — board (redesigned) */
.services-hero{ position:relative; overflow:hidden; padding-bottom:36px; }
.services-hero-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; }
.services-hero-copy{ max-width:56ch; }
.services-badge-stack{ display:flex; flex-direction:column; gap:12px; min-width:200px; }
.services-mini-badge{
  display:flex; align-items:center; gap:10px; border:1px solid var(--line-strong);
  background:var(--panel); padding:12px 16px; border-radius:6px;
  font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:var(--ink);
  box-shadow:0 8px 20px rgba(27,36,32,0.08);
}
.services-mini-badge .n{ font-family:'Fraunces',serif; font-size:1.3rem; color:var(--accent); line-height:1; }
.services-mini-badge:nth-child(2) .n{ color:var(--teal); }
.services-mini-badge:nth-child(3) .n{ color:var(--rose); }

.board-legend{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.board-legend .item{ display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--ink-soft); }
.board-legend .dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }

.kanban-board{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; align-items:start; margin-top:8px; }
@media (max-width:1050px){ .kanban-board{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .kanban-board{grid-template-columns:1fr;} }

.kanban-col{ --col-accent: var(--teal); background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:20px; position:relative; overflow:hidden; }
.kanban-col::before{ content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--col-accent); }
.kanban-col:nth-child(1){ --col-accent: var(--accent); }
.kanban-col:nth-child(2){ --col-accent: var(--teal); }
.kanban-col:nth-child(3){ --col-accent: var(--rose); }
.kanban-col:nth-child(4){ --col-accent: #6C6FA6; }

.kanban-col-head{display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.kanban-col-title-wrap{display:flex; align-items:center; gap:10px;}
.kanban-col-icon{
  width:30px; height:30px; border-radius:8px; flex-shrink:0;
  background:var(--col-accent); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
}
.kanban-col-icon svg{width:16px; height:16px;}
.kanban-col-icon{ animation: soft-breathe 2.5s ease-in-out infinite; }
.kanban-col:nth-child(2) .kanban-col-icon{ animation-delay:-0.65s; }
.kanban-col:nth-child(3) .kanban-col-icon{ animation-delay:-1.3s; }
.kanban-col:nth-child(4) .kanban-col-icon{ animation-delay:-1.95s; }
.board-legend .dot{ animation: soft-breathe 1.7s ease-in-out infinite; }
.board-legend .item:nth-child(2) .dot{ animation-delay:-0.8s; }
.board-legend .item:nth-child(3) .dot{ animation-delay:-1.6s; }
.board-legend .item:nth-child(4) .dot{ animation-delay:-2.4s; }
.services-mini-badge{ transition:transform .2s ease, box-shadow .2s ease; }
.services-mini-badge:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(27,36,32,0.14); }
.kanban-col-title{font-family:'IBM Plex Mono',monospace; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.5px; color:var(--ink); font-weight:500;}
.kanban-count{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--paper); background:var(--col-accent); padding:2px 9px; border-radius:20px; flex-shrink:0;}

.kanban-card{
  border:1px solid var(--line); background:var(--paper); padding:18px; margin-bottom:14px;
  border-radius:8px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
}
.kanban-card:last-child{ margin-bottom:0; }
.kanban-card:hover{transform:translateY(-5px); border-color:var(--col-accent); box-shadow:0 14px 28px rgba(27,36,32,0.12);}
.kanban-card.popular{ border-color:var(--col-accent); box-shadow:0 0 0 1px var(--col-accent) inset; }
.kanban-card-top{display:flex; justify-content:space-between; align-items:flex-start; gap:8px;}
.kanban-card .tag{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:var(--col-accent); text-transform:lowercase; display:flex; align-items:center; gap:8px; font-weight:500;}
.kanban-card h3{font-size:0.98rem; font-weight:600; margin-top:9px; line-height:1.32;}
.kanban-card p{color:var(--ink-soft); font-size:0.83rem; margin-top:8px; line-height:1.55;}
.kanban-card .chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:13px;}
.kanban-card .chip{font-size:0.68rem; background:var(--panel); border:1px solid var(--line); padding:3px 9px; color:var(--ink-soft); border-radius:20px;}
.kanban-card .price{
  display:inline-flex; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; font-weight:500; color:var(--ink);
  margin-top:15px; padding:5px 12px; border-radius:20px; background:var(--panel); border:1px solid var(--line);
}
.kanban-card .price-note{font-size:0.66rem; color:var(--col-accent); margin-top:6px;}
.kanban-new-badge{background:var(--accent); color:var(--paper); font-size:0.6rem; padding:2px 7px; border-radius:20px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:0.3px;}
.kanban-popular-badge{
  font-size:0.6rem; text-transform:uppercase; letter-spacing:0.4px; font-family:'IBM Plex Mono',monospace;
  color:var(--paper); background:var(--col-accent); padding:3px 8px; border-radius:20px; white-space:nowrap;
}

/* Services — how pricing works strip */
.pricing-note-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:0; }
@media (max-width:760px){ .pricing-note-strip{grid-template-columns:1fr;} }
.pricing-note-card{ border:1px solid var(--line); background:var(--panel); padding:24px; border-radius:10px; }
.pricing-note-card .num{ font-family:'Fraunces',serif; font-size:1.6rem; color:var(--accent); }
.pricing-note-card h3{ font-size:1.02rem; font-weight:600; font-family:'IBM Plex Sans',sans-serif; margin-top:8px; }
.pricing-note-card p{ color:var(--ink-soft); font-size:0.88rem; margin-top:8px; line-height:1.55; }

/* HOME — work we've done (same glass style as case studies, lighter blur) */
.home-work-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:44px;}
@media (max-width:700px){ .home-work-grid{grid-template-columns:1fr;} }

.home-work-card{
  color:inherit; position:relative; overflow:hidden; padding:26px;
  min-height:190px; display:flex; flex-direction:column; justify-content:flex-end;
  border-radius:16px;
  border:1px solid rgba(255,255,255,0.3);
  box-shadow:0 8px 32px 0 rgba(0,0,0,0.37);
  transition:transform .25s ease, box-shadow .25s ease;
  text-decoration:none;
}
.home-work-card:hover{transform:translateY(-4px); box-shadow:0 14px 40px 0 rgba(0,0,0,0.42);}
.home-work-card h3{margin-top:10px;}

.home-work-card .kicker{
  display:inline-block; width:fit-content;
  background:rgba(255,255,255,0.2); border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:5px 13px; border-radius:999px; font-size:0.7rem; letter-spacing:0.01em;
}

.home-work-card-img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover; object-position:center top;
  filter:blur(2px) saturate(1.1) brightness(0.95);
  transform:scale(1.08);
}
.home-work-card:not(.has-bg)::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(155deg, rgba(62,98,89,0.92) 0%, rgba(20,27,24,0.96) 100%);
}

.home-work-card::after{
  content:''; position:absolute; inset:0; z-index:0;
  background:rgba(255,255,255,0.2);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}

.home-work-card > *:not(.home-work-card-img){position:relative; z-index:1;}
.home-work-card h3{color:#fff; text-shadow:0 1px 6px rgba(0,0,0,0.45);}
.home-work-card p{color:rgba(255,255,255,0.9); text-shadow:0 1px 5px rgba(0,0,0,0.4);}
.home-work-card .kicker{color:#fff;}
.home-work-card:not(.has-bg) .kicker{color:#fff;}

.home-work-card.has-bg h3{color:var(--ink); text-shadow:none;}
.home-work-card.has-bg p{color:var(--ink-soft); text-shadow:none;}
.home-work-card.has-bg .kicker{color:var(--ink); background:rgba(255,255,255,0.55); border:1px solid rgba(27,36,32,0.18);}

/* HERO — photo + floating badges */
.accent-underline{background:linear-gradient(135deg,var(--accent),var(--rose)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;}
.hero-photo-wrap{position:relative; width:100%; max-width:600px; margin:0 auto;}
.hero-photo-shape{
  position:relative; width:100%; aspect-ratio:1/1; border-radius:20px; overflow:hidden;
}
.hero-photo-shape img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  border-radius:20px; opacity:0; transition:opacity 1s ease-in-out;
}
.hero-photo-shape img.hero-photo-active{opacity:1;}
.hero-badge{
  position:absolute; background:var(--paper); border:1px solid var(--line-strong);
  border-radius:999px; padding:9px 16px; font-family:'IBM Plex Mono',monospace;
  font-size:0.74rem; color:var(--ink); box-shadow:0 8px 20px rgba(27,36,32,0.12);
  white-space:nowrap;
}
.hero-badge-top{top:18px; left:-14px;}
.hero-badge-bottom{bottom:56px; right:-18px;}
@media (max-width:820px){
  .hero-badge-top{left:0;}
  .hero-badge-bottom{right:0;}
}
@media (max-width:480px){
  .hero-photo-wrap{max-width:400px;}
  .hero-badge{font-size:0.66rem; padding:7px 12px;}
}

/* HERO — orbiting social icons */
.hero-social-icon{
  position:absolute; width:46px; height:46px; border-radius:50%;
  margin:-23px 0 0 -23px;
  background:var(--paper); border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink); box-shadow:0 8px 20px rgba(27,36,32,0.14);
  text-decoration:none; opacity:0.92;
  animation:hero-orbit 18s linear infinite;
  transition:transform .22s ease, background .22s ease, color .22s ease, opacity .22s ease, box-shadow .22s ease;
}
.hero-social-icon svg{width:20px; height:20px;}
.hero-social-icon:nth-of-type(1){animation-delay:0s;}
.hero-social-icon:nth-of-type(2){animation-delay:-4.5s;}
.hero-social-icon:nth-of-type(3){animation-delay:-9s;}
.hero-social-icon:nth-of-type(4){animation-delay:-13.5s;}
.hero-social-icon:hover{
  animation-play-state:paused;
  background:var(--ink); color:var(--paper); opacity:1;
  transform:scale(1.18);
  box-shadow:0 12px 26px rgba(27,36,32,0.24);
}
@keyframes hero-orbit{
  0.0000%{ left:105.00%; top:50.00%; }
  4.1667%{ left:103.13%; top:61.91%; }
  8.3333%{ left:97.63%; top:73.00%; }
  12.5000%{ left:88.89%; top:82.53%; }
  16.6667%{ left:77.50%; top:89.84%; }
  20.8333%{ left:64.24%; top:94.43%; }
  25.0000%{ left:50.00%; top:96.00%; }
  29.1667%{ left:35.76%; top:94.43%; }
  33.3333%{ left:22.50%; top:89.84%; }
  37.5000%{ left:11.11%; top:82.53%; }
  41.6667%{ left:2.37%; top:73.00%; }
  45.8333%{ left:-3.13%; top:61.91%; }
  50.0000%{ left:-5.00%; top:50.00%; }
  54.1667%{ left:-3.13%; top:38.09%; }
  58.3333%{ left:2.37%; top:27.00%; }
  62.5000%{ left:11.11%; top:17.47%; }
  66.6667%{ left:22.50%; top:10.16%; }
  70.8333%{ left:35.76%; top:5.57%; }
  75.0000%{ left:50.00%; top:4.00%; }
  79.1667%{ left:64.24%; top:5.57%; }
  83.3333%{ left:77.50%; top:10.16%; }
  87.5000%{ left:88.89%; top:17.47%; }
  91.6667%{ left:97.63%; top:27.00%; }
  95.8333%{ left:103.13%; top:38.09%; }
  100.0000%{ left:105.00%; top:50.00%; }
}
@media (max-width:820px){
  .hero-social-icon{width:40px; height:40px; margin:-20px 0 0 -20px;}
  .hero-social-icon svg{width:17px; height:17px;}
}
