:root{--ink:#0f2d26;--sage:#6b7f72;--stone:#d5d6d1;--fog:#f7f7f4;--white:#fff;--line:rgba(15,45,38,.17)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--fog);color:var(--ink);font-family:Sora,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;background:var(--fog);position:relative;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:1.65rem;font-weight:700;letter-spacing:-.06em}.brand-mark{width:29px;height:29px;display:flex;align-items:flex-end;gap:3px;transform:rotate(-7deg)}.brand-mark i{display:block;width:7px;background:var(--ink);border-radius:5px}.brand-mark i:nth-child(1){height:14px}.brand-mark i:nth-child(2){height:25px}.brand-mark i:nth-child(3){height:19px}.site-header nav{display:flex;align-items:center;gap:2.2rem;font-size:.86rem;font-weight:500}.site-header nav>a:not(.nav-cta):hover{opacity:.55}.nav-cta,.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.5rem;padding:13px 18px;border:1px solid currentColor;font-weight:600;transition:.25s ease}.nav-cta:hover,.button:hover{transform:translateY(-2px)}.menu-button{display:none}.hero{min-height:calc(100vh - 92px);background:var(--ink);color:var(--white);display:grid;grid-template-columns:1.12fr .88fr;padding:10vh 5vw 5vh;position:relative;overflow:hidden}.hero-copy{position:relative;z-index:2}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:700}.eyebrow{display:flex;align-items:center;gap:11px;color:var(--stone)}.eyebrow span{width:24px;height:1px;background:var(--stone)}h1{font-size:clamp(4.4rem,8.6vw,9rem);line-height:.88;letter-spacing:-.075em;margin:7vh 0 4vh;font-weight:600}h1 em{font-style:normal;color:var(--stone);font-weight:400}.hero-intro{font-size:clamp(1rem,1.4vw,1.25rem);max-width:610px;color:#dbe1de;line-height:1.65}.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:5vh}.button-light{background:var(--white);color:var(--ink);border-color:var(--white);min-width:225px}.text-link{font-weight:600;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.35);padding:9px 0;display:inline-flex;gap:1.5rem}.hero-visual{position:relative;min-height:520px}.orbit{position:absolute;border:1px solid rgba(213,214,209,.23);border-radius:50%}.orbit-one{width:480px;height:480px;right:-90px;top:10px}.orbit-two{width:340px;height:340px;right:-20px;top:80px}.shape{position:absolute;background:var(--sage);border-radius:50%}.shape-a{width:130px;height:130px;right:82px;top:185px}.shape-b{width:45px;height:45px;right:345px;top:125px;background:var(--stone)}.shape-c{width:22px;height:22px;right:10px;top:390px;background:var(--white)}.hero-note{position:absolute;top:60px;right:120px;display:flex;flex-direction:column;gap:4px;font-size:.75rem}.hero-note span{color:var(--stone);font-size:.62rem}.hero-note.second{top:340px;right:260px}.hero-note.third{top:455px;right:30px}.hero-foot{position:absolute;bottom:28px;left:5vw;margin:0;color:var(--sage);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}.section-pad{padding:11vw 7vw}.section-label{color:var(--sage);margin:0 0 2rem}.intro{display:grid;grid-template-columns:1fr 3fr;gap:4vw}.intro h2,.section-heading h2,.about h2,.fit h2,.contact h2{font-size:clamp(2.2rem,4.5vw,5rem);line-height:1.08;letter-spacing:-.055em;font-weight:500;margin:0}.intro>div>p{font-size:1.1rem;max-width:720px;color:#445851}.services{background:var(--white)}.section-heading{display:grid;grid-template-columns:1fr 3fr;gap:4vw;margin-bottom:6vw}.section-heading h2{max-width:950px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stone)}.service-card{background:var(--fog);padding:2.3rem 1.8rem;min-height:410px;display:flex;flex-direction:column}.service-card.dark{background:var(--ink);color:var(--white)}.service-card>span,.step>span{font-size:.65rem;color:var(--sage)}.service-card h3,.step h3{font-size:1.35rem;line-height:1.25;margin:5rem 0 1rem;letter-spacing:-.03em}.service-card p{font-size:.88rem;color:#53655f}.service-card.dark p{color:#c5cfcb}.service-card ul{list-style:none;padding:0;margin:auto 0 0;border-top:1px solid var(--line)}.service-card.dark ul{border-color:rgba(255,255,255,.16)}.service-card li{font-size:.75rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.service-card.dark li{border-color:rgba(255,255,255,.16)}.about{background:var(--stone);display:grid;grid-template-columns:1fr 1.55fr;gap:8vw;align-items:start}.about-stat{position:sticky;top:130px;display:flex;align-items:flex-end;gap:1.2rem}.about-stat strong{font-size:clamp(6rem,13vw,12rem);line-height:.8;letter-spacing:-.09em;font-weight:500}.about-stat span{font-size:.75rem;line-height:1.4}.about-copy>p:not(.section-label){max-width:690px;font-size:1.05rem;color:#40534d}.dark-link{border-color:rgba(15,45,38,.35);margin-top:1.5rem}.approach{background:var(--ink);color:var(--white)}.approach .section-label{color:var(--stone)}.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.2);margin-top:6vw}.step{padding:3rem 3rem 1rem 0;border-right:1px solid rgba(255,255,255,.2);min-height:270px}.step:not(:first-child){padding-left:3rem}.step:last-child{border:0}.step h3{margin:4rem 0 1rem}.step p{color:#c1ccc8;font-size:.9rem}.fit{display:grid;grid-template-columns:1fr 1.5fr;gap:7vw}.fit h2{font-size:clamp(3rem,6vw,6rem)}.fit-list p{border-top:1px solid var(--line);margin:0;padding:1.5rem 0;display:grid;grid-template-columns:40px 1fr;gap:1rem;font-size:1rem}.fit-list p:last-child{border-bottom:1px solid var(--line)}.fit-list span{font-size:.65rem;color:var(--sage)}.contact{background:var(--sage);color:var(--white);display:grid;grid-template-columns:1.1fr 1fr;gap:9vw}.contact .section-label{color:var(--stone)}.contact-copy>p:last-child{color:#e7ebe8;max-width:600px;font-size:1rem}.contact-form label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.55);background:transparent;color:white;padding:13px 0;font:inherit;font-size:.95rem;outline:none;border-radius:0}.contact-form input:focus,.contact-form textarea:focus{border-color:white}.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,.6)}.button-dark{background:var(--ink);color:white;border:0;min-width:210px;cursor:pointer;font:inherit;font-size:.85rem}.form-note{font-size:.7rem;color:#e7ebe8;max-width:380px}footer{background:#091d18;color:white;padding:5vw 7vw 2.5vw;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;align-items:start}.footer-brand .brand-mark i{background:white}footer>p{color:var(--stone);font-size:.9rem}footer>div{display:flex;justify-content:flex-end;gap:2rem;font-size:.8rem}footer small{grid-column:1/-1;color:var(--sage);border-top:1px solid rgba(255,255,255,.15);padding-top:1.5rem;margin-top:2rem}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.site-header{height:76px}.menu-button{display:flex;width:42px;height:42px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:7px}.menu-button span{width:23px;height:1px;background:var(--ink)}.site-header nav{display:none;position:absolute;left:0;right:0;top:76px;background:var(--fog);padding:2rem 5vw;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.hero{min-height:auto;grid-template-columns:1fr;padding-top:12vh;padding-bottom:100px}.hero-visual{min-height:360px;margin-top:40px}.orbit-one{width:350px;height:350px;right:-160px}.orbit-two{width:240px;height:240px;right:-90px}.shape-a{width:95px;height:95px;right:10px;top:130px}.shape-b{right:220px;top:70px}.hero-note{right:20px}.hero-note.second{right:120px;top:260px}.hero-note.third{top:320px}.service-grid{grid-template-columns:1fr 1fr}.about{grid-template-columns:1fr}.about-stat{position:static}.section-heading,.intro{grid-template-columns:1fr}.fit{grid-template-columns:1fr}.contact{grid-template-columns:1fr}footer{grid-template-columns:1fr 1fr}footer>div{justify-content:flex-start}footer small{grid-column:1/-1}}@media(max-width:560px){.hero{padding-left:6vw;padding-right:6vw}.hero h1{font-size:19vw;margin-top:6vh}.hero-actions{align-items:flex-start;flex-direction:column;gap:.7rem}.hero-visual{min-height:310px}.hero-note.third{display:none}.section-pad{padding:20vw 6vw}.service-grid{grid-template-columns:1fr}.service-card{min-height:350px}.service-card h3{margin-top:3.5rem}.steps{grid-template-columns:1fr}.step,.step:not(:first-child){padding:2rem 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.2);min-height:auto}.step h3{margin:2rem 0 .7rem}.fit{gap:3rem}.contact{gap:4rem}footer{grid-template-columns:1fr}footer>div{flex-direction:column;gap:.5rem}}

/* Canonical Fettle brand lockup */
.site-header{height:108px}
.brand{gap:0;font-size:inherit;letter-spacing:normal}
.brand img{display:block;width:310px;height:auto}
.footer-brand{background:var(--fog);padding:10px 14px;width:max-content}
.footer-brand img{width:280px}
@media(max-width:900px){.site-header{height:90px}.site-header nav{top:90px}.brand img{width:250px}}
@media(max-width:560px){.brand img{width:205px}.footer-brand img{width:230px}}

/* Hero motion: business growth resolves into the canonical Fettle mark */
.morph-stage{position:absolute;inset:0;display:grid;place-items:center;isolation:isolate}
.morph-stage:before,.morph-stage:after{content:"";position:absolute;border:1px solid rgba(213,214,209,.13);border-radius:50%;animation:stage-breathe 8s ease-in-out infinite}
.morph-stage:before{width:min(38vw,520px);aspect-ratio:1}
.morph-stage:after{width:min(29vw,390px);aspect-ratio:1;animation-delay:-2s}
.morph-halo{position:absolute;width:min(24vw,320px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(107,127,114,.18),transparent 68%);filter:blur(8px);animation:halo-pulse 7s ease-in-out infinite}
.fettle-morph{width:min(38vw,520px);overflow:visible;position:relative;z-index:2}
.morph-bar{fill:var(--stone);transform-box:fill-box;transform-origin:center}
.morph-bar-one{animation:bar-one 8s cubic-bezier(.76,0,.24,1) infinite}
.morph-bar-two{fill:var(--sage);animation:bar-two 8s cubic-bezier(.76,0,.24,1) infinite}
.morph-bar-three{fill:#fff;animation:bar-three 8s cubic-bezier(.76,0,.24,1) infinite}
.chart-axis{stroke:rgba(255,255,255,.22);stroke-width:2;stroke-dasharray:390;animation:axis-cycle 8s ease-in-out infinite}
.chart-trend{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-dasharray:500;animation:trend-cycle 8s ease-in-out infinite}
.morph-caption{position:absolute;bottom:7%;left:50%;transform:translateX(-50%);width:220px;height:24px;text-align:center;z-index:3;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;color:var(--stone)}
.morph-caption span{position:absolute;inset:0;transition:opacity .3s}
.caption-chart{animation:caption-chart 8s ease-in-out infinite}.caption-fettle{animation:caption-fettle 8s ease-in-out infinite}
.morph-index{position:absolute;top:8%;right:5%;font-size:.62rem;letter-spacing:.18em;color:var(--sage);animation:index-float 4s ease-in-out infinite}
@keyframes bar-one{0%,8%{x:90px;y:420px;width:70px;height:0}20%,45%{x:90px;y:300px;width:70px;height:120px}61%,88%{x:70px;y:140px;width:340px;height:70px}100%{x:90px;y:420px;width:70px;height:0}}
@keyframes bar-two{0%,11%{x:215px;y:420px;width:70px;height:0}24%,45%{x:215px;y:230px;width:70px;height:190px}61%,88%{x:70px;y:250px;width:230px;height:70px}100%{x:215px;y:420px;width:70px;height:0}}
@keyframes bar-three{0%,14%{x:340px;y:420px;width:70px;height:0}28%,45%{x:340px;y:150px;width:70px;height:270px}61%,88%{x:70px;y:360px;width:95px;height:70px}100%{x:340px;y:420px;width:70px;height:0}}
@keyframes axis-cycle{0%{stroke-dashoffset:390;opacity:0}10%,44%{stroke-dashoffset:0;opacity:1}54%,100%{opacity:0}}
@keyframes trend-cycle{0%,18%{stroke-dashoffset:500;opacity:0}30%,44%{stroke-dashoffset:0;opacity:.8}52%,100%{opacity:0}}
@keyframes caption-chart{0%,48%{opacity:1}55%,100%{opacity:0}}@keyframes caption-fettle{0%,52%{opacity:0}61%,91%{opacity:1}100%{opacity:0}}
@keyframes stage-breathe{0%,100%{transform:scale(.94);opacity:.5}50%{transform:scale(1.05);opacity:1}}
@keyframes halo-pulse{0%,100%{transform:scale(.8);opacity:.4}50%{transform:scale(1.3);opacity:1}}
@keyframes index-float{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@media(max-width:900px){.morph-stage{position:relative;min-height:360px}.fettle-morph{width:min(78vw,460px)}.morph-stage:before{width:min(84vw,500px)}.morph-stage:after{width:min(64vw,380px)}}
@media(max-width:560px){.hero-visual{min-height:390px}.morph-caption{bottom:1%}.morph-index{top:3%;right:2%}}
@media(prefers-reduced-motion:reduce){.morph-stage:before,.morph-stage:after,.morph-halo,.morph-index{animation:none}.chart-axis,.chart-trend{display:none}.morph-bar,.caption-fettle{animation:none}.caption-chart{display:none}.morph-bar-one{x:70px;y:140px;width:340px;height:70px}.morph-bar-two{x:70px;y:250px;width:230px;height:70px}.morph-bar-three{x:70px;y:360px;width:95px;height:70px}}

/* Interactive service columns */
.service-card,.service-card.dark{background:var(--stone);color:var(--ink);transition:background-color .38s ease,color .38s ease,transform .38s ease}
.service-card p,.service-card.dark p{color:#53655f;transition:color .38s ease}
.service-card ul,.service-card.dark ul{border-color:var(--line)}
.service-card li,.service-card.dark li{border-color:var(--line);transition:border-color .38s ease}
.service-card:hover,.service-card:focus-within{background:var(--ink);color:var(--white);transform:translateY(-8px)}
.service-card:hover p,.service-card:focus-within p{color:#c5cfcb}
.service-card:hover ul,.service-card:focus-within ul,.service-card:hover li,.service-card:focus-within li{border-color:rgba(255,255,255,.16)}
@media(hover:none){.service-card:hover{background:var(--stone);color:var(--ink);transform:none}.service-card:hover p{color:#53655f}}

/* Rotating commercial proof points */
.stat-carousel{position:sticky;top:130px;display:block;min-height:320px;width:100%;overflow:hidden}
.stat-slides{position:relative;min-height:245px}
.stat-slide{position:absolute;inset:0;display:flex;align-items:flex-end;gap:1.2rem;opacity:0;transform:translateY(28px);transition:opacity .55s ease,transform .55s ease;pointer-events:none}
.stat-slide.active{opacity:1;transform:none;pointer-events:auto}
.stat-slide strong{font-size:clamp(5.5rem,11vw,10.5rem);line-height:.78;letter-spacing:-.09em;font-weight:500;white-space:nowrap}
.stat-slide.stat-medium strong{font-size:clamp(4.8rem,8.2vw,8rem)}
.stat-slide.stat-long strong{font-size:clamp(4.2rem,7vw,6.8rem)}
.stat-slide span{font-size:.75rem;line-height:1.45;max-width:180px;padding-bottom:.35rem;flex:1 1 150px;min-width:110px}
.stat-controls{display:grid;grid-template-columns:36px 1fr auto 36px;align-items:center;gap:12px;border-top:1px solid rgba(15,45,38,.22);padding-top:14px}
.stat-arrow{width:36px;height:36px;border:1px solid rgba(15,45,38,.25);background:transparent;color:var(--ink);font:inherit;cursor:pointer;transition:background-color .25s,color .25s}
.stat-arrow:hover{background:var(--ink);color:var(--white)}
.stat-progress{height:2px;background:rgba(15,45,38,.15);overflow:hidden}.stat-progress i{display:block;width:100%;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}
.stat-carousel.progressing .stat-progress i{animation:stat-progress 4.5s linear forwards}
.stat-count{font-size:.65rem;letter-spacing:.12em;color:var(--sage)}.stat-count b{color:var(--ink);font-weight:600}
@keyframes stat-progress{to{transform:scaleX(1)}}
@media(max-width:900px){.stat-carousel{position:static;min-height:285px}.stat-slides{min-height:210px}.stat-slide strong{font-size:clamp(5rem,18vw,9rem)}.stat-slide.stat-medium strong{font-size:clamp(4.5rem,15vw,7.5rem)}.stat-slide.stat-long strong{font-size:clamp(4rem,13vw,6.5rem)}}
@media(max-width:560px){.stat-carousel{min-height:280px}.stat-slides{min-height:205px}.stat-slide{align-items:flex-start;flex-direction:column;justify-content:flex-end;gap:.8rem}.stat-slide strong{font-size:20vw}.stat-slide.stat-medium strong{font-size:17vw}.stat-slide.stat-long strong{font-size:15vw}.stat-slide span{flex:0 0 auto;max-width:100%;min-width:0}.stat-slide span br{display:none}.stat-controls{grid-template-columns:36px 1fr auto 36px}}
@media(prefers-reduced-motion:reduce){.stat-slide{transition:none}.stat-carousel.progressing .stat-progress i{animation:none;transform:scaleX(1)}}

/* Tagline length adjustment */
.hero h1{font-size:clamp(3.8rem,6.4vw,7.2rem);line-height:.94}
@media(max-width:560px){.hero h1{font-size:13vw;line-height:1}}
