:root {
  --forest: #222e22;
  --forest-deep: #101a14;
  --lime: #e2f486;
  --light: #f8f7f2;
  --white: #ffffff;
  --violet: #9677d8;
  --ink: #172019;
  --line: rgba(34, 46, 34, .18);
  --radius: 30px;
  --max: 1380px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--light); font-family: "Satoshi", "Inter", Arial, sans-serif; font-size: 16px; line-height: 1.45; }
body::before { content: ""; position: fixed; inset: 0; opacity: .055; pointer-events: none; z-index: 30; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
a { color: inherit; }
img { max-width: 100%; display: block; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.045em; line-height: .98; }
h1 { font-size: clamp(3.4rem, 6.7vw, 7.3rem); max-width: 900px; margin-bottom: 30px; }
h2 { font-size: clamp(2.65rem, 5.2vw, 5.7rem); margin-bottom: 24px; }
h3 { font-size: clamp(1.65rem, 2.2vw, 2.6rem); }
em { color: var(--lime); font-style: normal; }
.skip-link { position: fixed; left: 20px; top: -80px; z-index: 100; padding: 12px 18px; background: var(--lime); color: var(--ink); border-radius: 8px; }
.skip-link:focus { top: 20px; }
.site-header { position: fixed; z-index: 20; top: 20px; left: 50%; width: min(calc(100% - 40px), var(--max)); transform: translateX(-50%); display: grid; grid-template-columns: 200px 1fr auto; align-items: center; min-height: 68px; padding: 8px 10px 8px 24px; border: 1px solid rgba(255,255,255,.6); border-radius: 999px; background: rgba(248,247,242,.92); box-shadow: 0 18px 48px rgba(9,22,13,.13); backdrop-filter: blur(14px); }
.brand img { width: 155px; height: auto; }
.site-header nav { display: flex; justify-content: center; gap: clamp(20px, 3vw, 46px); }
.site-header nav a { text-decoration: none; font-size: .91rem; font-weight: 600; }
.site-header nav a:hover, .site-header nav a:focus-visible { text-decoration: underline; text-underline-offset: 6px; }
.nav-socials { display:none; }
.menu-toggle { display: none; border: 0; background: transparent; font: inherit; font-weight: 700; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 54px; padding: 0 24px; width: fit-content; border-radius: 999px; background: var(--lime); color: var(--ink); font-weight: 800; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(205,235,74,.24); }
.button-small { min-height: 50px; justify-self: end; font-size: .88rem; }
.header-actions { display:flex;align-items:center;gap:10px; }
.header-socials { display:flex;gap:6px; }
.header-socials a { width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:.72rem;font-weight:800;text-decoration:none;transition:background .2s ease; }
.header-socials a:hover,.header-socials a:focus-visible { background:var(--lime); }
.header-socials svg { width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.header-socials .icon-fill { fill:currentColor;stroke:none; }
.header-socials .linkedin-icon { fill:currentColor;stroke:none; }
.dark-section { background: var(--forest); color: var(--light); }
.light-section { background: var(--light); color: var(--ink); }
.hero { position:relative;min-height:100svh;display:grid;place-items:center;padding:150px max(5vw,calc((100vw - var(--max))/2)) 80px;overflow:hidden;text-align:center; }
.hero-background { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.hero-overlay { position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,15,10,.48),rgba(7,15,10,.74)); }
.hero-copy { position:relative;z-index:2;max-width:980px;margin:0 auto;display:flex;flex-direction:column;align-items:center; }
.hero-copy .lead { max-width:760px; }
.eyebrow { color: var(--lime); text-transform: uppercase; letter-spacing: .2em; font-size: .78rem; font-weight: 800; margin-bottom: 26px; }
.section-label { margin: 0 0 18px; color: #647064; text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; font-weight: 800; }
.dark-section .section-label { color: var(--lime); }
.approach .section-label { color: var(--forest); opacity: .68; }
.lead { font-size: clamp(1.1rem, 1.5vw, 1.4rem); max-width: 640px; color: rgba(248,247,242,.8); margin-bottom: 32px; }
.capability-line { display: flex; align-items: center; gap: 13px; margin: 28px 0 0; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.capability-line i { width: 4px; height: 4px; background: var(--violet); border-radius: 50%; }
.installation { position: relative; min-height: 640px; perspective: 1000px; }
.wire { position: absolute; width: 1px; background: rgba(248,247,242,.5); top: -160px; transform-origin: top; }
.wire-a { height: 440px; left: 22%; transform: rotate(-4deg); }
.wire-b { height: 360px; left: 55%; transform: rotate(3deg); }
.wire-c { height: 560px; left: 84%; transform: rotate(-2deg); }
.panel { position: absolute; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; color: var(--ink); background: #eeeee7; border: 1px solid rgba(255,255,255,.4); box-shadow: 0 28px 50px rgba(0,0,0,.25); transform: rotateY(-9deg); }
.panel small { letter-spacing: .15em; font-weight: 700; }
.panel strong { font-size: 1.7rem; letter-spacing: -.04em; }
.panel-a { width: 210px; height: 260px; left: 4%; top: 100px; transform: rotate(-7deg) rotateY(-9deg); }
.panel-b { width: 230px; height: 300px; left: 38%; top: 30px; background: linear-gradient(145deg, #141d17, #45574c); transform: rotate(4deg) rotateY(-9deg); }
.panel-b::after { content: ""; position: absolute; width: 74px; height: 120px; border-radius: 50% 50% 12px 12px; background: #080d09; left: 78px; bottom: 32px; box-shadow: 0 -42px 0 -20px #080d09; }
.panel-c { width: 190px; height: 240px; left: 70%; top: 150px; transform: rotate(8deg) rotateY(-9deg); }
.panel-d { width: 230px; height: 210px; left: 13%; top: 400px; display: flex; flex-direction: row; align-items: end; gap: 16px; }
.chart-panel span { width: 24px; background: var(--forest); }
.chart-panel span:nth-child(1){height:35%}.chart-panel span:nth-child(2){height:68%;background:var(--lime)}.chart-panel span:nth-child(3){height:50%}.chart-panel span:nth-child(4){height:88%;background:var(--violet)}
.panel-e { width: 220px; height: 250px; right: 3%; bottom: 0; transform: rotate(-6deg) rotateY(-9deg); }
.lime-ribbon { position: absolute; z-index: 3; width: 900px; height: 48px; left: -60px; top: 270px; background: var(--lime); transform: rotate(-9deg); clip-path: polygon(0 40%, 20% 0, 38% 58%, 59% 18%, 79% 100%, 100% 55%, 100% 78%, 79% 98%, 58% 42%, 39% 85%, 20% 28%, 0 70%); opacity: .9; }
.focus-orb { position: absolute; z-index: 4; right: 17%; top: 42%; width: 68px; aspect-ratio: 1; border-radius: 50%; background: var(--lime); box-shadow: inset -16px -15px 28px rgba(34,46,34,.28), 0 22px 30px rgba(0,0,0,.35); }
.problem { min-height: 900px; display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 50px; padding: 100px max(5vw, calc((100vw - var(--max))/2)); }
.problem-copy h2 { max-width: 620px; }
.section-intro { font-size: 1.35rem; }
.problem-points { display: grid; grid-template-columns: repeat(3, 1fr); margin: 60px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.problem-points p { margin: 0; min-height: 120px; padding: 24px 18px 24px 0; font-size: 1.05rem; font-weight: 800; }
.problem-points p + p { padding-left: 18px; border-left: 1px solid var(--line); }
.closing-line { max-width: 520px; font-weight: 600; }
.problem-image { position: relative; margin: 0; height: 720px; overflow: hidden; border-radius: var(--radius); }
.problem-image img { width: 100%; height: 100%; object-fit: cover; object-position: 57% center; }
.capabilities { padding: 120px max(5vw, calc((100vw - var(--max))/2)); }
.capability-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; }
.capability-heading h2 { max-width: 850px; }
.lime-accent { color: var(--lime); }
.capability-heading p { max-width: 480px; color: rgba(248,247,242,.75); font-size: 1.2rem; }
.capability-list { margin-top: 90px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(248,247,242,.25); }
.capability-list article { padding: 30px 24px 30px 0; }
.capability-list article + article { border-left: 1px solid rgba(248,247,242,.25); padding-left: 24px; }
.capability-list span { color: var(--lime); font-size: .75rem; }
.capability-list h3 { margin: 42px 0 20px; font-size: 1.65rem; }
.capability-list p { color: rgba(248,247,242,.7); }
.approach { position: relative; padding: 120px max(5vw, calc((100vw - var(--max))/2)); background: var(--lime); overflow: hidden; }
.approach::before { content: ""; position: absolute; width: 38vw; aspect-ratio: 1; border: 1px solid rgba(34,46,34,.2); border-radius: 50%; right: -10vw; top: -50%; }
.approach-copy h2 { max-width: 850px; }
.process { list-style:none;margin:70px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:38px;position:relative; }
.process li { position:relative;min-height:220px;padding:30px 28px;border:1px solid rgba(34,46,34,.22);border-radius:24px;background:rgba(248,247,242,.42);overflow:visible;animation:approachPulse 8s ease-in-out infinite; }
.process li:nth-child(2){animation-delay:2s}.process li:nth-child(3){animation-delay:4s}.process li:nth-child(4){animation-delay:6s}
.process li:not(:last-child)::after { content:"→";position:absolute;right:-29px;top:50%;transform:translateY(-50%);font-size:1.6rem;font-weight:800;color:var(--forest); }
.process b { display:block;margin-bottom:38px;font-size:.78rem;letter-spacing:.14em;font-weight:800;opacity:.55; }
.process span { display:block;font-weight:800;font-size:1.35rem; }
.process p { margin:8px 0 0;opacity:.75; }
@keyframes approachPulse{0%,18%,100%{background:rgba(248,247,242,.42);transform:translateY(0);box-shadow:none}5%,13%{background:var(--forest);color:var(--light);transform:translateY(-10px);box-shadow:0 22px 45px rgba(34,46,34,.2)}}
.offers { padding: 120px max(5vw, calc((100vw - var(--max))/2)); }
.section-heading { max-width: 900px; margin-bottom: 60px; }
.section-heading p { font-size: 1.25rem; }
.offer-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 24px; }
.offer { min-height: 650px; border-radius: var(--radius); overflow: hidden; display: grid; grid-template-rows: 1fr auto; border: 1px solid var(--line); }
.offer-art { position: relative; overflow: hidden; min-height: 280px; }
.offer-content { background: #fff; }
.recording-art { background: linear-gradient(135deg, #d9d8cf 0 33%, #1f2b21 33% 67%, #e6e5dc 67%); }
.recording-art span { position: absolute; background: rgba(255,255,255,.82); width: 33%; height: 70%; top: 15%; box-shadow: 0 20px 45px rgba(0,0,0,.18); }
.recording-art span:nth-child(1){left:6%;transform:rotate(-4deg)}.recording-art span:nth-child(2){left:34%;background:#243028;transform:rotate(3deg)}.recording-art span:nth-child(3){right:5%;transform:rotate(-2deg)}
.recording-art::after { content:""; position:absolute; height:42px; width:120%; background:var(--lime); top:46%; left:-10%; transform:rotate(-6deg); opacity:.92; }
.offer-amplifier { color: var(--light); background: var(--forest); }
.system-art { background: radial-gradient(circle at 65% 40%, #5e775f, var(--forest-deep) 58%); }
.system-art span { position:absolute; width:30%; height:55%; border:1px solid rgba(255,255,255,.48); background:rgba(248,247,242,.08); backdrop-filter: blur(4px); box-shadow:0 18px 45px rgba(0,0,0,.3); }
.system-art span:nth-child(1){left:8%;top:22%;transform:rotate(-8deg)}.system-art span:nth-child(2){left:29%;top:10%;transform:rotate(5deg)}.system-art span:nth-child(3){left:53%;top:24%;transform:rotate(-3deg)}.system-art span:nth-child(4){right:2%;top:5%;transform:rotate(9deg)}
.system-art::after { content:""; position:absolute; width:110%; height:34px; background:var(--lime); left:-5%; top:48%; transform:rotate(8deg); }
.offer-body { padding: 38px; }
.offer-body h3 { margin-bottom: 14px; }
.offer-body h3 em { color: var(--lime); }
.offer-promise { font-size: 1.3rem; font-weight: 700; }
.offer-body > p:not(.offer-promise) { max-width: 570px; opacity: .75; margin-bottom: 30px; }
.decision-support { text-align: center; margin: 32px 0 0; }
.decision-support a { font-weight: 800; text-underline-offset: 5px; }
.work { padding: 120px max(5vw, calc((100vw - var(--max))/2)); background: #fff; }
.case-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.case { min-height: 440px; position: relative; display: flex; flex-direction: column; justify-content: end; padding: 30px; overflow: hidden; color: var(--light); background: var(--forest); border-radius: 22px; }
.case::before { content:""; position:absolute; inset:0; opacity:.7; transition: transform .45s ease; }
.case:hover::before { transform: scale(1.05); }
.case-aiti::before { background: linear-gradient(155deg, transparent, rgba(8,15,10,.92)), repeating-linear-gradient(90deg, #69756b 0 6px, #202b22 6px 20px); }
.case-etb::before { background: linear-gradient(155deg, transparent, rgba(8,15,10,.92)), radial-gradient(circle at 65% 25%, var(--lime), #3d5743 28%, #152019 70%); }
.case-williams::before { background: linear-gradient(155deg, transparent, rgba(8,15,10,.92)), linear-gradient(55deg, #433c48, #171e18 52%, #9a76d6); }
.case > * { position: relative; z-index: 1; }
.case-number { position: absolute; top: 26px; right: 26px; color: var(--lime); font-weight: 700; }
.case h3 { font-size: 1.8rem; }
.case p { margin-bottom: 0; color: rgba(248,247,242,.75); }
.text-link { display: inline-block; margin-top: 28px; font-weight: 800; text-underline-offset: 6px; }
.trusted { display: grid; grid-template-columns: repeat(5, 1fr); gap: 26px; align-items: center; margin-top: 90px; padding: 38px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trusted span { text-align: center; font-size: .84rem; font-weight: 700; color: rgba(23,32,25,.62); }
.testimonials { padding: 120px max(5vw, calc((100vw - var(--max))/2)); }
.carousel-controls { display:flex; justify-content:flex-end; gap:10px; margin:-18px 0 22px; }
.carousel-controls button { width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.25rem;cursor:pointer;transition:background .2s,transform .2s; }
.carousel-controls button:hover,.carousel-controls button:focus-visible { background:var(--lime);transform:translateY(-2px); }
.video-grid { display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:2px 2px 18px; }
.video-grid::-webkit-scrollbar { display:none; }
.video-card { flex:0 0 min(430px,38vw); scroll-snap-align:start; }
.testimonial-video { width:100%;aspect-ratio:9/16;border-radius:20px;overflow:hidden;background:var(--forest);box-shadow:0 18px 44px rgba(23,32,25,.14); }
.testimonial-video iframe { display:block;width:100%;height:100%;border:0; }
.video-person { font-weight: 800; margin: 18px 0 3px; }
.video-role { color: rgba(23,32,25,.62); font-size: .9rem; }
.work-showcase { padding:120px max(5vw,calc((100vw - var(--max))/2));overflow:hidden; }
.work-showcase .section-heading p { color:rgba(248,247,242,.7); }
.work-showcase .carousel-controls button { background:transparent;color:var(--light);border-color:rgba(248,247,242,.28); }
.work-showcase .carousel-controls button:hover,.work-showcase .carousel-controls button:focus-visible { background:var(--lime);color:var(--ink); }
.work-video-track { display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 24px; }
.work-video-track::-webkit-scrollbar { display:none; }
.work-video-card { flex:0 0 min(340px,27vw);aspect-ratio:9/16;border-radius:24px;overflow:hidden;background:#0c140e;scroll-snap-align:start;box-shadow:0 24px 60px rgba(0,0,0,.28); }
.work-video-card iframe { width:100%;height:100%;border:0;display:block; }
@media (max-width: 900px) { .video-card { flex-basis: min(410px, 72vw); } }
@media (max-width: 600px) { .video-card { flex-basis: 86vw; } .carousel-controls { margin-top: 0; } }
.cta { min-height: 760px; display:grid; grid-template-columns: .9fr 1.1fr; align-items:center; gap:80px; padding: 110px max(5vw, calc((100vw - var(--max))/2)); overflow:hidden; }
.cta-copy h2 { max-width: 760px; }
.secondary-link { display:inline-block;margin-left:26px;color:var(--light);text-underline-offset:6px; }
.stone-composition { height:520px; position:relative; }
.stone-composition span { position:absolute; bottom:55px; width:19%; border-radius: 44% 56% 25% 31%; background:linear-gradient(115deg,#5e665f,#151a16 65%); box-shadow:0 30px 36px rgba(0,0,0,.28); }
.stone-composition span:nth-child(1){left:3%;height:58%;transform:rotate(-5deg)}.stone-composition span:nth-child(2){left:25%;height:82%;transform:rotate(3deg)}.stone-composition span:nth-child(3){left:51%;height:49%;transform:rotate(-2deg)}.stone-composition span:nth-child(4){left:73%;height:70%;transform:rotate(6deg)}
.stone-composition i { position:absolute; z-index:2; left:-8%; top:48%; width:110%; height:62px; background:var(--lime); transform:rotate(7deg); clip-path:polygon(0 28%,100% 0,100% 72%,0 100%); }
.contact { padding: 120px max(5vw, calc((100vw - var(--max))/2)); display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; align-items:start; }
.contact-intro { position:sticky; top:130px; }
.contact-intro p { max-width:480px;font-size:1.2rem; }
.form-shell { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:14px; box-shadow:0 32px 80px rgba(34,46,34,.1); overflow:hidden; }
.form-shell iframe { width:100%; min-height:1080px; border:0; border-radius:20px; background:#fff; }
.faq { padding:120px max(5vw,calc((100vw - var(--max))/2));display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;border-top:1px solid var(--line);background:#fff; }
.faq-heading { position:sticky;top:130px;align-self:start; }
.faq-heading h2 { max-width:520px; }
.faq-heading > p:last-child { max-width:470px;font-size:1.1rem;color:rgba(23,32,25,.7); }
.faq-list { border-top:1px solid var(--ink); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative;padding:28px 58px 28px 0;list-style:none;cursor:pointer;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:800;letter-spacing:-.025em; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:1.25rem;font-weight:500;transition:background .2s ease,transform .2s ease; }
.faq-list summary:hover::after,.faq-list summary:focus-visible::after { background:var(--lime); }
.faq-list details[open] summary::after { content:"−";background:var(--lime);transform:translateY(-50%) rotate(180deg); }
.faq-list details p { max-width:760px;margin:0;padding:0 58px 28px 0;color:rgba(23,32,25,.72);font-size:1.05rem;line-height:1.6; }
.faq-link { color:var(--ink);font-weight:800;text-underline-offset:4px; }
footer { min-height:260px;padding:55px max(5vw,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1.15fr 1fr auto;gap:28px 60px;align-items:start;background:var(--lime); }
footer img { width:190px; }
footer p { margin:0;font-weight:700; }
footer a { font-weight:800;text-underline-offset:5px; }
.footer-brand p { max-width:390px;margin-top:22px; }
.footer-contact { display:flex;flex-direction:column;gap:8px; }
.footer-contact strong { margin-bottom:5px;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem; }
.footer-links { display:flex;flex-direction:column;gap:8px;align-items:flex-end; }
.footer-legal { grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(34,46,34,.24);font-size:.82rem; }
dialog { width:min(1000px,calc(100% - 30px)); padding:0;border:0;border-radius:24px;background:#101713;box-shadow:0 30px 100px rgba(0,0,0,.5); }
dialog::backdrop { background:rgba(8,12,9,.78);backdrop-filter:blur(6px); }
.floating-actions { position:fixed;z-index:30;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;padding:8px;border-radius:999px;background:rgba(248,247,242,.78);box-shadow:0 14px 45px rgba(12,20,14,.2);backdrop-filter:blur(18px); }
.floating-actions a { min-height:48px;display:inline-flex;align-items:center;padding:0 20px;border-radius:999px;color:var(--ink);font-weight:800;text-decoration:none;white-space:nowrap; }
.floating-actions .floating-primary { background:var(--lime); }
.page-progress { position:fixed;z-index:18;right:18px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:2px auto;gap:10px;align-items:stretch;color:var(--light);mix-blend-mode:difference; }
.page-progress-rail { position:relative;width:2px;border-radius:999px;background:rgba(255,255,255,.28);overflow:hidden; }
.page-progress-rail span { position:absolute;inset:0 0 auto;height:100%;background:#fff;transform:scaleY(0);transform-origin:top;transition:transform .12s linear; }
.page-progress ol { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:space-between;gap:8px; }
.page-progress a { display:flex;align-items:center;min-height:20px;color:inherit;text-decoration:none;opacity:.45;transition:opacity .25s ease,transform .25s ease; }
.page-progress a i { display:block;width:5px;height:5px;border:1px solid currentColor;border-radius:50%;background:transparent;transition:transform .25s ease,background .25s ease; }
.page-progress a:hover,.page-progress a:focus-visible,.page-progress a[aria-current="true"] { opacity:1;transform:translateX(2px); }
.page-progress a[aria-current="true"] i { background:currentColor;transform:scale(1.5); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .75s ease,transform .75s ease; }
.reveal.visible { opacity:1;transform:none; }

/* Image-led composition from the approved design reference */
.section-heading .section-label { margin-bottom: 18px; font-size: .78rem; }
.capabilities { display: grid; grid-template-columns: .9fr 1.1fr; gap: 30px 70px; align-items: center; }
.capability-heading { display: block; }
.capability-heading h2 { max-width: 680px; }
.capability-art { margin: 0; height: 520px; overflow: hidden; border-radius: 28px; }
.capability-art img { width: 100%; height: 100%; object-fit: cover; }
.capability-list { grid-column: 1 / -1; margin-top: 40px; }
.offer-art img { width: 100%; height: 100%; object-fit: cover; }
.case { isolation: isolate; }
.case::before { display: none; }
.case-img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.case-img-left { object-position: 0% center; }
.case-img-center { object-position: 50% center; }
.case-img-right { object-position: 100% center; }
.case-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(12,20,14,.03) 20%, rgba(12,20,14,.94) 100%); }
.cta { padding-left: 0; }
.cta-visual { margin: 0; align-self: stretch; min-height: 560px; overflow: hidden; }
.cta-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 34% center; }
.cta-copy { padding-right: max(5vw, calc((100vw - var(--max))/2)); }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 170px 1fr auto; }
  .header-socials { display:none; }
  .site-header nav { gap: 17px; }
  .hero { padding-top:170px; }
  .work-video-card { flex-basis:min(340px,68vw); }
  .problem { grid-template-columns:1fr; }
  .problem-image { height:650px; }
  .capability-heading { grid-template-columns:1fr;gap:20px; }
  .capabilities { grid-template-columns: 1fr; }
  .capability-art, .capability-list { grid-column: 1; }
  .capability-list { grid-template-columns:1fr 1fr; }
  .offer-grid { grid-template-columns:1fr; }
  .process { grid-template-columns:repeat(2,1fr); }
  .process li:nth-child(2)::after { display:none; }
  .contact { grid-template-columns:1fr; }
  .contact-intro { position:static; }
  .faq { grid-template-columns:1fr; }
  .faq-heading { position:static; }
}

@media (max-width: 760px) {
  h1 { font-size:clamp(3.25rem,14vw,5rem); }
  h2 { font-size:clamp(2.5rem,11vw,4rem); }
  .site-header { top:12px;width:calc(100% - 24px);grid-template-columns:1fr auto;padding:8px 10px 8px 18px; }
  .brand img { width:128px; }
  .header-actions { display:none; }
  .menu-toggle { display:block; }
  .site-header nav { display:none; position:absolute; top:74px; left:0; right:0; padding:22px; border-radius:24px; background:var(--light); box-shadow:0 20px 50px rgba(0,0,0,.15); flex-direction:column; }
  .site-header nav.open { display:flex; }
  .nav-socials { display:flex;gap:20px;padding-top:16px;border-top:1px solid var(--line); }
  .hero,.problem,.capabilities,.approach,.offers,.work,.testimonials,.contact,.faq { padding-left:22px;padding-right:22px; }
  .hero { padding:145px 22px 70px;min-height:100svh; }
  .hero-copy { padding:0; }
  .lead { font-size:1.08rem; }
  .capability-line { flex-wrap:wrap;justify-content:center;text-align:center; }
  .work-video-card { flex-basis:82vw; }
  .problem { padding-top:85px;padding-bottom:85px; }
  .problem-points { grid-template-columns:1fr; }
  .process { grid-template-columns:1fr;gap:18px;margin-top:48px; }
  .process li { min-height:auto; }
  .process li::after { display:none; }
  .floating-actions { right:12px;bottom:12px;flex-direction:column;align-items:stretch;border-radius:24px; }
  .floating-actions a { min-height:44px;justify-content:center;padding:0 16px;font-size:.82rem; }
  .page-progress { right:7px;gap:5px; }
  .page-progress a { min-height:16px; }
  .page-progress a i { width:4px;height:4px; }
  .problem-points p { min-height:auto;padding:18px 0; }
  .problem-points p + p { padding-left:0;border-left:0;border-top:1px solid var(--line); }
  .problem-image { height:500px; }
  .problem-image img { object-position:61% center; }
  .capability-list { grid-template-columns:1fr; }
  .capability-art { height:400px; }
  .capability-list article + article { border-left:0;border-top:1px solid rgba(248,247,242,.25);padding-left:0; }
  .process { grid-template-columns:1fr;margin-top:55px;padding-left:12px; }
  .process::before { width:1px;height:auto;top:13px;bottom:13px;left:24px;right:auto;transform:none; }
  .process li { padding:0 0 38px 55px; }
  .process li::before { left:0; }
  .offer { min-height:600px; }
  .offer-body { padding:28px; }
  .case-grid,.video-grid { grid-template-columns:1fr; }
  .case { min-height:390px; }
  .trusted { grid-template-columns:1fr 1fr; }
  .cta { grid-template-columns:1fr;gap:0;padding:0; }
  .cta-visual { min-height:390px; order:2; }
  .cta-copy { order:1; }
  .cta-copy { padding:80px 22px 50px; }
  .secondary-link { display:block;margin:20px 0 0; }
  .form-shell { padding:0;border:0;background:transparent;box-shadow:none; }
  .form-shell iframe { min-height:1200px;border-radius:18px; }
  .faq { padding-top:85px;padding-bottom:85px;gap:36px; }
  .faq-list summary { padding-top:22px;padding-bottom:22px;font-size:1.12rem; }
  footer { grid-template-columns:1fr;text-align:left;gap:34px; }
  footer img { margin:0; }
  .footer-links { align-items:flex-start; }
  .footer-legal { grid-column:1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none!important;transition:none!important; }
  .reveal { opacity:1;transform:none; }
}
