:root{
  --ivory:#F4EFE3;
  --ivory-2:#EFE7D2;
  --cream:#F6EFE2;
  --card:#F7F1E3;
  --card-2:#EEE4CF;
  --beige:#D8C9A3;
  --caramel:#C9A878;
  --caramel-d:#A8823F;
  --peach:#E8C9A8;
  --peach-soft:#F0DCC0;
  --sage:#8AA879;
  --sage-l:#B7C9A8;
  --sage-m:#9FB292;
  --mint:#DCE8D9;
  --teal:#6D8F82;
  --teal-l:#A8C0B4;
  --dk:#3A4536;
  --dk-2:#4A5C44;
  --dk-3:#55684F;
  --ink:#333D30;
  --ink-soft:#56634E;
  --muted:#7C8877;
  --line:rgba(122,110,80,.16);
  --sh-hi:rgba(255,255,255,.75);
  --sh-lo:rgba(122,104,70,.14);
  --amb:rgba(74,92,68,.35);
  --r-lg:32px;
  --r-md:28px;
  --r-sm:20px;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
@property --cir{ syntax:'<percentage>'; initial-value:0%; inherits:false; }
@property --bh{ syntax:'<percentage>'; initial-value:0%; inherits:false; }
@property --w{ syntax:'<percentage>'; initial-value:0%; inherits:false; }
@property --h{ syntax:'<percentage>'; initial-value:0%; inherits:false; }

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  color:var(--ink);
  background:
    radial-gradient(1200px 620px at 12% -4%, #F2EBD6 0%, transparent 62%),
    radial-gradient(1000px 720px at 108% 8%, #DCE5D3 0%, transparent 55%),
    radial-gradient(900px 900px at 50% 120%, #E4E9D8 0%, transparent 60%),
    linear-gradient(180deg, var(--ivory) 0%, #EFE6D1 100%);
  background-color:var(--ivory);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body::after{
  content:"";
  position:fixed; inset:0;
  background-image:radial-gradient(rgba(66,78,56,.055) 1px, transparent 1px);
  background-size:4px 4px;
  pointer-events:none;
  z-index:9999;
  opacity:.5;
  mix-blend-mode:multiply;
}
::selection{ background:rgba(138,168,121,.4); color:var(--ink); }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
:focus-visible{ outline:3px solid rgba(138,168,121,.65); outline-offset:3px; border-radius:6px; }
h1,h2,h3{ font-family:var(--serif); font-weight:600; color:var(--ink); letter-spacing:-.01em; line-height:1.12; }
h1 em, h2 em, blockquote em{ font-style:italic; color:var(--dk-2); }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--caramel-d); margin-bottom:18px;
}
.eyebrow-dot{ width:9px; height:9px; border-radius:50%; background:var(--caramel); box-shadow:0 0 0 5px rgba(201,168,120,.22); }
h1{ font-size:clamp(2.5rem,4.6vw,4.3rem); }
h2{ font-size:clamp(2rem,3.4vw,3.1rem); margin-bottom:14px; }
.wrap{ max-width:1280px; margin-inline:auto; padding-inline:clamp(20px,5vw,48px); }
.section{ position:relative; }
.pad{ padding-block:clamp(84px,11vw,150px); }
.sec-head{ max-width:680px; margin-bottom:clamp(40px,6vw,64px); }
.sec-lede{ color:var(--ink-soft); font-size:1.06rem; max-width:56ch; }
.grid{ display:grid; gap:22px; }

/* ---------- Buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:14px 24px; border-radius:999px;
  font-weight:650; font-size:.95rem; letter-spacing:.01em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
  will-change:transform;
}
.btn:hover{ transform:translateY(-3px); }
.btn-solid{
  color:#F6F0E0;
  background:linear-gradient(180deg,var(--sage-l),var(--sage) 55%,var(--teal));
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,.45),
    inset 0 -4px 8px rgba(58,69,54,.25),
    0 16px 30px -10px var(--amb);
}
.btn-solid:hover{ box-shadow:inset 0 2px 3px rgba(255,255,255,.45), inset 0 -4px 8px rgba(58,69,54,.25), 0 22px 40px -12px var(--amb); }
.btn-ghost{
  color:var(--dk-2);
  background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.14));
  border:1px solid var(--line);
  box-shadow:inset 0 2px 3px rgba(255,255,255,.6), 0 10px 22px -12px rgba(74,92,68,.4);
}
.btn-pill{
  padding:11px 20px; font-size:.88rem; color:#F6F0E0;
  background:linear-gradient(180deg,#A6BDA0,#7E9B6F 60%,#62806B);
  box-shadow:inset 0 2px 2px rgba(255,255,255,.4), inset 0 -3px 6px rgba(58,69,54,.3), 0 10px 22px -10px var(--amb);
  overflow:hidden;
}
.btn-glow{
  position:absolute; inset:0; border-radius:inherit;
  background:radial-gradient(120px 20px at 50% 0%, rgba(255,255,255,.55), transparent 70%);
  opacity:0; transition:opacity .4s;
}
.btn-pill:hover .btn-glow{ opacity:1; }
.btn-arrow{ display:inline-block; transition:transform .35s var(--ease); }
.btn:hover .btn-arrow{ transform:translateX(4px); }
.btn-xl{ padding:18px 34px; font-size:1.05rem; }

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px clamp(18px,4vw,52px);
  background:linear-gradient(180deg,rgba(246,240,224,.94),rgba(246,240,224,.5));
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  transition:background .4s, box-shadow .4s, padding .4s;
}
.nav.scrolled{ background:rgba(246,240,224,.9); box-shadow:0 12px 34px -22px rgba(74,92,68,.55); padding-block:10px; }
.brand{ display:inline-flex; align-items:center; gap:12px; }
.brand-mark{ position:relative; width:36px; height:36px; }
.brand-sphere{
  position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #FDF6EA, var(--sage) 48%, var(--teal) 100%);
  box-shadow:inset -4px -6px 10px rgba(58,69,54,.35), inset 3px 4px 6px rgba(255,255,255,.6), 0 8px 16px -6px var(--amb);
}
.brand-name{ font-family:var(--serif); font-size:1.4rem; font-weight:600; color:var(--dk); }
.brand-dot{ color:var(--caramel-d); }
.nav-links{ display:flex; align-items:center; gap:clamp(10px,2vw,28px); }
.nav-links a{ font-size:.92rem; font-weight:550; color:var(--ink-soft); position:relative; padding-block:6px; transition:color .3s; }
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:linear-gradient(90deg,var(--caramel),var(--sage));
  border-radius:2px; transition:right .35s var(--ease);
}
.nav-links a:hover{ color:var(--dk); }
.nav-links a:hover::after{ right:0; }
.nav-burger{ display:none; flex-direction:column; gap:5px; padding:8px; }
.nav-burger span{ width:22px; height:2px; border-radius:2px; background:var(--dk-2); transition:transform .35s, opacity .3s; }
.nav.open .nav-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.open .nav-burger span:nth-child(2){ opacity:0; }
.nav.open .nav-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-menu{
  position:fixed; top:-320px; left:14px; right:14px; z-index:999;
  display:grid; gap:4px; padding:14px;
  background:rgba(247,241,227,.96); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border:1px solid var(--line); border-radius:24px;
  box-shadow:0 30px 60px -30px rgba(74,92,68,.5);
  opacity:0; visibility:hidden; transition:top .45s var(--ease), opacity .35s, visibility .35s;
}
.mobile-menu.open{ top:74px; opacity:1; visibility:visible; }
.mobile-menu a{ padding:13px 16px; border-radius:16px; font-weight:600; color:var(--ink-soft); transition:background .3s, color .3s; }
.mobile-menu a:hover{ background:rgba(138,168,121,.16); color:var(--dk); }

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100vh;
  display:flex; flex-direction:column;
  padding-top:92px;
}
section[id], main[id]{ scroll-margin-top:96px; }
.hero-scene{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.scene-deco{ position:absolute; inset:-64px; transform:translate(var(--mx,0px), var(--my,0px)); will-change:transform; }
.hero-inner{
  position:relative; z-index:1; width:100%; max-width:1720px; margin-inline:auto;
  flex:1; display:grid; align-items:center;
  grid-template-columns:minmax(0,42fr) minmax(0,58fr);
  gap:clamp(28px,4vw,72px);
  padding:40px clamp(22px,5vw,80px) 110px;
}
.hero-copy{ max-width:640px; }
.lede{ color:var(--ink-soft); font-size:clamp(1rem,1.35vw,1.16rem); max-width:52ch; margin:26px 0 34px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-metrics{
  display:flex; flex-wrap:wrap; gap:clamp(18px,3vw,42px);
  margin-top:44px; padding-top:28px; border-top:1px solid var(--line);
}
.metric strong{ display:block; font-family:var(--serif); font-size:2rem; color:var(--dk); }
.metric span{ font-size:.82rem; color:var(--muted); }
.blur-in{ animation:heroUp 1s var(--ease) both; }
.blur-in h1{ animation-delay:.12s; } .blur-in p{ animation-delay:.05s; }
@keyframes heroUp{
  from{ opacity:0; transform:translateY(28px); filter:blur(8px); }
  to{ opacity:1; transform:none; filter:blur(0); }
}

/* Hero background blobs */
.bg-blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.75; will-change:transform; }
.b1{ width:56vw; height:56vw; left:-12vw; top:-18vh; background:radial-gradient(circle,#D9E0C3 0%,rgba(217,224,195,0) 70%); animation:drift 26s ease-in-out infinite alternate; }
.b2{ width:48vw; height:48vw; right:-14vw; top:4vh; background:radial-gradient(circle,#E7D6B4 0%,rgba(231,214,180,0) 70%); animation:drift 32s ease-in-out infinite alternate-reverse; }
.b3{ width:40vw; height:40vw; left:22vw; bottom:-16vh; background:radial-gradient(circle,#C7D5C2 0%,rgba(199,213,194,0) 70%); animation:drift 38s ease-in-out infinite alternate; }
.b4{ width:26vw; height:26vw; right:30vw; bottom:-8vh; background:radial-gradient(circle,#EFD2B2 0%,rgba(239,210,178,0) 72%); animation:drift 24s ease-in-out infinite alternate-reverse; }
@keyframes drift{ from{ transform:translate3d(0,0,0) scale(1); } to{ transform:translate3d(3vw,-2vh,0) scale(1.06); } }

/* Mountains */
.mountains{ position:absolute; left:0; bottom:-4px; width:100%; height:min(58vh,560px); pointer-events:none; }
.mountains path{ filter:drop-shadow(0 -2px 6px rgba(140,124,84,.1)); transform-origin:50% 100%; }
.m2{ bottom:-30px; height:min(52vh,500px); }
.m3{ bottom:-66px; height:min(46vh,440px); }
.m1{ animation:mfloat 16s ease-in-out infinite alternate; }
.m2{ animation:mfloat 20s ease-in-out infinite alternate-reverse; }
.m3{ animation:mfloat 24s ease-in-out infinite alternate; }
@keyframes mfloat{ from{ transform:translateY(0); } to{ transform:translateY(-16px); } }

/* Clay objects */
.clay{ position:absolute; pointer-events:none; }
.clay .sh-hi{ position:absolute; inset:0; border-radius:inherit; background:radial-gradient(60% 45% at 30% 22%, rgba(255,255,255,.65), rgba(255,255,255,0) 70%); pointer-events:none; }
.clay .sh-high{ position:absolute; inset:0; border-radius:inherit; background:linear-gradient(150deg, rgba(255,255,255,.5), rgba(255,255,255,0) 42%); pointer-events:none; }

.sculpt-1{ width:340px; height:300px; left:4%; top:8%;
  background:linear-gradient(160deg,#CBD9C0,#9DB392 55%,#83A08C);
  border-radius:62% 38% 55% 45% / 48% 55% 45% 52%;
  box-shadow:inset -22px -30px 46px rgba(58,69,54,.28), inset 18px 20px 34px rgba(255,255,255,.35), 0 40px 70px -30px var(--amb);
  animation:blob1 18s ease-in-out infinite alternate;
}
.sculpt-2{ width:260px; height:230px; right:2%; top:36%;
  background:linear-gradient(150deg,#EFE3C6,#CFB57F 62%,#C39F6A);
  border-radius:48% 52% 60% 40% / 55% 40% 60% 45%;
  box-shadow:inset -18px -24px 38px rgba(148,116,64,.30), inset 16px 18px 30px rgba(255,255,255,.4), 0 30px 60px -30px rgba(156,128,74,.55);
  animation:blob2 16s ease-in-out infinite alternate-reverse;
}
.sculpt-3{ width:180px; height:150px; left:14%; bottom:12%;
  background:linear-gradient(160deg,#E7D0AE,#CDA578);
  border-radius:58% 42% 46% 54% / 44% 58% 42% 56%;
  box-shadow:inset -14px -18px 28px rgba(140,104,52,.3), inset 12px 14px 22px rgba(255,255,255,.42), 0 20px 40px -20px rgba(156,128,74,.5);
  animation:blob1 20s ease-in-out infinite alternate;
}
.sphere-1{ width:92px; height:92px; left:38%; top:18%;
  background:radial-gradient(circle at 32% 28%, #FDF6EA, #B9C9A6 46%, #7F9A75 100%);
  border-radius:50%;
  box-shadow:inset -14px -16px 24px rgba(58,69,54,.32), inset 8px 10px 14px rgba(255,255,255,.55), 0 18px 34px -12px var(--amb);
  animation:spinY 22s linear infinite;
  transform-style:preserve-3d;
}
.sphere-2{ width:58px; height:58px; right:12%; top:12%;
  background:radial-gradient(circle at 32% 28%, #FBEEDB, #E0BE8E 48%, #BC9360 100%);
  border-radius:50%;
  box-shadow:inset -9px -11px 16px rgba(140,104,52,.32), inset 6px 7px 10px rgba(255,255,255,.5), 0 14px 26px -10px rgba(156,128,74,.5);
  animation:spinY 16s linear infinite;
}
.ring-1{ width:120px; height:120px; right:24%; top:46%;
  border-radius:50%;
  background:linear-gradient(140deg,#DCE7D8,#9FB79D 60%,#7C9A7E);
  box-shadow:inset -10px -12px 18px rgba(58,69,54,.3), inset 8px 9px 14px rgba(255,255,255,.5), 0 16px 30px -12px var(--amb);
}
.ring-1::after{ content:""; position:absolute; inset:16px; border-radius:50%; background:radial-gradient(circle at 34% 30%, #F0E8D2, #E3D7B4); box-shadow:inset -4px -6px 8px rgba(140,116,70,.28), inset 4px 6px 8px rgba(255,255,255,.55); }
.ring-2{ width:80px; height:80px; left:6%; top:44%;
  border-radius:50%;
  background:linear-gradient(150deg,#F2E3C9,#D9BE8C);
  box-shadow:inset -8px -10px 14px rgba(148,116,64,.3), inset 6px 7px 10px rgba(255,255,255,.5), 0 12px 24px -10px rgba(156,128,74,.5);
  animation:floatY 9s ease-in-out infinite alternate;
}
.ring-2::after{ content:""; position:absolute; inset:10px; border-radius:50%; background:radial-gradient(circle at 36% 30%, #F7EFDD,#E9DDBF); box-shadow:inset -3px -5px 6px rgba(140,116,70,.26), inset 3px 5px 6px rgba(255,255,255,.5); }
.disc-1{ width:150px; height:64px; left:26%; top:5%;
  border-radius:50%;
  background:linear-gradient(180deg,#9FB79D,#7C9A7E 60%,#66865F);
  box-shadow:inset 0 -6px 10px rgba(58,69,54,.3), inset 0 5px 8px rgba(255,255,255,.45), 0 14px 28px -12px var(--amb);
  transform:rotate(-8deg);
  animation:floatY 12s ease-in-out infinite alternate;
}
.cube-1{ width:106px; height:106px; right:6%; top:70%;
  border-radius:30px;
  background:linear-gradient(145deg,#F2E6C9,#D6C6A6 55%,#C3AF86);
  box-shadow:inset -16px -18px 28px rgba(140,116,70,.3), inset 12px 14px 20px rgba(255,255,255,.4), 0 20px 38px -16px rgba(156,128,74,.5);
  animation:floatY 14s ease-in-out infinite alternate;
}
.cube-1 .sh-hi{ border-radius:30px; }
.blob-1{ width:70px; height:60px; left:2%; bottom:26%;
  background:linear-gradient(150deg,#EFE3C6,#D7C29A);
  border-radius:48% 52% 40% 60% / 56% 42% 58% 44%;
  box-shadow:inset -8px -10px 16px rgba(148,116,64,.28), inset 6px 7px 12px rgba(255,255,255,.4), 0 12px 22px -10px rgba(156,128,74,.5);
  animation:blob2 14s ease-in-out infinite alternate;
}
.blob-2{ width:90px; height:66px; right:16%; bottom:8%;
  background:linear-gradient(150deg,#CFDED0,#9AB49C);
  border-radius:54% 46% 62% 38% / 44% 56% 44% 56%;
  box-shadow:inset -10px -12px 18px rgba(58,69,54,.3), inset 6px 7px 12px rgba(255,255,255,.45), 0 12px 24px -10px var(--amb);
  animation:blob1 12s ease-in-out infinite alternate-reverse;
}
.knob{ width:26px; height:26px; border-radius:50%;
  background:radial-gradient(circle at 34% 30%, #FBF3E2, #D0B37E 55%, #B38C4F 100%);
  box-shadow:inset -4px -5px 8px rgba(140,104,52,.32), inset 3px 4px 6px rgba(255,255,255,.5), 0 6px 12px -4px rgba(156,128,74,.5);
}
.knob-1{ left:30%; top:34%; animation:floatY 8s ease-in-out infinite alternate; }
.knob-2{ left:10%; top:22%; width:20px; height:20px; animation:floatY 10s ease-in-out infinite alternate-reverse; }
.knob-3{ right:38%; top:14%; width:18px; height:18px; background:radial-gradient(circle at 34% 30%, #F2f6ee, #A8BEAA 55%, #7D9A7F 100%); animation:floatY 9s ease-in-out infinite alternate; }
.cyl-1{ width:74px; height:118px; left:20%; bottom:26%;
  background:linear-gradient(90deg,#C7D8C2,#E4EEE1 40%,#B9CCB4 75%,#93AD94);
  border-radius:22px;
  box-shadow:inset -8px -6px 14px rgba(58,69,54,.28), inset 8px 8px 14px rgba(255,255,255,.55), 0 16px 30px -14px var(--amb);
  transform:rotate(14deg);
  animation:floatY 15s ease-in-out infinite alternate;
}
.cyl-1::after{ content:""; position:absolute; top:-6px; left:8%; width:84%; height:20px; background:radial-gradient(ellipse at 50% 30%, #EEF4EC, #B3C7AE 75%); border-radius:50%; box-shadow:inset -3px -4px 6px rgba(58,69,54,.25), inset 3px 3px 5px rgba(255,255,255,.5); }
.cyl-2{ width:56px; height:96px; right:8%; top:24%;
  background:linear-gradient(90deg,#EFDFC0,#FAF2E0 40%,#E6D1A9 76%,#CBAD79);
  border-radius:20px;
  box-shadow:inset -7px -5px 12px rgba(148,116,64,.28), inset 7px 7px 12px rgba(255,255,255,.55), 0 14px 26px -12px rgba(156,128,74,.5);
  transform:rotate(-12deg);
  animation:floatY 13s ease-in-out infinite alternate-reverse;
}
.cyl-2::after{ content:""; position:absolute; top:-5px; left:9%; width:82%; height:16px; background:radial-gradient(ellipse at 50% 30%, #FBF4E2, #E3CEA6 75%); border-radius:50%; box-shadow:inset -3px -3px 5px rgba(148,116,64,.25), inset 3px 3px 4px rgba(255,255,255,.5); }
@keyframes floatY{ from{ transform:translateY(0) rotate(0); } to{ transform:translateY(-16px) rotate(2deg); } }
@keyframes blob1{ from{ border-radius:62% 38% 55% 45% / 48% 55% 45% 52%; transform:translateY(0) rotate(0); } to{ border-radius:48% 52% 42% 58% / 56% 42% 54% 46%; transform:translateY(-14px) rotate(6deg); } }
@keyframes blob2{ from{ border-radius:48% 52% 60% 40% / 55% 40% 60% 45%; transform:translateY(0) rotate(0); } to{ border-radius:58% 42% 48% 52% / 44% 56% 44% 56%; transform:translateY(-12px) rotate(-7deg); } }
@keyframes spinY{ from{ transform:rotateY(0); } to{ transform:rotateY(360deg); } }
.light-sweep{
  position:absolute; inset:-10% auto auto 50%; width:170vw; height:170vw; pointer-events:none;
  background:conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(255,255,240,.07) 12deg, transparent 28deg, rgba(255,255,255,.08) 55deg, transparent 90deg, transparent 360deg);
  animation:sweep 34s linear infinite;
  transform:translateX(-50%);
  filter:blur(40px);
}
@keyframes sweep{ to{ transform:translateX(-50%) rotate(360deg); } }

/* ---------- DASHBOARD ---------- */
.dash{
  position:relative;
  perspective:1400px;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:132px;
  gap:16px;
  max-width:980px;
  margin-left:auto;
}
.dash-card{
  --r:0deg;
  position:relative;
  border-radius:var(--r-lg);
  padding:22px;
  background:
    radial-gradient(120% 90% at 20% 0%, rgba(255,255,255,.5), rgba(255,255,255,0) 46%),
    linear-gradient(155deg,#FBF5E8,#EFE5CF 62%,#E8DCC2);
  box-shadow:
    inset -2px -4px 8px rgba(122,104,70,.12),
    inset 2px 3px 7px rgba(255,255,255,.8),
    0 24px 46px -20px var(--amb);
  overflow:hidden;
  display:flex; flex-direction:column;
  will-change:transform;
  transform-style:preserve-3d;
}
.dash-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(90% 40% at 28% 0%, rgba(255,255,255,.45), rgba(255,255,255,0) 62%);
}
.dash-card > *{ position:relative; z-index:1; }
.dash-card:nth-child(1){ grid-column:1 / span 4; grid-row:1 / span 2; --r:-1deg; }
.dash-card:nth-child(2){ grid-column:5 / span 2; grid-row:1 / span 2; --r:1.2deg; }
.dash-card:nth-child(3){ grid-column:1 / span 2; grid-row:3; --r:.8deg; }
.dash-card:nth-child(4){ grid-column:3 / span 2; grid-row:3; --r:-.7deg; }
.dash-card:nth-child(5){ grid-column:1 / span 2; grid-row:4 / span 2; --r:-.5deg; }
.dash-card:nth-child(6){ grid-column:5 / span 2; grid-row:3; --r:.6deg; }
.dash-card:nth-child(7){ grid-column:3 / span 2; grid-row:4 / span 2; --r:1deg; }
.dash-card:nth-child(8){ grid-column:5 / span 2; grid-row:4 / span 2; --r:-.6deg; }
.card-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.card-head h3{ font-size:15px; letter-spacing:-.01em; }
.chip{
  font-size:10.5px; font-weight:650; letter-spacing:.02em;
  padding:4px 10px; border-radius:999px; white-space:nowrap;
}
.chip.up{ background:rgba(138,168,121,.24); color:#42523C; box-shadow:inset 0 1px 2px rgba(255,255,255,.5); }
.chip.soft{ background:rgba(201,168,120,.24); color:#8A6A35; box-shadow:inset 0 1px 2px rgba(255,255,255,.5); }
.card-foot{ margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; font-size:.72rem; color:var(--muted); }
.card-foot strong{ font-family:var(--serif); font-size:1.02rem; color:var(--dk); }

.area-chart{ width:100%; height:130px; display:block; }
.chart-grid line{ stroke:rgba(122,110,80,.14); stroke-width:1; }
.chart-area{ transform-origin:left top; transition:opacity 1s; }
.chart-line{
  stroke:url(#lineGrad); stroke-width:3.2; stroke-linecap:round;
  stroke-dasharray:1; stroke-dashoffset:1;
  filter:drop-shadow(0 4px 6px rgba(90,110,80,.35));
  transition:stroke-dashoffset 1.8s var(--ease);
}
.chart-dots circle{ fill:#FBF5E8; stroke:#5F7F52; stroke-width:2.5; }
.gp .chart-line{ stroke-dashoffset:0; }

.donut-wrap{ position:relative; width:132px; height:132px; margin:4px auto 6px; }
.donut{ width:100%; height:100%; transform:rotate(-90deg); }
.donut circle{ fill:none; stroke-width:13; stroke-linecap:round; }
.d-bg{ stroke:#E6DCC3; stroke-width:14; }
.d-seg{
  transition:stroke-dashoffset 1.6s var(--ease);
  stroke-dashoffset:289;
}
.seg1{ stroke:#8AA879; stroke-dasharray:130 289; }
.seg2{ stroke:#6D8F82; stroke-dasharray:100 289; }
.seg3{ stroke:#C9A878; stroke-dasharray:59 289; }
.gp .seg1{ stroke-dashoffset:0; }
.gp .seg2{ stroke-dashoffset:-130; }
.gp .seg3{ stroke-dashoffset:-230; }
.donut-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.donut-center strong{ font-family:var(--serif); font-size:1.7rem; color:var(--dk); }
.donut-center span{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.legend{ display:grid; gap:5px; font-size:.74rem; color:var(--ink-soft); }
.legend li{ display:flex; align-items:center; gap:8px; }
.legend b{ margin-left:auto; color:var(--dk); }
.lg{ width:9px; height:9px; border-radius:50%; box-shadow:inset -2px -2px 3px rgba(58,69,54,.3); }
.lg.c1{ background:#8AA879; } .lg.c2{ background:#6D8F82; } .lg.c3{ background:#C9A878; }

.center-card{ align-items:center; justify-content:center; text-align:center; }
.big-num{ font-family:var(--serif); font-size:clamp(2rem,3vw,2.6rem); letter-spacing:-.02em; color:var(--dk); line-height:1; }
.big-label{ margin-top:6px; font-size:.82rem; color:var(--muted); font-weight:600; }
.center-card .chip{ margin-top:10px; }
.spark-bars{ display:flex; align-items:flex-end; gap:5px; height:44px; margin-top:18px; }
.spark-bars i{
  width:8px; height:44px; border-radius:5px; flex:none;
  background:linear-gradient(180deg,#9DB392,#6D8F82);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.45), inset 0 -2px 3px rgba(58,69,54,.28);
  transform:scaleY(0); transform-origin:bottom;
  transition:transform 1s var(--ease);
  --h:50%;
}
.gp .spark-bars i{ transform:scaleY(var(--h)); transition-delay:calc(var(--i,0)*90ms); }
.spark-bars i:nth-child(1){ --i:0 } .spark-bars i:nth-child(2){ --i:1 }
.spark-bars i:nth-child(3){ --i:2 } .spark-bars i:nth-child(4){ --i:3 }
.spark-bars i:nth-child(5){ --i:4 } .spark-bars i:nth-child(6){ --i:5 }
.spark-bars i:nth-child(7){ --i:6 } .spark-bars i:nth-child(8){ --i:7 }

.activity{ display:grid; gap:9px; }
.activity li{ display:flex; gap:11px; align-items:flex-start; padding:8px 10px; border-radius:16px; background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(240,230,208,.35)); box-shadow:inset 0 1px 2px rgba(255,255,255,.6), 0 4px 10px -6px rgba(74,92,68,.35); }
.act-dot{ flex:none; width:10px; height:10px; border-radius:50%; margin-top:5px; box-shadow:inset -2px -2px 3px rgba(58,69,54,.3), 0 2px 4px -1px rgba(74,92,68,.4); }
.act-dot.a1{ background:#8AA879; } .act-dot.a2{ background:#6D8F82; }
.act-dot.a3{ background:#C9A878; } .act-dot.a4{ background:#D09A80; }
.activity div{ display:flex; flex-direction:column; gap:1px; }
.activity strong{ font-size:.8rem; color:var(--dk); font-weight:650; }
.activity small{ font-size:.66rem; color:var(--muted); }

.rings-row{ display:flex; justify-content:space-between; align-items:center; gap:8px; flex:1; }
.mini-ring{ position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; }
.mini-ring svg{ width:62px; height:62px; transform:rotate(-90deg); }
.mini-ring circle{ fill:none; stroke-width:8; stroke-linecap:round; }
.mr-bg{ stroke:#E6DCC3; }
.mr-fill{ stroke:#8AA879; stroke-dasharray:123 151; stroke-dashoffset:-151; transition:stroke-dashoffset 1.5s var(--ease); filter:drop-shadow(0 2px 3px rgba(90,110,80,.35)); }
.mini-ring:nth-child(2) .mr-fill{ stroke:#6D8F82; stroke-dasharray:142 151; }
.mini-ring:nth-child(3) .mr-fill{ stroke:#C9A878; stroke-dasharray:115 151; }
.gp .mr-fill{ stroke-dashoffset:0; }
.mini-ring b{ font-family:var(--serif); font-size:1rem; color:var(--dk); }
.mini-ring b span{ font-size:.6rem; }
.mini-ring em{ font-style:normal; font-size:.6rem; color:var(--muted); letter-spacing:.06em; text-transform:uppercase; }

.compare-block{ display:flex; align-items:center; gap:10px; flex:1; }
.cmp-item{ flex:1; display:flex; flex-direction:column; align-items:center; gap:10px; }
.cmp-label{ font-size:.66rem; color:var(--muted); font-weight:600; letter-spacing:.04em; }
.cmp-ring{
  --cir:0%;
  position:relative;
  width:clamp(72px,7vw,96px); aspect-ratio:1; border-radius:50%;
  background:conic-gradient(#8AA879 var(--cir), #E4DBC2 var(--cir));
  display:grid; place-items:center;
  box-shadow:inset -6px -8px 14px rgba(58,69,54,.22), inset 5px 6px 10px rgba(255,255,255,.55), 0 12px 24px -10px var(--amb);
  transition:--cir 1.6s var(--ease);
}
.cmp-ring.dark{ background:conic-gradient(#C9A878 var(--cir), #E4DBC2 var(--cir)); }
.cmp-ring::after{ content:""; position:absolute; width:64%; height:64%; border-radius:50%; background:radial-gradient(circle at 34% 30%, #FCF6EA, #EFE6D2); box-shadow:inset -3px -4px 6px rgba(140,116,70,.25), inset 3px 4px 6px rgba(255,255,255,.6); }
.cmp-ring span{ position:relative; z-index:1; font-family:var(--serif); font-size:1.15rem; color:var(--dk); }
.cmp-vs{
  font-size:.62rem; font-weight:700; letter-spacing:.1em; color:var(--muted);
  background:linear-gradient(180deg,#FBF5E8,#EADFC4); border-radius:50%; padding:8px 6px;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.7), 0 4px 8px -4px rgba(74,92,68,.4);
}
.pill-row{ display:flex; flex-wrap:wrap; gap:7px; }
.pill{
  display:inline-flex; align-items:center; gap:6px;
  font-size:.68rem; color:var(--ink-soft); font-weight:600;
  padding:6px 11px; border-radius:999px;
  background:linear-gradient(180deg,#FBF5E8,#EADFC4);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.7), inset 0 -2px 4px rgba(140,116,70,.12), 0 6px 12px -6px rgba(74,92,68,.4);
}
.pill.on{ background:linear-gradient(180deg,#A8BFA2,#7F9C71); color:#F6F0E0; box-shadow:inset 0 2px 2px rgba(255,255,255,.4), inset 0 -3px 5px rgba(58,69,54,.3), 0 6px 14px -6px var(--amb); }
.pg{ width:7px; height:7px; border-radius:50%; }
.pg.low{ background:#D09A80; } .pg.mid{ background:#C9A878; } .pg.high{ background:#8AA879; }
.pill.on .pg.high{ background:#F6F0E0; }
.pill-sub{ margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; padding-top:10px; }
.pill-sub span{ font-size:.7rem; color:var(--muted); }
.pill-sub strong{ font-family:var(--serif); font-size:1.3rem; color:var(--dk); }

.scroll-hint{ position:absolute; left:50%; bottom:18px; z-index:2; transform:translateX(-50%); width:26px; height:42px; border:2px solid var(--line); border-radius:14px; display:flex; justify-content:center; padding-top:7px; opacity:.8; }
.scroll-hint span{ width:4px; height:8px; border-radius:3px; background:var(--caramel); animation:hint 1.8s ease-in-out infinite; }
@keyframes hint{ 0%,100%{ transform:translateY(0); opacity:1; } 50%{ transform:translateY(10px); opacity:.3; } }

/* ---------- SERVICES ---------- */
.svc-grid{ grid-template-columns:repeat(3,1fr); }
.service-card{
  position:relative;
  border-radius:var(--r-md); padding:30px 26px;
  background:radial-gradient(130% 100% at 22% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 48%), linear-gradient(155deg,#FBF5E8,#EFE5CF 64%,#E8DCC2);
  box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 20px 38px -20px var(--amb);
  transition:transform .5s var(--ease), box-shadow .5s;
  will-change:transform;
}
.service-card:hover{ box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 30px 50px -22px var(--amb); }
.svc-ico{
  position:relative; display:block; width:56px; height:56px; border-radius:20px; margin-bottom:20px;
  box-shadow:inset 3px 4px 6px rgba(255,255,255,.6), inset -4px -6px 10px rgba(58,69,54,.18), 0 12px 22px -10px var(--amb);
}
.ico1{ background:linear-gradient(145deg,#BCD0B3,#8FAE82); }
.ico2{ background:linear-gradient(145deg,#F0DFBD,#C9A878); }
.ico3{ background:linear-gradient(145deg,#C4D6C7,#86A494); }
.ico4{ background:linear-gradient(145deg,#EFD3B2,#CE9A72); }
.ico5{ background:linear-gradient(145deg,#D6E2CF,#A2B898); }
.ico6{ background:linear-gradient(145deg,#E7D9B6,#BFA77B); }
.ti{ position:absolute; inset:0; border-radius:inherit; }
.ti::before,.ti::after{ content:""; position:absolute; left:50%; top:50%; border-radius:999px; background:rgba(250,246,233,.85); transform:translate(-50%,-50%); box-shadow:0 2px 6px -2px rgba(58,69,54,.5); }
.ti::before{ width:22px; height:22px; }
.ico1 .ti::before{ border-radius:50%; }
.ico1 .ti::after{ width:10px; height:10px; border-radius:3px; }
.ico2 .ti::after{ width:26px; height:12px; border-radius:999px; }
.ico3 .ti::after{ width:18px; height:18px; border-radius:50%; border:3px solid rgba(250,246,233,.85); background:transparent; }
.ico4 .ti::before{ background:transparent; border:3px solid rgba(250,246,233,.9); width:20px; height:20px; }
.ico4 .ti::after{ width:8px; height:8px; background:transparent; border:5px solid rgba(250,246,233,.85); }
.ico5 .ti::before{ background:transparent; border:3px solid rgba(250,246,233,.9); width:22px; height:22px; border-radius:50%; }
.ico5 .ti::after{ width:14px; height:10px; border-radius:2px; transform:translate(-50%,-50%) rotate(45deg); background:rgba(250,246,233,.9); }
.ico6 .ti::before{ width:10px; height:10px; background:rgba(250,246,233,.9); }
.ico6 .ti::after{ width:7px; height:7px; border-radius:50%; background:rgba(250,246,233,.9); transform:translate(-50%,-50%); }
.service-card h3{ font-size:1.18rem; margin-bottom:9px; }
.service-card p{ font-size:.9rem; color:var(--ink-soft); }

/* ---------- ABOUT ---------- */
.about{ background:linear-gradient(180deg, #EFF2E1 0%, #F4EFE3 40%); }
.split{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(40px,6vw,90px); align-items:center; }
.about-visual{ position:relative; min-height:440px; perspective:1200px; }
.hero-bust{
  position:absolute; left:6%; top:4%; width:300px; height:330px;
  background:linear-gradient(165deg,#CFDCC4,#94AC93 55%,#759077);
  border-radius:48% 52% 55% 45% / 48% 56% 44% 52%;
  box-shadow:inset -24px -28px 44px rgba(58,69,54,.3), inset 20px 22px 34px rgba(255,255,255,.4), 0 44px 80px -34px var(--amb);
  animation:blob1 16s ease-in-out infinite alternate;
}
.bust-n1,.bust-n2{ position:absolute; border-radius:50%; background:radial-gradient(circle at 32% 30%, #FBF4E3, #DCC79E 60%, #C0A06A); box-shadow:inset -6px -8px 12px rgba(140,104,52,.3), inset 5px 6px 10px rgba(255,255,255,.5), 0 14px 26px -10px rgba(156,128,74,.5); }
.bust-n1{ right:12%; top:8%; width:44px; height:44px; }
.bust-n2{ left:6%; bottom:16%; width:26px; height:26px; }
.about-disc1{ width:170px; height:170px; right:0; bottom:0; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #FDF6EA,#B9C9A6 48%,#7F9A75);
  box-shadow:inset -18px -20px 30px rgba(58,69,54,.3), inset 10px 12px 18px rgba(255,255,255,.5), 0 26px 46px -20px var(--amb);
  animation:floatY 13s ease-in-out infinite alternate;
}
.about-disc2{ width:86px; height:86px; left:0; bottom:-6px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #FBEEDB, #E0BE8E 50%, #B89260);
  box-shadow:inset -10px -12px 18px rgba(140,104,52,.3), inset 6px 7px 10px rgba(255,255,255,.5), 0 16px 30px -12px rgba(156,128,74,.5);
  animation:floatY 15s ease-in-out infinite alternate-reverse;
}
.about-ring{ width:190px; height:190px; right:-20px; top:-20px; border-radius:50%;
  background:linear-gradient(140deg,#DCE7D8,#9FB79D 60%,#7C9A7E);
  box-shadow:inset -12px -14px 22px rgba(58,69,54,.28), inset 8px 9px 14px rgba(255,255,255,.5), 0 18px 34px -12px var(--amb);
}
.about-ring::after{ content:""; position:absolute; inset:22px; border-radius:50%; background:radial-gradient(circle at 34% 30%, #F0E8D2, #E1D4B0); box-shadow:inset -4px -6px 8px rgba(140,116,70,.26), inset 4px 6px 8px rgba(255,255,255,.55); }
.about-orbit{ position:absolute; right:40px; bottom:30px; width:34px; height:34px; animation:spinY 14s linear infinite; }
.about-orbit span{ position:absolute; inset:0; border:2px dashed rgba(138,168,121,.6); border-radius:50%; }
.about-copy h2{ margin-bottom:20px; }
.about-text{ color:var(--ink-soft); font-size:1.05rem; max-width:54ch; margin-bottom:26px; }
.about-list{ display:grid; gap:12px; margin-bottom:36px; }
.about-list li{ display:flex; align-items:center; gap:12px; font-weight:550; color:var(--dk-2); }
.tick{ width:22px; height:22px; border-radius:8px; flex:none; position:relative; background:linear-gradient(145deg,#A9C0A3,#7F9C71); box-shadow:inset 2px 2px 4px rgba(255,255,255,.45), inset -2px -3px 5px rgba(58,69,54,.25); }
.tick::after{ content:""; position:absolute; left:6px; top:3px; width:5px; height:9px; border:solid rgba(250,246,233,.95); border-width:0 2px 2px 0; transform:rotate(45deg); }
.stats-row{ display:flex; gap:clamp(22px,4vw,54px); }
.stat-block strong{ display:block; font-family:var(--serif); font-size:2.1rem; color:var(--dk); }
.stat-block span{ font-size:.78rem; color:var(--muted); }

/* ---------- PROCESS ---------- */
.process-list{ display:grid; gap:18px; }
.step{
  position:relative; display:flex; align-items:center; gap:clamp(20px,4vw,42px);
  padding:clamp(22px,3vw,34px); border-radius:var(--r-md);
  background:linear-gradient(155deg,#FBF5E8,#EFE5CF 66%,#E9DEC4);
  box-shadow:inset -2px -4px 8px rgba(122,104,70,.1), inset 2px 3px 7px rgba(255,255,255,.8), 0 18px 36px -20px var(--amb);
  overflow:hidden;
}
.step-num{
  font-family:var(--serif); font-size:clamp(2rem,6vw,3.4rem); color:rgba(138,168,121,.28);
  line-height:1; flex:none; min-width:88px;
}
.step-body{ position:relative; z-index:1; max-width:640px; display:grid; grid-template-columns:auto 1fr; gap:4px 18px; align-items:baseline; }
.step-body h3{ font-size:1.35rem; }
.step-body p{ grid-column:1 / -1; color:var(--ink-soft); font-size:.96rem; }
.step-blob{
  position:absolute; right:-30px; top:-40px; width:150px; height:150px;
  border-radius:52% 48% 56% 44% / 46% 56% 44% 54%;
  background:radial-gradient(circle at 34% 30%, rgba(217,226,200,.85), rgba(199,214,190,.25) 70%);
  pointer-events:none;
}

/* ---------- PROJECTS ---------- */
.proj-grid{ grid-template-columns:repeat(2,1fr); }
.project-card{
  border-radius:var(--r-lg); overflow:hidden;
  background:linear-gradient(155deg,#FBF5E8,#EFE5CF 64%,#E8DCC2);
  box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 24px 44px -22px var(--amb);
  transition:transform .5s var(--ease), box-shadow .5s;
  will-change:transform;
}
.project-card:hover{ box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 32px 56px -24px var(--amb); }
.proj-art{ position:relative; height:200px; overflow:hidden; }
.pa1{ background:linear-gradient(150deg,#C6D7BE,#8FAE82 60%,#70917C); }
.pa2{ background:linear-gradient(150deg,#EFD9BA,#D3B07E 60%,#Bf9576); }
.pa3{ background:linear-gradient(150deg,#C3D6C9,#87A594 60%,#6D8F82); }
.pa4{ background:linear-gradient(150deg,#F2E3C6,#DCC298 60%,#C3A06A); }
.pa-sphere{
  position:absolute; width:96px; height:96px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, rgba(255,252,244,.9), rgba(250,244,228,.15) 60%);
  box-shadow:inset -14px -18px 24px rgba(58,69,54,.28), inset 8px 10px 14px rgba(255,255,255,.4);
}
.pa1 .pa-sphere{ left:16%; top:26%; }
.pa2 .pa-sphere{ right:18%; top:18%; width:120px; height:120px; }
.pa3 .pa-sphere{ left:30%; bottom:-30px; width:130px; height:130px; }
.pa4 .pa-sphere{ left:12%; top:30%; }
.pa-arc{
  position:absolute; width:180px; height:180px; border-radius:50%;
  border:20px solid rgba(248,241,222,.5); box-shadow:inset 0 0 30px rgba(255,255,255,.35);
}
.pa1 .pa-arc{ right:-40px; top:-40px; }
.pa2 .pa-arc{ left:-50px; bottom:-60px; border-width:16px; }
.pa3 .pa-arc{ right:-30px; bottom:-40px; }
.pa4 .pa-arc{ right:-40px; top:-30px; width:150px; height:150px; border-width:14px; }
.pa-dot{ position:absolute; width:16px; height:16px; border-radius:50%; background:rgba(250,246,233,.9); box-shadow:0 4px 10px -2px rgba(58,69,54,.5); }
.pa1 .pa-dot{ right:22%; top:30%; } .pa2 .pa-dot{ left:14%; top:26%; }
.pa3 .pa-dot{ right:20%; top:24%; } .pa4 .pa-dot{ right:8%; bottom:36%; }
.proj-body{ padding:24px 26px 28px; }
.proj-tag{ display:inline-block; font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--caramel-d); background:rgba(201,168,120,.18); padding:5px 12px; border-radius:999px; margin-bottom:14px; }
.proj-body h3{ font-size:1.3rem; margin-bottom:8px; }
.proj-body p{ font-size:.9rem; color:var(--ink-soft); margin-bottom:18px; }
.proj-link{ font-size:.85rem; font-weight:650; color:var(--dk-2); display:inline-flex; align-items:center; gap:6px; }
.proj-link::after{ content:""; height:1px; flex:0 0 0; background:var(--caramel); transition:flex .4s var(--ease); }
.proj-link:hover::after{ flex:1 0 26px; }

/* ---------- ANALYTICS ---------- */
.analytics{ overflow:hidden; }
.analytics-bg{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.analytics-bg .a1{ left:-10vw; top:-10vh; background:radial-gradient(circle,#D9E0C3 0%,rgba(217,224,195,0) 70%); }
.analytics-bg .a2{ right:-14vw; bottom:-12vh; background:radial-gradient(circle,#E7D6B4 0%,rgba(231,214,180,0) 70%); }
.ana-sphere1{ width:120px; height:120px; left:52%; top:8%; border-radius:50%; background:radial-gradient(circle at 32% 28%, #FDF6EA,#B9C9A6 48%,#7F9A75); box-shadow:inset -16px -18px 28px rgba(58,69,54,.3), inset 10px 12px 16px rgba(255,255,255,.5), 0 22px 40px -16px var(--amb); animation:floatY 15s ease-in-out infinite alternate; }
.ana-sphere2{ width:64px; height:64px; right:10%; top:44%; border-radius:50%; background:radial-gradient(circle at 32% 28%, #FBEEDB,#E0BE8E 50%,#BC9360); box-shadow:inset -9px -11px 16px rgba(140,104,52,.32), inset 6px 7px 10px rgba(255,255,255,.5), 0 14px 26px -10px rgba(156,128,74,.5); animation:floatY 12s ease-in-out infinite alternate-reverse; }
.ana-ring{ width:150px; height:150px; right:32%; top:16%; border-radius:50%; background:linear-gradient(140deg,#DCE7D8,#9FB79D 60%,#7C9A7E); box-shadow:inset -10px -12px 18px rgba(58,69,54,.28), inset 8px 9px 14px rgba(255,255,255,.5), 0 16px 30px -12px var(--amb); }
.ana-ring::after{ content:""; position:absolute; inset:18px; border-radius:50%; background:radial-gradient(circle at 34% 30%, #F0E8D2, #E1D4B0); box-shadow:inset -4px -6px 8px rgba(140,116,70,.26), inset 4px 6px 8px rgba(255,255,255,.55); }
.analytics .sec-head{ position:relative; z-index:1; }
.ana-dash{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
.ana-card{
  border-radius:var(--r-lg); padding:22px;
  background:radial-gradient(120% 90% at 20% 0%, rgba(255,255,255,.5), rgba(255,255,255,0) 46%), linear-gradient(155deg,#FBF5E8,#EFE5CF 62%,#E8DCC2);
  box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 24px 46px -20px var(--amb);
  display:flex; flex-direction:column;
  will-change:transform;
  --r:0deg;
}
.ana-card:nth-child(1){ grid-column:span 2; --r:-.6deg; }
.ana-card:nth-child(6){ grid-column:span 2; --r:.5deg; }
.ana-card .chart-grid line{ stroke:rgba(122,110,80,.14); }
.analytics .chart-line{ stroke:url(#lineGrad2); }
.analytics .chart-line{ stroke-width:3; }
.bar-chart{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; height:120px; padding-top:6px; }
.bar-wrap{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:8px; height:100%; }
.bar{ width:70%; max-width:38px; border-radius:12px 12px 6px 6px; transform-origin:bottom; transform:scaleY(0); transition:transform 1.2s var(--ease); --bh:50%; box-shadow:inset 0 2px 3px rgba(255,255,255,.4), inset 0 -3px 6px rgba(58,69,54,.26), 0 10px 18px -8px var(--amb); }
.gp .bar{ transform:scaleY(var(--bh)); }
.b1{ background:linear-gradient(180deg,#9DB392,#7F9C71); } .b2{ background:linear-gradient(180deg,#BFAD8D,#C9A878); }
.b3{ background:linear-gradient(180deg,#A9C0AA,#6D8F82); } .b4{ background:linear-gradient(180deg,#EFD3B2,#D09A72); }
.b5{ background:linear-gradient(180deg,#C7D8C2,#93AE95); }
.bar-wrap em{ font-style:normal; font-size:.62rem; color:var(--muted); letter-spacing:.05em; text-transform:uppercase; }
.gp .b2{ transition-delay:.1s } .gp .b3{ transition-delay:.2s } .gp .b4{ transition-delay:.3s } .gp .b5{ transition-delay:.4s }
.funnel{ display:grid; gap:9px; flex:1; align-content:center; }
.funnel i{
  font-style:normal; font-size:.72rem; color:var(--dk-2); font-weight:600;
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  padding:9px 14px; border-radius:999px;
  --w:0%;
  background:linear-gradient(180deg,#BCCFBE,#86A494);
  box-shadow:inset 0 2px 3px rgba(255,255,255,.5), inset 0 -3px 6px rgba(58,69,54,.26), 0 8px 16px -8px var(--amb);
  transform:scaleX(0); transform-origin:left;
  transition:transform 1.2s var(--ease);
}
.gp .funnel i{ transform:scaleX(var(--w)); }
.funnel b{ font-family:var(--serif); font-weight:600; }
.gp .funnel i:nth-child(2){ transition-delay:.12s } .gp .funnel i:nth-child(3){ transition-delay:.24s } .gp .funnel i:nth-child(4){ transition-delay:.36s }
.pulse-graph{ width:100%; height:90px; display:block; }
.pulse-line{ fill:none; stroke:#6D8F82; stroke-width:3; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 2s var(--ease); filter:drop-shadow(0 3px 4px rgba(60,90,80,.35)); }
.gp .pulse-line{ stroke-dashoffset:0; }
.pulse-fade{ fill:none; stroke:#6D8F82; stroke-width:8; stroke-linecap:round; opacity:.16; stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 2s var(--ease) .2s; }
.gp .pulse-fade{ stroke-dashoffset:0; }
.pulse-dot{ display:inline-flex; align-items:center; gap:6px; }
.pulse-dot::before{ content:""; width:8px; height:8px; border-radius:50%; background:#7F9C71; box-shadow:0 0 0 5px rgba(127,156,113,.25); }

/* ---------- TESTIMONIALS ---------- */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.testi-card{
  position:relative;
  border-radius:var(--r-lg); padding:34px 28px 26px;
  background:radial-gradient(130% 100% at 22% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 48%), linear-gradient(155deg,#FBF5E8,#EFE5CF 64%,#E8DCC2);
  box-shadow:inset -2px -4px 8px rgba(122,104,70,.12), inset 2px 3px 7px rgba(255,255,255,.8), 0 22px 42px -20px var(--amb);
  will-change:transform;
}
.quote-mark{ position:absolute; right:26px; top:12px; font-family:var(--serif); font-size:4rem; line-height:1; color:rgba(201,168,120,.35); }
.testi-card blockquote{ font-family:var(--serif); font-size:1.08rem; line-height:1.55; color:var(--ink); margin-bottom:22px; }
.testi-card figcaption{ display:flex; align-items:center; gap:12px; }
.avatar{ width:44px; height:44px; border-radius:50%; flex:none; box-shadow:inset 3px 4px 6px rgba(255,255,255,.5), inset -4px -6px 8px rgba(58,69,54,.2); }
.av1{ background:radial-gradient(circle at 34% 30%, #FBF3E2,#CDB080 55%,#A88A55); }
.av2{ background:radial-gradient(circle at 34% 30%, #F0F6EC,#A9C1AB 55%,#7C9A7E); }
.av3{ background:radial-gradient(circle at 34% 30%, #FBEEDC,#E2BC9A 55%,#C09070); }
.testi-card figcaption b{ display:block; font-size:.9rem; color:var(--dk); }
.testi-card figcaption small{ font-size:.72rem; color:var(--muted); }

/* ---------- CTA ---------- */
.cta{ padding-bottom:clamp(90px,12vw,160px); }
.cta-card{
  position:relative; overflow:hidden; text-align:center;
  border-radius:clamp(30px,5vw,56px); padding:clamp(50px,8vw,96px) clamp(24px,6vw,70px);
  background:radial-gradient(120% 140% at 50% 0%, #9DB392 0%, #7E9B6F 42%, #5C7A5F 78%, #4A5C44 100%);
  color:#F3ECD9;
  box-shadow:inset 0 3px 8px rgba(255,255,255,.25), inset 0 -10px 26px rgba(36,52,38,.45), 0 50px 90px -40px var(--amb);
}
.cta-clay{ position:absolute; border-radius:50%; pointer-events:none; }
.cta-clay.c1{ width:180px; height:180px; right:6%; top:-40px; background:radial-gradient(circle at 34% 30%, rgba(244,238,220,.5), rgba(244,238,220,.1) 60%, transparent 70%); box-shadow:inset -20px -22px 34px rgba(255,255,255,.18); animation:floatY 16s ease-in-out infinite alternate; }
.cta-clay.c2{ width:120px; height:120px; left:8%; bottom:-30px; background:radial-gradient(circle at 34% 30%, rgba(52,70,54,.4), rgba(52,70,54,.05) 60%); box-shadow:inset 16px 18px 26px rgba(255,255,255,.14); animation:floatY 20s ease-in-out infinite alternate-reverse; }
.cta-clay.c3{ width:60px; height:60px; right:24%; bottom:18%; background:radial-gradient(circle at 34% 30%, rgba(244,238,220,.55), rgba(244,238,220,.12) 65%); box-shadow:inset -8px -10px 14px rgba(255,255,255,.18); animation:floatY 12s ease-in-out infinite alternate; }
.cta-clay.c4{ width:44px; height:44px; left:30%; top:24%; background:radial-gradient(circle at 34% 30%, rgba(52,70,54,.45), rgba(52,70,54,.06) 65%); box-shadow:inset 7px 8px 12px rgba(255,255,255,.16); animation:floatY 14s ease-in-out infinite alternate-reverse; }
.cta-card h2{ color:#F6F0DF; font-size:clamp(1.9rem,4.4vw,3.4rem); max-width:18ch; margin-inline:auto; margin-bottom:16px; }
.cta-card h2 em{ color:#EFE0BE; }
.cta-card > p{ color:rgba(246,240,223,.85); max-width:46ch; margin-inline:auto; margin-bottom:34px; font-size:1.05rem; }
.cta-card .btn-solid{ background:linear-gradient(180deg,#F6E4C0,#E3C090 55%,#C79A60); color:#3A4536; box-shadow:inset 0 2px 3px rgba(255,255,255,.55), inset 0 -4px 8px rgba(148,116,64,.35), 0 18px 34px -10px rgba(30,44,32,.55); }
.cta-micro{ margin-top:18px; font-size:.8rem; color:rgba(246,240,223,.75); }
.cta-micro a{ color:#F3E8C8; text-decoration:underline; text-underline-offset:3px; }

/* ---------- FOOTER ---------- */
.footer{ background:linear-gradient(180deg,#4A5C44,#35422F); color:#EDE6D2; position:relative; }
.footer::before{ content:""; position:absolute; inset:0; background:radial-gradient(600px 200px at 20% 0%, rgba(139,180,150,.25), transparent 70%); pointer-events:none; }
.foot-inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  padding-block:44px; position:relative;
}
.foot-inner .brand-name{ color:#F1EAD6; }
.foot-links{ display:flex; flex-wrap:wrap; gap:20px; }
.foot-links a{ color:rgba(237,230,210,.75); font-size:.88rem; transition:color .3s; }
.foot-links a:hover{ color:#F1EAD6; }
.foot-social{ display:flex; gap:10px; }
.soc{
  width:38px; height:38px; display:grid; place-items:center; border-radius:14px;
  font-family:var(--serif); font-size:.9rem; color:#3A4536;
  background:linear-gradient(145deg,#F2E7CE,#D9C49B);
  box-shadow:inset 2px 3px 5px rgba(255,255,255,.5), inset -3px -4px 7px rgba(148,116,64,.25), 0 10px 18px -8px rgba(20,30,20,.7);
  transition:transform .35s var(--ease);
}
.soc:hover{ transform:translateY(-3px); }
.foot-bottom{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-block:20px 36px; border-top:1px solid rgba(237,230,210,.14); font-size:.74rem; color:rgba(237,230,210,.6); position:relative; }

/* ---------- TO TOP ---------- */
.to-top{
  position:fixed; right:22px; bottom:22px; z-index:900;
  width:46px; height:46px; border-radius:16px;
  font-size:1rem; color:#F3ECD9;
  background:linear-gradient(180deg,#A9C0A3,#7F9C71 60%,#62806B);
  box-shadow:inset 0 2px 3px rgba(255,255,255,.4), inset 0 -3px 6px rgba(58,69,54,.3), 0 14px 26px -10px var(--amb);
  opacity:0; transform:translateY(16px); pointer-events:none;
  transition:opacity .4s, transform .4s var(--ease);
}
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; } .blur-in{ animation:none; }
  .chart-line,.d-seg,.mr-fill,.pulse-line,.pulse-fade{ stroke-dashoffset:0 !important; }
  .spark-bars i,.bar,.funnel i{ transform:none !important; }
  .cmp-ring{ --cir:var(--cir); }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1280px){
  .dash{ grid-auto-rows:118px; }
  .area-chart{ height:100px; }
  .hero{ padding-top:80px; }
}
@media (max-width:1180px){
  .sculpt-3,.blob-1,.knob-1,.knob-2,.knob-3{ display:none; }
  .dash{ max-width:940px; }
}
@media (max-width:1024px){
  .hero-inner{ grid-template-columns:1fr; gap:46px; padding-top:20px; }
  .hero-copy{ max-width:760px; }
  .dash{ margin-inline:auto; }
  .scroll-hint{ display:none; }
  .dash-card:nth-child(1){ grid-column:1 / span 4; grid-row:1 / span 2; }
  .dash{ grid-auto-rows:116px; }
  .split{ grid-template-columns:1fr; }
  .about-visual{ min-height:400px; }
  .about-copy h2{ max-width:20ch; }
}
@media (max-width:900px){
  .dash{ grid-template-columns:repeat(2,1fr); grid-auto-rows:auto; }
  .dash-card:nth-child(1){ grid-column:1 / -1; grid-row:auto; }
  .dash-card:nth-child(2){ grid-column:1 / -1; grid-row:auto; }
  .dash-card:nth-child(3){ grid-column:1; grid-row:auto; }
  .dash-card:nth-child(4){ grid-column:2; grid-row:auto; }
  .dash-card:nth-child(5){ grid-column:1; grid-row:auto; }
  .dash-card:nth-child(6){ grid-column:2; grid-row:auto; }
  .dash-card:nth-child(7){ grid-column:1 / -1; grid-row:auto; }
  .dash-card:nth-child(8){ grid-column:1 / -1; grid-row:auto; }
  .dash-card{ padding:20px; border-radius:26px; }
  .area-chart{ height:120px; }
  .donut-wrap{ width:118px; height:118px; }
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .proj-grid{ grid-template-columns:1fr; }
  .testi-grid{ grid-template-columns:1fr; }
  .ana-dash{ grid-template-columns:repeat(2,1fr); }
  .ana-card:nth-child(1),.ana-card:nth-child(6){ grid-column:1 / -1; }
  .ana-card:nth-child(2),.ana-card:nth-child(3){ grid-column:span 1; }
  .cmp-ring{ width:76px; }
  .rings-row{ gap:4px; }
  .mini-ring svg{ width:52px; height:52px; }
  .nav-links{ display:none; }
  .nav-burger{ display:flex; }
}
@media (max-width:680px){
  .sphere-1,.sphere-2,.disc-1,.ring-2,.cyl-1,.cyl-2,.cube-1,.blob-2,.ring-1,.ana-ring{ display:none; }
  .mountains{ height:38vh; }
  .hero{ padding-top:78px; }
  .hero-inner{ gap:38px; }
  .hero-metrics{ gap:22px; }
  .svc-grid{ grid-template-columns:1fr; }
  .process-list{ gap:14px; }
  .step{ flex-direction:column; align-items:flex-start; gap:8px; }
  .step-num{ font-size:2.2rem; }
  .stats-row{ flex-wrap:wrap; gap:26px; }
  .cta-card h2{ font-size:1.8rem; }
  .foot-inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:560px){
  .dash{ grid-template-columns:1fr; }
  .dash-card:nth-child(1),.dash-card:nth-child(2),.dash-card:nth-child(3),
  .dash-card:nth-child(4),.dash-card:nth-child(5),.dash-card:nth-child(6),
  .dash-card:nth-child(7),.dash-card:nth-child(8){ grid-column:auto; grid-row:auto; }
  .dash-card{ padding:20px; }
  .dash-card:nth-child(2){ --r:0deg; }
  .ana-dash{ grid-template-columns:1fr; grid-auto-rows:auto; }
  .ana-card:nth-child(n){ grid-column:auto; grid-row:auto; }
  .cmp-ring{ width:88px; }
  .rings-row{ gap:10px; }
  .mini-ring svg{ width:58px; height:58px; }
  .proj-art{ height:170px; }
  .footer{ text-align:center; }
  .foot-inner{ align-items:center; }
  .foot-bottom{ justify-content:center; }
}
@media (max-width:430px){
  .hero-cta{ flex-direction:column; align-items:stretch; }
  .hero-cta .btn{ justify-content:center; }
  .brand-name{ font-size:1.2rem; }
  .nav .btn-pill{ display:none; }
  .step-body{ display:block; }
  .step-body p{ margin-top:6px; }
  .cmp-ring{ width:78px; }
}