:root{
    --ease:cubic-bezier(0.22,1,0.36,1);
    --bg:#FFFFFF; --bg2:#F5F7FA; --surface:#FFFFFF; --surface2:#F1F4F8;
    --text:#131A22; --muted:#54606D; --line:rgba(12,26,50,.12); --line2:rgba(12,26,50,.20);
    --red:#E23140; --red2:#C81E2C; --blue:#1E63C7; --gold:#E0A800; --sage:rgba(30,99,199,.09);
  }
  *{ box-sizing:border-box; }
  html,body{ margin:0; padding:0; background:var(--bg); }
  body{
    font-family:'Geist',system-ui,-apple-system,sans-serif; font-size:18px; line-height:1.6;
    color:var(--text); background:var(--bg); -webkit-font-smoothing:antialiased; overflow-x:hidden;
    cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%23E23140' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.3 2.3-2-2 2.3-2.3z'/%3E%3C/svg%3E") 4 20, auto;
  }
  html[data-font="dys"] body{ font-family:'Lexend',system-ui,sans-serif; }
  h1,h2,h3,h4{ font-family:'Geist','Lexend',sans-serif; margin:0; font-weight:800; letter-spacing:-.5px; }
  html[data-font="dys"] h1, html[data-font="dys"] h2, html[data-font="dys"] h3, html[data-font="dys"] h4{ font-family:'Lexend',sans-serif; }
  p{ margin:0; }
  a{ color:#000; text-decoration:none; }
  a:hover{ color:#000; }
  a,button,input,select,textarea,[role="button"]{ cursor:pointer; }
  input,textarea{ cursor:text; }
  ::selection{ background:var(--red); color:#fff; }
  ::-webkit-scrollbar{ width:11px; height:11px; }
  ::-webkit-scrollbar-thumb{ background:var(--line2); border-radius:8px; }
  :focus-visible{ outline:2px solid var(--red2); outline-offset:2px; }

  /* film grain */
  .grain{ position:fixed; inset:0; pointer-events:none; z-index:45; opacity:.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:140px 140px; animation:grainshift 1.2s steps(4) infinite; }
  @keyframes grainshift{ 0%{transform:translate(0,0)} 25%{transform:translate(-4%,3%)} 50%{transform:translate(3%,-2%)} 75%{transform:translate(-2%,-3%)} 100%{transform:translate(2%,2%)} }

  /* motion */
  .kb{ animation:kb 22s ease-out forwards; will-change:transform; }
  @keyframes kb{ from{transform:scale(1.02)} to{transform:scale(1.16)} }
  .reveal{ opacity:1; }
  @keyframes revealAnim{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:none; } }
  @supports (animation-timeline: view()){
    .reveal{ animation:revealAnim linear both; animation-timeline:view(); animation-range:entry 2% cover 24%; }
  }
  .pagein{ animation:pagein .55s var(--ease) both; }
  @keyframes pagein{ from{opacity:0} to{opacity:1} }
  .ul{ position:relative; }
  .ul::after{ content:""; position:absolute; left:0; bottom:-3px; height:2px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
  .ul:hover::after{ transform:scaleX(1); }
  .card{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
  .card:hover{ transform:translateY(-6px); box-shadow:0 24px 50px rgba(0,0,0,.35); border-color:#000!important; }
  .card:hover .card-img{ transform:scale(1.06); }
  .card:hover .card-arrow{ transform:translateX(4px); }
  .card-img{ transition:transform .7s var(--ease); }
  .card-arrow{ transition:transform .3s var(--ease); display:inline-block; }
  .ld-bar{ width:12px; background:var(--red); border-radius:2px; animation:build 1s var(--ease) infinite alternate; }
  @keyframes build{ from{height:8px} to{height:56px} }
  .icobtn{ transition:background .25s var(--ease); }
  .icobtn:hover{ background:var(--sage); }

  /* responsive */
  .nav-links{ display:flex; }
  .hamb{ display:none; }
  @media(max-width:960px){
    .nav-links{ display:none!important; }
    .hamb{ display:inline-flex!important; }
    .pill-text{ display:none!important; }
    .hero-grid{ grid-template-columns:1fr!important; }
    .two-col{ grid-template-columns:1fr!important; }
    .three-col{ grid-template-columns:1fr!important; }
    .four-col{ grid-template-columns:1fr 1fr!important; }
    .detail-grid{ grid-template-columns:1fr!important; }
    .stat-grid{ grid-template-columns:1fr 1fr!important; }
    .hdr-cta{ display:none!important; }
  }
  @media(max-width:560px){ .four-col{ grid-template-columns:1fr!important; } }
  @media(max-width:960px){ .gallery-grid{ grid-template-columns:repeat(2,1fr)!important; } }
  @media(max-width:560px){ .gallery-grid{ grid-template-columns:1fr!important; grid-auto-rows:300px!important; } }

  /* mobile / tablet spacing + tap targets */
  @media(max-width:900px){
    .gallery-grid{ grid-auto-rows:240px!important; }
  }
  @media(max-width:640px){
    [style*="150px 24px"]{ padding-top:100px!important; padding-bottom:118px!important; }
    [style*="padding:100px 24px"]{ padding-top:62px!important; padding-bottom:62px!important; }
    [style*="padding:90px 24px"]{ padding-top:58px!important; padding-bottom:58px!important; }
    [style*="padding:120px 24px"]{ padding-top:96px!important; padding-bottom:120px!important; }
    .icobtn, .hamb{ min-width:44px!important; min-height:44px!important; }
    .gallery-grid{ grid-auto-rows:260px!important; }
  }
  img{ max-width:100%; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001s!important; animation-iteration-count:1!important; transition-duration:.001s!important; }
    .kb{ animation:none!important; transform:none!important; }
    .reveal{ opacity:1!important; transform:none!important; }
    .grain{ animation:none!important; }
    [data-speed]{ transform:none!important; }
  }

/* static export: mobile menu */
#mobile-menu{ display:none; }
#mobile-menu.open{ display:flex!important; }

/* static export: auto-dismiss loader without JS */
#fc-loader{ animation:loaderOut .6s var(--ease) 1.15s forwards; }
@keyframes loaderOut{ to{ opacity:0; visibility:hidden; } }
