
:root { 
    --s4-bg: #e6e6e6; 
    --s5-bg: #e6e6e6; 
    --s5-text: #111111;
    --bg-dark: #070707;
    --text-light: #e6e6e6;
    --accent: #FF9A3D;
    --pad-x: 4rem;
    --pad-top: 4rem;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body, html {
    width: 100%; background-color: #030303; color: #e6e6e6;
    font-family: 'Inter', sans-serif; overflow-x: clip; -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .sub-heading, .kf-card-title, .small-caps, .panel-title a { font-family: 'League Spartan', sans-serif !important; }
p, .sub-copy, .body-text, .s4-desc, .project-info p, .card p, .kf-card-center p { font-family: 'Inter', sans-serif !important; }

html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

.main-wrapper { position: relative; width: 100%; background-color: #030303; z-index: 1; }

.hero-track { height: 200vh; width: 100%; position: relative; background-color: #030303; z-index: 10; }
.hero-sticky-wrapper { position: sticky; top: 0; left: 0; width: 100%; height: 100vh; overflow: hidden; transform: translateZ(0); }
.hero-background-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('../images/myimage.webp'); background-size: cover; background-position: center center; transform: scale(1.2); transform-origin: center center; will-change: transform; z-index: 0; }
.hero-background-layer::after { content: ''; position: absolute; inset: 0; background: rgba(3,3,3,0); z-index: 1; }
.hero-content-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; display: flex; flex-direction: column; justify-content: space-between; padding: 8vh 4vw; box-sizing: border-box; }
.hero-top { width: 100%; max-width: 1800px; margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; }
.hero-bottom { width: 100%; max-width: 1800px; margin: 0 auto; display: flex; justify-content: flex-end; align-items: flex-end; }
.hero-right { max-width: 38%; display: flex; flex-direction: column; gap: 2rem; }
.status-pill { display: inline-flex; align-items: center; gap: 12px; background: rgba(230,230,230,0.05); border: 1px solid rgba(230,230,230,0.1); margin: 70px 0 0 0; padding: 8px 20px; border-radius: 50px; font-size: 0.75rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 2.5rem; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.status-pill .dot { width: 8px; height: 8px; background: #FF9A3D; border-radius: 50%; box-shadow: 0 0 10px rgba(255,154,61,0.8); }
.main-headline { font-size: clamp(3rem, 4vw, 7rem); font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; margin: 0; text-transform: uppercase; color: #e6e6e6; }
.sub-copy { color: #e6e6e6; font-size: 1.1rem; line-height: 1.6; font-weight: 400; margin: 0; }

.headline-descriptor { display: block; margin-top: 1.4rem; max-width: 26ch; font-family: 'Inter', sans-serif; font-size: clamp(0.85rem, 1vw, 1.05rem); font-weight: 500; line-height: 1.5; letter-spacing: 0.01em; text-transform: none; color: rgba(230,230,230,0.9); }
.headline-descriptor::before { content: ''; display: block; width: 36px; height: 2px; margin-bottom: 0.9rem; background: #FF9A3D; }
.btn-group { display: flex; flex-wrap: wrap; gap: 16px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 16px 28px; border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 0.9rem; transition: all 0.3s ease; }
.btn-primary { background-color: #FF9A3D; color: #000000; }
.btn-primary:hover { background-color: #ffffff; transform: translateY(-2px); }
.btn-primary .arrow-circle { background: #e6e6e6; color: #111; width: 24px; height: 24px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 1rem; }
.btn-secondary { background-color: transparent; color: #e6e6e6; border: 1px solid rgba(230,230,230,0.2); }
.btn-secondary:hover { border-color: #e6e6e6; background-color: rgba(230,230,230,0.05); transform: translateY(-2px); }

@keyframes smokeClear { 0% { opacity: 0; filter: blur(20px); transform: translateY(30px) scale(0.95); } 100%{ opacity: 1; filter: blur(0); transform: translateY(0) scale(1); } }
.status-pill   { opacity: 0; animation: smokeClear 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards; animation-delay: 0.2s; }
.main-headline { opacity: 0; animation: smokeClear 2.0s cubic-bezier(0.19, 1, 0.22, 1) forwards; animation-delay: 0.4s; }
.sub-copy      { opacity: 0; animation: smokeClear 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards; animation-delay: 0.7s; }
.btn-group     { opacity: 0; animation: smokeClear 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards; animation-delay: 0.9s; }

html.hero-hold .hero-content-layer .smoke-word { animation-play-state: paused; }

#s2 { position: relative; z-index: 20; background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,1)), url("../images/mainbg-grain.webp"); background-size: 100% 100%, 25vw auto; background-repeat: no-repeat, repeat; background-position: center top; padding: 12vh 6vw 0 6vw; box-sizing: border-box; width: 100%; min-height: 180vh; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; transform: translateZ(0); }
.spinning-emblem { position: absolute; top: 12vh; right: 4vw; width: 160px; height: 160px; z-index: 10; animation: spinEmblem 22s linear infinite; pointer-events: none; }
.spinning-emblem svg { width: 100%; height: 100%; overflow: visible; }
@keyframes spinEmblem { from{ transform: rotate(0deg) } to{ transform: rotate(360deg) } }
.content-layer { position: relative; z-index: 4; }
.statement-container { display: flex; justify-content: flex-start; width: 100%; }
.statement-text { font-size: clamp(2rem, 4.2vw, 5.5rem); font-weight: 400; letter-spacing: -0.03em; line-height: 1.1; color: #e6e6e6; max-width: 82%; margin: 0; font-variant-numeric: tabular-nums; }
.info-grid { display: flex; justify-content: space-between; align-items: stretch; width: 100%; margin-top: 25vh; position: relative; }
.info-col-left { display: flex; flex-direction: column; gap: 12vh; flex: 1; }
.info-col-right { display: flex; flex-direction: column; align-items: flex-start; margin-top: 15vh; flex: 1; }

.info-col-center { display: flex; justify-content: center; align-items: center; z-index: 50; position: relative; flex: 1; }
.magnetic-btn-s2 { width: 160px; height: 160px; border-radius: 50%; background: transparent; border: 1px solid #e6e6e6; color: #e6e6e6; cursor: pointer; display: flex; justify-content: center; align-items: center; font-size: 1rem; text-transform: uppercase; font-weight: 600; transition: background 0.3s, color 0.3s; }
.magnetic-btn-s2:hover { background: #e6e6e6; color: #030303; }
.magnetic-text-s2 { pointer-events: none; text-align: center; }

.small-caps { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: #888888; line-height: 1.6; margin: 0; font-weight: 500; }
.body-text  { font-size: 1.25rem; line-height: 1.5; color: #e6e6e6; margin-bottom: 2rem; font-weight: 400; }
.impact-banner { width: 100vw; margin-left: -6vw; display: flex; flex-direction: column; align-items: center; background-color: transparent; position: relative; z-index: 50; padding: 6vh 0 4vh 0; margin-top: 10vh; pointer-events: auto; }
.marquee-wrapper { width: 100%; overflow: hidden; display: flex; white-space: nowrap; margin-bottom: 2rem;}
.marquee-content { display: flex; width: max-content; animation: marqueeScroll 20s linear infinite; will-change: transform; }
.marquee-group   { display: flex; align-items: center; gap: 3vw; padding-right: 3vw; }
.massive-text { font-size: clamp(3rem, 10vw, 12rem); font-weight: 400; line-height: 1; letter-spacing: -0.04em; transition: color 0.3s ease; color: #e6e6e6; }
.massive-text .plus { color: #444444; font-weight: 300; transition: color 0.3s ease; }
.impact-banner:hover .marquee-content { animation-play-state: paused !important; }
.impact-banner:hover .massive-text { color: #FF9A3D !important; }
.impact-banner:hover .massive-text .plus { color: #FF9A3D !important; }
@keyframes marqueeScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.sticky-wrap { position: relative; height: 100vh; width: 100%; display: flex; align-items: center; overflow: hidden; }
.bg-marquee { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 10vw; font-weight: 900; text-transform: uppercase; color: rgba(230,230,230,0.04); filter: blur(3px); white-space: nowrap; pointer-events: none; letter-spacing: -6px; line-height: 1; z-index: 1; user-select: none; }
.cards-track { position: relative; z-index: 5; display: flex; align-items: center; gap: 120px; padding-left: 40vw; padding-right: 20vw; width: max-content; will-change: transform; perspective: 2000px; transform-style: preserve-3d; }
.card { position: relative; overflow: hidden; width: 440px; height: 520px; border: 1px solid rgba(230,230,230,0.08); padding: 50px; display: flex; flex-direction: column; justify-content: space-between; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); flex-shrink: 0; transform-style: preserve-3d; will-change: transform, opacity; background: linear-gradient(145deg, rgba(230,230,230,0.03), transparent 35%), rgba(22,22,22,0.58); box-shadow: inset 0 1px 1px rgba(230,230,230,0.08), inset 0 -1px 1px rgba(230,230,230,0.03), 0 50px 120px rgba(0,0,0,0.6), 0 0 30px rgba(230,230,230,0.03); opacity: 0.55; transform: scale(0.82) rotateY(35deg) rotateZ(-5deg); }
.card::before { content: ""; position: absolute; top: -50%; left: -120%; width: 60%; height: 220%; background: linear-gradient(90deg, transparent 0%, rgba(230,230,230,0.02) 20%, rgba(230,230,230,0.12) 50%, rgba(230,230,230,0.02) 80%, transparent 100%); filter: blur(18px); transform: rotate(24deg); animation: glossyMove 5s linear infinite; pointer-events: none; mix-blend-mode: screen; }
.card::after { content: ""; position: absolute; inset: -80px; background: radial-gradient(circle at top left, rgba(230,230,230,0.16), transparent 18%), radial-gradient(circle at top right, rgba(230,230,230,0.10), transparent 18%), radial-gradient(circle at bottom left, rgba(230,230,230,0.08), transparent 18%), radial-gradient(circle at bottom right, rgba(230,230,230,0.14), transparent 18%); filter: blur(40px); opacity: 0.9; pointer-events: none; z-index: -1; }
.card-number { color: #777; font-size: 14px; font-weight: 600; letter-spacing: 2px; }
.card h3 { color: #e6e6e6; font-size: 44px; line-height: 0.95; font-weight: 900; text-transform: uppercase; letter-spacing: -2px; margin: 0; }
.card p  { color: rgba(230,230,230,0.72); font-size: 18px; line-height: 1.7; margin: 0; }
@keyframes glossyMove { 0%{ transform: translateX(-220%) rotate(25deg) } 100%{ transform: translateX(320%) rotate(25deg) } }

.s4-unified-section { width: 100%; height: 100%; background: linear-gradient(rgba(11,15,20,0.95), rgba(11,15,20,0.95)), url('../images/mainbg-grain.webp'); background-size: 100% 100%, 25vw auto; background-repeat: no-repeat, repeat; background-position: center; }
.s4-sticky-wrapper { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.s4-intro { position: absolute; text-align: center; z-index: 20; width: 85%; max-width: 900px; pointer-events: none; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.s4-intro h2 { font-size: clamp(2.5rem, 6vw, 6rem); font-weight: 900; line-height: 1.1; margin: 0 0 20px 0; color: #e6e6e6; text-transform: uppercase; }
.s4-intro p { font-size: clamp(1.1rem, 1.5vw, 1.4rem); color: #e6e6e6; line-height: 1.6; margin: 0; font-weight: 400; }
.s4-cards-wrapper { display: flex; align-items: center; justify-content: center; width: 84vw; gap: 0; z-index: 5; perspective: 2500px; opacity: 0; }
.s4-card { width: 25%; height: 60vh; position: relative; transform-style: preserve-3d; overflow: visible !important; }
.s4-card-front, .s4-card-back { position: absolute; top: 0; left: 0; width: 100%; height: 100%; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; border-radius: 0; }

.s4-unified-window { position: absolute; top: 0; width: 400%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(230,230,230,0.08), rgba(230,230,230,0.01)); backdrop-filter: blur(25px); -webkit-backdrop-filter: blur(25px); border: 1px solid rgba(230,230,230,0.1); }
#s4-card-1 .s4-unified-window { left: 0%; } #s4-card-2 .s4-unified-window { left: -100%; } #s4-card-3 .s4-unified-window { left: -200%; } #s4-card-4 .s4-unified-window { left: -300%; }
.s4-unified-window span { color: #e6e6e6; font-size: 11vw; font-weight: 900; line-height: 1; letter-spacing: -2px; white-space: nowrap; }
.s4-sweep { position: absolute; top: -50%; left: -50%; width: 30%; height: 200%; background: linear-gradient(to right, transparent, rgba(230, 230, 230, 0.2), transparent); transform: rotate(25deg); animation: continuousSweep 4s cubic-bezier(0.4, 0, 0.2, 1) infinite; pointer-events: none; }
.s4-card-back { transform: rotateY(180deg) translateZ(1px); padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid rgba(230,230,230,0.15); box-shadow: inset 0 1px 1px rgba(230,230,230,0.4), inset 0 -10px 30px rgba(0,0,0,0.5); }
.s4-card-content { position: relative; z-index: 1; }
#s4-card-1 .s4-card-back { background-color: rgba(178, 178, 178, 0.85); color: #050505; } #s4-card-1 .s4-quote { color: #ce2017; } #s4-card-1 .s4-desc { color: rgba(0,0,0,0.8); }
#s4-card-2 .s4-card-back { background-color: rgba(206, 32, 23, 0.85); color: #e6e6e6; } #s4-card-2 .s4-quote { color: #ffd7d7; } #s4-card-2 .s4-desc { color: rgba(230,230,230,0.9); }
#s4-card-3 .s4-card-back { background-color: rgba(47, 47, 47, 0.85); color: #e6e6e6; } #s4-card-3 .s4-quote { color: #ce2017; } #s4-card-3 .s4-desc { color: rgba(230,230,230,0.72); }
#s4-card-4 .s4-card-back { background-color: rgba(229, 229, 229, 0.85); color: #050505; } #s4-card-4 .s4-quote { color: #ce2017; } #s4-card-4 .s4-desc { color: rgba(0,0,0,0.8); }
.s4-card-back h3 { font-size: clamp(1.4rem, 1.8vw, 2rem); font-weight: 700; margin-bottom: 0.5rem; text-transform: none; line-height: 1.1; }
.s4-quote { font-style: italic; font-size: clamp(0.9rem, 1vw, 1.1rem); margin-bottom: 1.5rem; line-height: 1.4; font-weight: 500; }
.s4-desc { font-size: clamp(0.85rem, 0.9vw, 1rem); line-height: 1.5; margin: 0; }

.smoke-word-s7 { will-change: transform, opacity, filter; }

.view-grid { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 2rem; }
.services-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.5rem; position: relative; z-index: 1; }

.service-card:nth-child(1) { grid-column: 1 / 7; grid-row: 1 / 3; min-height: 480px; }
.service-card:nth-child(2) { grid-column: 7 / 13; grid-row: 1 / 2; min-height: 232px; }
.service-card:nth-child(3) { grid-column: 7 / 10; grid-row: 2 / 3; min-height: 232px; }
.service-card:nth-child(4) { grid-column: 10 / 13; grid-row: 2 / 3; min-height: 232px; }

.service-card {
    position: relative;
    background: rgba(18, 18, 22, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    cursor: pointer;
    display: flex;
    transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.service-card:hover {
    transform: translateY(-5px);
    border-color: transparent; 
    box-shadow: 0 12px 34px rgba(255, 154, 61, 0.2); 
}

.border-glow-wrapper {
    position: absolute; inset: 0; border-radius: inherit; padding: 2px; pointer-events: none; z-index: 3;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
}
.border-glow {
    position: absolute; top: 50%; left: 50%; width: 200%; height: 200%;
    background: conic-gradient(from 0deg, transparent 70%, rgba(255, 255, 255, 0.5) 90%, #ffffff 100%);
    transform: translate(-50%, -50%) rotate(0deg); opacity: 0; transition: opacity 0.3s ease;
}
.service-card:hover .border-glow {
    opacity: 1; animation: rotateSwirl 2.5s linear infinite;
}
@keyframes rotateSwirl {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

.card-content {
    position: relative; width: 100%; height: 100%; border-radius: 15px; overflow: hidden; 
    padding: 2.5rem; display: flex; flex-direction: column;
}
.bg-swirl {
    position: absolute; top: -20%; left: 0; width: 60%; height: 140%;
    background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.08) 0%, transparent 70%);
    filter: blur(40px); animation: sweepLeftRight 6s linear infinite; pointer-events: none; z-index: 0;
}
@keyframes sweepLeftRight {
    0% { transform: translateX(-150%) skewX(-15deg); }
    100% { transform: translateX(250%) skewX(-15deg); }
}

.text-content { position: relative; z-index: 2; display: flex; flex-direction: column; height: 100%; }
.service-card .card-num { font-family: 'League Spartan', sans-serif; font-size: 1.25rem; font-weight: 700; margin-bottom: 1.5rem; display: block; color: #e2d9fb; }
.service-card .card-title { font-family: 'League Spartan', sans-serif; font-weight: 800; text-transform: uppercase; margin-bottom: 1rem; line-height: 1.1; letter-spacing: 0.5px; color: #fff; }
.service-card .card-desc { color: #9ea0a8; font-family: 'Inter', sans-serif; font-size: 0.95rem; font-weight: 400; line-height: 1.6; margin-top: auto; }
.service-card:nth-child(1) .card-title { font-size: 2.2rem; }
.service-card:nth-child(2) .card-title { font-size: 1.8rem; }
.service-card:nth-child(3) .card-title, .service-card:nth-child(4) .card-title { font-size: 1.5rem; }

.horizontal-wrapper { display: flex; height: 100%; width: max-content; align-items: center; will-change: transform; }
.panel { height: 70vh; display: flex; flex-direction: column; justify-content: center; padding: 0 4vw; flex-shrink: 0; position: relative; }
.panel-title { width: 40vw; padding-left: 10vw; }
.panel-title h1 { font-size: clamp(3rem, 5vw, 5rem); font-weight: 400; line-height: 1.1; letter-spacing: -0.03em; }
.panel-title a.panel-title__second { margin-top: 1.3rem; }   
.panel-title a { display: inline-block; margin-top: 2.5rem; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 0.3rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: inherit;}
.panel-project { width: 55vw; will-change: transform, opacity; }
.project-image { width: 100%; height: 60vh; overflow: hidden; position: relative; background-color: transparent; border-radius: 24px; display: flex; align-items: center; justify-content: center; }
.project-image img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1); }
.project-image:hover img { transform: scale(1.05); }
.project-info { margin-top: 1.5rem; display: flex; justify-content: space-between; align-items: flex-start; }
.project-info h3 { font-size: 1.7rem; font-weight: 500; color: inherit; }
.project-info p { font-size: 0.95rem; color: #666; max-width: 350px; margin-top: 0.5rem; line-height: 1.4; }
.project-info a { text-decoration: none; font-size: 0.8rem; text-transform: uppercase; color: inherit;}
.panel-center-text { width: 100vw; display: flex; align-items: center; justify-content: center; text-align: center; will-change: transform, opacity; color: inherit; }
.panel-center-text h2, .panel-center-text .sub-heading { font-size: clamp(1.5rem, 2.5vw, 3rem); font-weight: 400; line-height: 1.3; max-width: 700px; margin: 0; }

.key-facts-section { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 10vh 0; }
.kf-section-header { text-align: center; margin-bottom: 5rem; font-family: 'Inter', sans-serif; }
.kf-section-header h2 { font-family: 'League Spartan', sans-serif; }
.kf-section-header h2 { font-size: 4.5rem; font-weight: 400; margin: 0 0 0.5rem 0; letter-spacing: -0.03em; }
.kf-section-header p { color: #666; font-size: 1.1rem; margin: 0; }
.cards-container-3d { width: 100%; max-width: 1140px; display: flex; justify-content: center; gap: 2.5rem; perspective: 2000px; transform-style: preserve-3d; }
.kf-card { width: 340px; height: 460px; border-radius: 14px; background-color: #fff; display: flex; flex-direction: column; position: relative; overflow: hidden; box-shadow: 0 30px 60px rgba(0,0,0,0.06); will-change: transform, opacity; transform-origin: center top; font-family: 'Inter', sans-serif; }
.kf-card-title { position: absolute; top: 1.5rem; left: 1.5rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }
.kf-card-left, .kf-card-right { color: #e6e6e6; justify-content: flex-end; padding: 2.5rem; background-size: cover; background-position: center; }
.kf-card-left { background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.85)), url('../images/photo-home-technical.webp'); }
.kf-card-right { background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.85)), url('../images/photo-home-strategic.webp'); }
.kf-card-left .kf-card-title, .kf-card-right .kf-card-title { color: #e6e6e6; }
.kf-card-bottom-text { font-size: 1.4rem; font-weight: 500; line-height: 1.3; color: #e6e6e6; }
.kf-card-center { background-color: #f6f6f6; justify-content: center; align-items: center; text-align: center; padding: 2.5rem; border: 1px solid #e0e0e0; }
.kf-card-center .kf-card-title { color: #777; width: 100%; left: 0; }
.kf-circle-stat { width: 170px; height: 170px; background-color: white; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 3.2rem; font-weight: 400; box-shadow: 0 10px 30px rgba(0,0,0,0.02); margin: 2rem 0; color: #111; }
.kf-card-center p { font-size: 0.95rem; color: #555; line-height: 1.6; margin: 0; }

#s8-client-stories-master { position: relative; width: 100vw; min-height: 100vh; z-index: 40; background-color: #e6e6e6; --s8-bg-color: #e6e6e6; --s8-border-color: #b0b0b0; --s8-text-main: #111; --s8-text-muted: #666; }
.s8-sticky-wrap { position: relative; width: 100vw; min-height: 100vh; overflow: hidden; background-color: var(--s8-bg-color); pointer-events: auto; display: flex; justify-content: center; align-items: center; }
.client-stories { width: 100%; max-width: 1400px; margin: 0 auto; padding: 40px; position: relative; color: var(--s8-text-main); }
.s8-grid-container { display: grid; grid-template-columns: 350px 1fr; grid-template-rows: auto 1fr; position: relative; }
.s8-crosshair { position: absolute; font-size: 14px; color: var(--s8-text-muted); background: var(--s8-bg-color); width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; transform: translate(-50%, -50%); z-index: 10; }
.s8-crosshair.center { top: 0; left: 0; }
.s8-crosshair.bottom-center { bottom: 0; left: 350px; transform: translate(-50%, 50%); }
.s8-header-left { padding: 40px; border-bottom: 1px solid var(--s8-border-color); }
.s8-header-left h1 { font-size: 3.5rem; font-weight: 400; letter-spacing: -1px; margin: 0; }
.s8-header-right { padding: 40px; border-bottom: 1px solid var(--s8-border-color); display: flex; align-items: center; position: relative; }
.s8-header-right p { max-width: 300px; font-size: 0.9rem; color: var(--s8-text-muted); line-height: 1.4; margin: 0; }
.s8-sidebar { padding: 60px 40px 40px 40px; display: flex; flex-direction: column; justify-content: space-between; }
.s8-company-list { list-style: none; display: flex; flex-direction: column; gap: 15px; padding: 0; margin: 0; }
.s8-company-list li { font-size: 0.75rem; font-weight: 600; letter-spacing: 1px; color: var(--s8-text-muted); text-transform: uppercase; cursor: pointer; transition: color 0.3s ease; display: flex; align-items: center; }
.s8-company-list li:hover { color: var(--s8-text-main); }
.s8-company-list li.active { color: var(--s8-text-main); }
.s8-company-list li.active::after { content: ' \2192'; margin-left: 8px; font-size: 1rem; font-weight: 300; }
.s8-controls { display: flex; gap: 0; margin-top: 60px; }
.s8-controls button { background: transparent; border: 1px solid var(--s8-border-color); width: 50px; height: 50px; cursor: pointer; font-size: 1.2rem; color: var(--s8-text-muted); transition: all 0.3s ease; display: flex; justify-content: center; align-items: center; padding: 0; }
.s8-controls button:hover { background: rgba(0,0,0,0.05); color: var(--s8-text-main); }
.s8-controls button:first-child { border-right: none; }
.s8-content-area { padding: 60px; position: relative; display: flex; flex-direction: column; justify-content: space-between; }
.s8-quote-wrapper { position: relative; min-height: 220px; margin-bottom: 40px; }
.s8-quote-text { font-size: 1.8rem; line-height: 1.35; font-weight: 300; color: var(--s8-text-main); position: absolute; top: 0; left: 0; width: 100%; opacity: 0; visibility: hidden; transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1); margin: 0; }
.s8-quote-text.active { opacity: 1; visibility: visible; transform: translateY(0); }
.s8-quote-text.slide-up-enter { transform: translateY(30px); }
.s8-quote-text.slide-up-leave { transform: translateY(-30px); }
.s8-quote-text.slide-down-enter { transform: translateY(-30px); }
.s8-quote-text.slide-down-leave { transform: translateY(30px); }
.s8-author-actions-wrapper { position: relative; min-height: 80px; }
.s8-author-block { display: flex; align-items: center; gap: 15px; position: absolute; top: 0; left: 0; opacity: 0; visibility: hidden; transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1); }
.s8-author-block.active { opacity: 1; visibility: visible; transform: translateY(0); }
.s8-author-block.slide-up-enter { transform: translateY(20px); }
.s8-author-block.slide-up-leave { transform: translateY(-20px); }
.s8-author-block.slide-down-enter { transform: translateY(-20px); }
.s8-author-block.slide-down-leave { transform: translateY(20px); }
.s8-author-block img { width: 50px; height: 50px; object-fit: cover; border-radius: 4px; filter: grayscale(20%); }
.s8-author-info h4, .s8-author-info .s8-author-name { font-size: 0.9rem; font-weight: 500; margin: 0 0 3px 0; }
.s8-author-info p { font-size: 0.8rem; color: var(--s8-text-muted); margin: 0; }

.s8-author-info .s8-author-name { font-size: 0.9rem; font-weight: 500; color: inherit; margin: 0 0 3px 0; }
.s8-content-footer { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--s8-border-color); position: relative; }
.s8-become-client { font-size: 0.75rem; font-weight: 600; letter-spacing: 1px; color: var(--s8-text-muted); text-transform: uppercase; text-decoration: none; transition: color 0.3s ease; }
.s8-become-client:hover { color: var(--s8-text-main); }
.s8-contact-link { margin-left: 28px; }

#s9-sec9-master { position: relative; width: 100vw; height: 6500px; background-color: #e6e6e6; color: #333; overflow: clip; z-index: 50; }
.sec9-sticky-wrap { position: sticky; top: 0; left: 0; width: 100vw; height: 100vh; overflow: hidden; background-color: #e6e6e6; }
#webgl-canvas { position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 20; pointer-events: none; }
.viewport { position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 10; }
.bg-text { position: absolute; left: 50%; top: 50%; font-size: 6.5vw; font-weight: 600; letter-spacing: -0.04em; color: #4a4a4a; white-space: nowrap; will-change: transform; line-height: 0.85; transform: translate(-50%, -50%); }
#text-top { margin-top: -5vw; } #text-bottom { margin-top: 5vw; }
.center-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 15px; font-weight: 500; text-align: center; letter-spacing: 1px; line-height: 1.6; color: #444; will-change: opacity; }
.corner-text-left { position: absolute; bottom: 40px; left: 40px; font-size: 11px; line-height: 1.5; color: #555; width: 250px; }

@media (max-width: 1024px) {
    .hero-top { align-items: center; text-align: center; } .headline-descriptor, .headline-descriptor::before { margin-left: auto; margin-right: auto; } 
    .hero-bottom { justify-content: center; text-align: center; } 
    .hero-right { max-width: 100%; align-items: center; } 
    .btn-group { justify-content: center; }
    .spinning-emblem { width: 120px; height: 120px; top: 12vh; right: 3vw; } 
    .info-grid { flex-direction: column; gap: 10vh; margin-top: 10vh; } 
    .info-col-right { margin-top: 5vh; }
    .massive-text { font-size: 15vw; } .massive-text .plus { display: inline-block; } 
    
    .cards-track { gap: 60px; padding-left: 30vw; } .card { width: 360px; height: 480px; padding: 40px; }
    .card h3 { font-size: 36px; } .card p  { font-size: 16px; } 

    .s4-cards-wrapper { flex-direction: row; gap: 1vw; }
    .s4-card { height: 45vh; min-height: 250px; }
    .s4-unified-window span { font-size: 8vw; }
    .s4-card-back { padding: 1rem; }
    .s4-card-back h3 { font-size: 1.1rem; }
    .s4-quote { font-size: 0.8rem; }
    .s4-desc { font-size: 0.8rem; }

    .cards-container-3d { flex-direction: column; align-items: center; gap: 1rem; } 
    .kf-card { width: 90vw; max-width: 400px; height: 22vh; min-height: 160px; }
    .kf-card-left, .kf-card-right, .kf-card-center { padding: 1.5rem; }
    .kf-circle-stat { width: 80px; height: 80px; font-size: 2rem; margin: 0.5rem 0;} 
    .kf-card-title { top: 1rem; left: 1rem; }
    
    .service-card:nth-child(1), .service-card:nth-child(2), .service-card:nth-child(3), .service-card:nth-child(4) { 
        grid-column: 1 / 13; min-height: 18vh !important; height: auto;
    }
    .card-content { padding: 1.5rem; }
    .service-card .card-num { margin-bottom: 0.5rem; }
}

@media (max-width: 900px) { 
    .s8-grid-container { grid-template-columns: 1fr; } 
    .s8-sidebar { border-bottom: 1px solid var(--s8-border-color); } 
    .s8-crosshair.center { display: none; } 
    .s8-quote-text { font-size: 1.4rem; } 
}

@media (max-width: 768px) {
    .cards-track { gap: 40px; padding-left: 20vw; } .card { width: 85vw; height: 460px; padding: 30px; } .card h3 { font-size: 34px; } .card p  { font-size: 16px; }
    
    .horizontal-wrapper { flex-direction: row !important; width: max-content !important; padding: 0 !important; justify-content: flex-start !important; } 
    .panel-title { width: 100vw !important; padding: 0 8vw !important; justify-content: center !important; align-items: flex-start !important; text-align: left !important; }
    .panel-center-text { width: 100vw !important; padding: 0 8vw !important; }
    .panel-project { width: 90vw !important; padding: 0 4vw !important; }
    .project-image { height: 45vh; }
    .project-image img { object-fit: cover !important; border-radius: 12px; }
    
    .s4-sticky-wrapper { align-items: flex-start; padding-top: 10vh; } 
    .s4-intro { top: 40%; }
    .s4-cards-wrapper { width: 90vw !important; flex-direction: column !important; align-items: center; gap: 15px !important; padding-top: 0; } 
    .s4-card { width: 100% !important; height: 18vh !important; min-height: 150px !important; margin: 0 !important; } 
    .s4-card-front { display: flex !important; border-radius: 12px; overflow: hidden; align-items: center; justify-content: center; }
    
    .s4-unified-window { width: 100% !important; left: 0 !important; background: rgba(255,255,255,0.05) !important; border-radius: 12px; display: flex; justify-content: center; align-items: center; }
    .s4-unified-window span { font-size: 0 !important; } 
    .s4-unified-window span::after { font-size: 18vw; font-weight: 900; letter-spacing: 2px; color: #e6e6e6; }
    #s4-card-1 .s4-unified-window span::after { content: "ST"; }
    #s4-card-2 .s4-unified-window span::after { content: "RA"; }
    #s4-card-3 .s4-unified-window span::after { content: "TE"; }
    #s4-card-4 .s4-unified-window span::after { content: "GY"; }
    
    .s4-card-back { position: absolute !important; border-radius: 12px !important; padding: 1.2rem !important; transform: rotateY(180deg) translateZ(1px) !important; }
    .s4-card-back h3 { font-size: 0.85rem; margin-bottom: 0.3rem; } 
    .s4-quote { font-size: 0.78rem; margin-bottom: 0.4rem; }    
    .s4-desc { font-size: 0.75rem; line-height: 1.3; }   
    
    :root { --pad-x: 1.5rem; --pad-top: 3rem; } .main-headline { font-size: 10vw; } .massive-text .plus { display: inline-block !important; }
    
    .key-facts-section { padding-bottom: 20px !important; display: flex; flex-direction: column; justify-content: flex-start; padding-top: 5vh; align-items: center; }
    .kf-section-header { margin-bottom: 1.5rem; } .cards-container-3d { gap: 0.8rem; }
    .kf-card { width: 85vw; min-height: 130px; height: 18vh; padding: 1.2rem; } 
    .kf-card-left, .kf-card-right, .kf-card-center { padding: 1.2rem; }
    .kf-circle-stat { width: 70px; height: 70px; font-size: 1.6rem; margin: 0.3rem 0; } 
    .kf-card-bottom-text { font-size: 1rem; }
    .kf-section-header h2 { font-size: 2.5rem; margin-bottom: 0.2rem; }

    .services-grid { display: flex !important; flex-direction: column !important; gap: 15px !important; margin-top: 5vh !important; width: 100%; height: auto !important; }
    .service-card { position: relative !important; width: 100% !important; opacity: 0; min-height: 180px !important; margin: 0 !important; }
    .card-content { padding: 1.5rem; height: 100%; }
    .service-card .card-num { margin-bottom: 0.5rem; font-size: 1rem; }
    .service-card .card-title { font-size: 1.4rem !important; margin-bottom: 0.4rem; }
    .service-card .card-desc { font-size: 0.85rem; line-height: 1.4; }
    
    .s8-sticky-wrap { align-items: flex-start; padding-top: 0 !important; } 
    .client-stories { padding-top: 2vh !important; padding-left: 20px; padding-right: 20px; height: auto; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; overflow: visible; }
    .s8-grid-container { display: flex; flex-direction: column; text-align: left; height: auto; justify-content: space-evenly; gap: 15px; }
    .s8-header-left { padding: 0; border: none; } .s8-header-left h1 { font-size: 2.2rem; } .s8-header-right { padding: 0; border: none; } .s8-header-right p { margin-bottom: 0; font-size: 0.9rem; }
    .s8-sidebar { padding: 0; border: none; } .s8-company-list { gap: 8px; } .s8-controls { margin-top: 5px; } .s8-controls button { width: 35px; height: 35px; font-size: 1rem; }
    .s8-content-area { padding: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 0; } 
    .s8-quote-wrapper { min-height: 140px; margin-bottom: 5px; margin-top: 15px; }
    .s8-quote-text { font-size: 1.1rem; line-height: 1.4; position: absolute; } 
    .s8-author-actions-wrapper { min-height: 50px; margin-top: 0; }
    .s8-author-block { flex-direction: row; align-items: center; } .s8-author-block img { width: 35px; height: 35px; } .s8-content-footer { margin-top: 15px; padding-top: 15px; }
    
    #text-top { margin-top: -15vh !important; }
    #text-bottom { margin-top: 15vh !important; }
    .bg-text { font-size: 14vw !important; }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .horizontal-wrapper { flex-direction: row !important; width: max-content !important; padding: 0 !important; }
    .panel-project { width: 65vw !important; padding-right: 3vw; } 
    .panel-title { width: 50vw !important; padding: 0 4vw !important; }
    .panel-center-text { width: 80vw !important; padding: 0 4vw !important; }

    .cards-container-3d { flex-direction: row; flex-wrap: nowrap; gap: 1rem; width: 96vw; justify-content: space-around; margin: 0 2vw; } 
    .kf-card { width: calc(32% - 1rem); max-width: 330px; height: 350px; }
    .kf-section-header h2 { font-size: 3.5rem; } 
    .kf-circle-stat { width: 120px; height: 120px; font-size: 2.2rem; }
}

#home-jump-veil { position: fixed; inset: 0; z-index: 850; background: #030303; opacity: 0; visibility: hidden; pointer-events: none; }

.card-cursor-tip { position: fixed; top: 0; left: 0; z-index: 9000; width: 0; height: 0; pointer-events: none; }
.card-cursor-tip__disc {
    position: absolute; top: -46px; left: -46px; width: 92px; height: 92px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #FF9A3D; color: #000; box-shadow: 0 4px 14px rgba(255, 154, 61, 0.18);
    font-family: 'League Spartan', sans-serif; font-size: 0.74rem; font-weight: 700; line-height: 1.2; letter-spacing: 1.5px; text-transform: uppercase; text-align: center;
    opacity: 0; transform: scale(0.3);
    transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.card-cursor-tip.is-on .card-cursor-tip__disc { opacity: 1; transform: scale(1); }

html.card-cursor-on .service-card, html.card-cursor-on .service-card * { cursor: none; }
html.card-cursor-on #footer-custom-cursor { opacity: 0 !important; }
@media (prefers-reduced-motion: reduce) { .card-cursor-tip__disc { transition: none; } }

/* Phones: show the hero quickly (no long blur reveal) and use a smaller hero photo */
@keyframes heroFadeFast { 0% { opacity: 0; transform: translateY(12px); } 100% { opacity: 1; transform: none; } }
@media (max-width: 768px) {
    .hero-background-layer { background-image: url('../images/resp/myimage-800.webp') !important; }
    .status-pill, .main-headline, .sub-copy, .btn-group { animation-name: heroFadeFast; animation-duration: 0.6s; animation-timing-function: ease-out; }
    .status-pill { animation-delay: 0s; } .main-headline { animation-delay: 0.05s; } .sub-copy { animation-delay: 0.15s; } .btn-group { animation-delay: 0.25s; }
}

/* Small phones: keep both hero buttons on one row so "Start a Project" never falls below the screen */
@media (max-width: 480px) {
    .hero-content-layer { padding: 6vh 5vw calc(3.5vh + env(safe-area-inset-bottom)); }
    .status-pill { margin-top: 56px; padding: 6px 14px; gap: 8px; font-size: clamp(0.56rem, 2.6vw, 0.68rem); white-space: nowrap; }
    .sub-copy { font-size: 0.92rem; line-height: 1.5; }
    .hero-right { gap: 1.2rem; }
    .btn-group { flex-wrap: nowrap; gap: 8px; width: 100%; justify-content: center; }
    .hero-content-layer .btn { padding: 12px clamp(10px, 3.4vw, 18px); gap: 6px; font-size: clamp(0.7rem, 3.4vw, 0.84rem); white-space: nowrap; }
    .btn-primary .arrow-circle { width: 20px; height: 20px; font-size: 0.85rem; }
}

/* Section 9 on phones and tablets (and any touch screen): a clean grid instead of the 3D scene
   (on phones the 3D cards covered the heading; on tablets the outer cards fell off the screen) */
.sec9-mobile { display: none; }
@media (max-width: 1199px), (hover: none) and (pointer: coarse) {
    #s9-sec9-master { height: auto; padding: 56px 20px 64px; overflow: visible; }
    #s9-sec9-master .sec9-sticky-wrap { display: none; }
    .sec9-mobile { display: block; text-align: center; color: #1d1d21; }
    .sec9-m__kicker { margin: 0 0 14px; font-size: 0.78rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #9a4a08; }
    .sec9-m__title { margin: 0 0 32px; font-family: 'League Spartan', sans-serif; font-size: clamp(2.6rem, 13vw, 3.6rem); font-weight: 700; line-height: 0.95; letter-spacing: -0.04em; color: #333; text-transform: uppercase; }
    .sec9-m__title em { font-style: normal; color: #FF9A3D; }
    .sec9-m__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .sec9-m__grid figure { margin: 0; overflow: hidden; border-radius: 10px; background: #d4d4d6; box-shadow: 0 14px 30px -18px rgba(0, 0, 0, 0.55); }
    .sec9-m__grid img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
    .sec9-m__note { max-width: 30em; margin: 28px auto 0; font-size: 0.95rem; line-height: 1.6; color: #55565c; }
    html.sec9-anim .sec9-m__grid figure { opacity: 0; transform: translateY(24px) scale(0.97); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1); }
    html.sec9-anim .sec9-m__grid figure.is-in { opacity: 1; transform: none; }
}

@media (min-width: 768px) and (max-width: 1199px), (min-width: 768px) and (hover: none) and (pointer: coarse) {
    #s9-sec9-master { padding: 72px 40px 80px; }
    .sec9-m__title { font-size: clamp(3.4rem, 7vw, 5rem); }
    .sec9-m__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1100px; margin: 0 auto; }
}

/* Partnership Stories on tablets and phones: no full-screen minimum height, tighter blocks (the gaps were desktop sizes) */
@media (max-width: 1024px) {
    #s8-client-stories-master, .s8-sticky-wrap { min-height: 0; }
    .s8-sticky-wrap { align-items: flex-start; }
    .client-stories { padding: 48px 28px; }
    .s8-header-left { padding: 0 0 18px; }
    .s8-header-right { padding: 0 0 22px; }
    .s8-sidebar { padding: 26px 0; }
    .s8-controls { margin-top: 22px; }
    .s8-content-area { padding: 28px 0 0; }
    .s8-quote-wrapper { min-height: 150px; margin-bottom: 20px; }
    .s8-content-footer { margin-top: 24px; padding-top: 20px; }
}
@media (max-width: 767px) {
    .client-stories { padding: 40px 20px; }
    .s8-quote-wrapper { min-height: 130px; }
}
/* Touch screens: no live blur behind moving cards (each one is re-blurred every frame and phones stutter).
   The backgrounds behind these panels are flat and dark, so they look the same without it. */
@media (hover: none) and (pointer: coarse) {
    .status-pill, .card, .s4-unified-window, .s4-card-back, .service-card { -webkit-backdrop-filter: none; backdrop-filter: none; }
    .card::before, .bg-swirl { display: none; }
    .card::after, .bg-marquee { filter: none; }
    .card::after { opacity: 0.5; }
    .smoke-word-s7 { will-change: transform, opacity; }
}
