*{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:#F4F3EF;color:#0B0B0C;font-family:'Schibsted Grotesk',sans-serif;-webkit-font-smoothing:antialiased}
  ::selection{background:#C2613D;color:#fff}
  @keyframes blurIn{from{opacity:0;filter:blur(13px);transform:translateY(20px)}to{opacity:1;filter:blur(0);transform:none}}
  @keyframes dropDot{0%{opacity:0;transform:translateY(-28px) scale(.4)}60%{opacity:1;transform:translateY(3px) scale(1.1)}100%{transform:none;opacity:1}}
  @keyframes revealUp{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
  @keyframes revealScale{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:none}}
  @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(34px,-30px)}}
  @keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-26px,24px)}}
  @keyframes barGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.25}}
  @keyframes fabPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.45)}100%{box-shadow:0 0 0 18px rgba(37,211,102,0)}}
  @media (max-width:760px){.cf-hide-sm{display:none!important}}
  /* ===== Client Factory spiral ===== */
  @keyframes cfSpin{to{transform:rotate(360deg)}}
  @keyframes cfDraw{to{stroke-dashoffset:0}}
  @keyframes cfDotIn{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
  @keyframes cfWordIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  .cf-nav-mark{animation:cfSpin 24s linear infinite;transform-origin:50% 50%;transition:filter .25s ease}
  .cf-logo:hover .cf-nav-mark{animation-duration:2.6s}
  .cf-footer-mark{animation:cfSpin 42s linear infinite;transform-origin:50% 50%}
  .cf-hero-spiral{animation:cfSpin 55s linear infinite;transform-origin:50% 50%}
  .cf-cta-spiral{animation:cfSpin 80s linear infinite reverse;transform-origin:50% 50%}
  /* intro */
  #cfIntro{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#F4F3EF;cursor:pointer;transition:opacity .6s ease,transform .7s cubic-bezier(.4,0,.2,1)}
  #cfIntro.cf-done{opacity:0;transform:scale(1.12);pointer-events:none}
  .cf-intro-inner{display:flex;flex-direction:column;align-items:center;gap:26px}
  .cf-intro-spiral{color:#C2613D;animation:cfSpin 1.6s cubic-bezier(.2,.7,.2,1) both}
  .cf-intro-path{stroke-dasharray:1;stroke-dashoffset:1;animation:cfDraw 1.55s cubic-bezier(.35,.85,.25,1) forwards}
  .cf-intro-dot{transform-origin:50% 50%;opacity:0;animation:cfDotIn .45s ease .25s forwards}
  .cf-intro-word{font-weight:800;font-size:clamp(22px,4.4vw,36px);letter-spacing:-0.035em;color:#0B0B0C;opacity:0;animation:cfWordIn .6s ease 1.05s both}
  .cf-intro-word b{color:#C2613D;font-weight:800}
  @media (prefers-reduced-motion:reduce){
    .cf-nav-mark,.cf-footer-mark,.cf-hero-spiral,.cf-cta-spiral{animation:none!important}
  }

  /* ===== v2 — full-service rebuild ===== */
  .cf-wa{color:#1FA855}
  /* keep one CTA on mobile: floating FAB hides, sticky bar takes over */
  @media (max-width:760px){ .cf-fab{display:none!important} }
  @media (max-width:560px){ .cf-trust-div{border-left:none!important} }

  /* industries */
  .cf-ind{background:#fff;border:1px solid #E6E4DE;border-radius:16px;padding:18px;font-size:15px;font-weight:600;letter-spacing:-0.01em;color:#0B0B0C;cursor:default;transition:transform .2s ease,border-color .2s ease,background .2s ease;animation:revealScale .5s ease both;animation-timeline:view();animation-range:entry 0% cover 24%}

  /* AI chat demo */
  .cf-chat.cf-js .cf-msg{opacity:0;transform:translateY(10px) scale(.97)}
  .cf-chat .cf-msg{max-width:84%;font-size:14px;line-height:1.45;padding:11px 14px;border-radius:16px;transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
  .cf-chat .cf-msg.in{opacity:1;transform:none}
  .cf-chat .cf-bot{align-self:flex-start;background:#172A20;color:#E7F0EA;border-bottom-left-radius:5px}
  .cf-chat .cf-user{align-self:flex-end;background:#1FA855;color:#fff;border-bottom-right-radius:5px}
  .cf-chat .cf-tag{align-self:center;max-width:100%;background:rgba(55,224,138,.14);color:#37E08A;font-family:'Space Mono',monospace;font-size:12px;font-weight:700;text-align:center;border-radius:100px;padding:8px 14px}
  .cf-typing{align-self:flex-start;background:#172A20;border-radius:16px;border-bottom-left-radius:5px;padding:13px 15px;display:inline-flex;gap:4px;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease}
  .cf-typing.in{opacity:1;transform:none}
  .cf-typing span{width:7px;height:7px;border-radius:50%;background:#5E7A6B;display:inline-block;animation:cfTyping 1.2s infinite ease-in-out}
  .cf-typing span:nth-child(2){animation-delay:.15s}
  .cf-typing span:nth-child(3){animation-delay:.3s}
  @keyframes cfTyping{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}

  /* FAQ accordion */
  .cf-faq{background:#fff;border:1px solid #E6E4DE;border-radius:16px;padding:0 22px;transition:border-color .2s ease,box-shadow .2s ease}
  .cf-faq[open]{border-color:#E0CFC2;box-shadow:0 18px 40px -30px rgba(11,11,12,.25)}
  .cf-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 0;font-size:17px;font-weight:700;letter-spacing:-0.01em;color:#0B0B0C}
  .cf-faq summary::-webkit-details-marker{display:none}
  .cf-faq-i{font-family:'Space Mono',monospace;color:#C2613D;font-size:24px;font-weight:400;line-height:1;flex:none;transition:transform .25s ease}
  .cf-faq[open] .cf-faq-i{transform:rotate(45deg)}
  .cf-faq-a{padding:0 0 22px;font-size:15.5px;line-height:1.6;color:#52514D;max-width:64ch;animation:cfFaqIn .35s ease both}
  @keyframes cfFaqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
