/* base styles for archemap-landing (fonts/keyframes/layout/@media/body) */


  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  html,body{margin:0;padding:0}
  body{background:#fbf8f1;color:#1c1a17;font-family:'Figtree',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  ::selection{background:#5a3cf0;color:#fff}
  img{max-width:100%;display:block}
  @keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-12px)}100%{transform:translateY(0)}}
  @keyframes twinkle{0%,100%{opacity:.25}50%{opacity:.9}}
  @keyframes glowpulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.08)}}

  /* scroll reveal — only active once JS adds .anim-on, so content is visible without JS */
  /* fail-safe: content is always visible; .in (added by JS when in view) just replays a gentle rise */
  .anim-on .reveal{opacity:1;transform:none}
  @keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  .anim-on .reveal.in{animation:riseIn .8s cubic-bezier(.2,.75,.25,1) both}
  .reveal.d1{transition-delay:.07s}.reveal.d2{transition-delay:.15s}.reveal.d3{transition-delay:.23s}.reveal.d4{transition-delay:.31s}
  @media (prefers-reduced-motion:reduce){.anim-on .reveal{opacity:1!important;transform:none!important;transition:none}}

  /* NAV */
  .nav{position:sticky;top:0;z-index:60;transition:background .3s ease,box-shadow .3s ease}
  .nav.scrolled{background:rgba(250,247,241,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(40,30,70,.05),0 10px 34px rgba(40,30,70,.07)}
  .nav-inner{max-width:1240px;margin:0 auto;padding:18px clamp(18px,4vw,40px);display:flex;align-items:center;justify-content:space-between;transition:padding .3s ease}
  .nav.scrolled .nav-inner{padding:11px clamp(18px,4vw,40px)}
  .nav-links{display:flex;align-items:center;gap:clamp(16px,2vw,30px);font-size:15px;font-weight:500;color:#3a352e}
  .nav-burger{display:none;width:46px;height:46px;border:none;background:transparent;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center;border-radius:12px}
  .nav-burger span{width:24px;height:2px;background:#1c1a17;border-radius:2px;transition:.25s}
  .mobile-cta-bar{display:none}
  @media (max-width:860px){
    .nav-links{display:none}
    .nav-burger{display:flex}
  }
  @media (max-width:560px){
    .mobile-cta-bar{display:flex;transform:translateY(110%);opacity:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease;pointer-events:none}
    .mobile-cta-bar.is-visible{transform:translateY(0);opacity:1;pointer-events:auto}
    body{padding-bottom:84px}
  }
