/* Global styles, keyframes and responsive rules */
*{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:#ffffff;color:#1d1d1f;font-family:'Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
  ::selection{background:rgba(0,113,227,0.18);}
  a{color:inherit;text-decoration:none;}
  @keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}
  @keyframes loaderGlow{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(1);}50%{opacity:.85;transform:translate(-50%,-50%) scale(1.18);}}
  @keyframes loaderShimmer{0%{transform:translateX(-120%);}100%{transform:translateX(120%);}}
  @keyframes auroraA{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(14vw,8vh) scale(1.25);}}
  @keyframes auroraB{0%,100%{transform:translate(0,0) scale(1.1);}50%{transform:translate(-12vw,10vh) scale(0.85);}}
  @keyframes auroraC{0%,100%{transform:translate(0,0) scale(0.9);}50%{transform:translate(10vw,-9vh) scale(1.2);}}
  /* prevent any minor element from forcing horizontal scroll on small screens */
  html,body{overflow-x:hidden;}
  img{max-width:100%;}

  .case-card:hover .case-shot{object-position:50% 100% !important;}
  .case-card:hover .case-frame{transform:translateY(-6px);box-shadow:0 30px 60px -24px rgba(0,0,0,0.28);}

  /* ---- Telegram channel block ---- */
  .tg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;}
  .tg-card{display:flex;flex-direction:column;background:#fff;border:1px solid #ededf2;border-radius:16px;
    overflow:hidden;color:inherit;text-decoration:none;
    transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .2s ease;}
  .tg-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px -32px rgba(0,0,0,0.28);border-color:#e2e2e8;}
  .tg-card-media{aspect-ratio:16/9;background:#f0f0f3 center/cover no-repeat;}
  .tg-card-body{display:flex;flex-direction:column;flex:1;padding:22px 22px 18px;}
  .tg-card-text{font-size:15px;line-height:1.6;color:#1d1d1f;white-space:pre-line;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;overflow:hidden;}
  .tg-card-text--full{display:block;-webkit-line-clamp:unset;}
  .tg-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin-top:auto;padding-top:16px;}
  .tg-card-body > .tg-card-text + .tg-card-foot{margin-top:16px;}
  .tg-card-date{font-size:13px;color:#6e6e73;}
  .tg-card-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#0071E3;
    transition:gap .2s ease;}
  .tg-card:hover .tg-card-link{gap:10px;}
  .tg-card--wide{grid-column:1 / -1;}
  .tg-card--wide .tg-card-body{padding:32px;}
  .tg-card--wide .tg-card-text{font-size:17px;}

  /* loading skeleton */
  .tg-skeleton{pointer-events:none;}
  .tg-skeleton .tg-card-media{background:#ececed;}
  .tg-skeleton .sk{display:block;height:13px;border-radius:6px;background:#ececed;margin-bottom:10px;}
  .tg-skeleton .sk-1{width:92%;} .tg-skeleton .sk-2{width:80%;} .tg-skeleton .sk-3{width:60%;}
  .tg-skeleton .tg-card-media,.tg-skeleton .sk{animation:tgShimmer 1.3s ease-in-out infinite;}
  @keyframes tgShimmer{0%,100%{opacity:1;}50%{opacity:.55;}}
  @media (prefers-reduced-motion:reduce){.tg-skeleton .tg-card-media,.tg-skeleton .sk{animation:none;}}

  @media (max-width:1024px){.tg-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:640px){.tg-grid{grid-template-columns:1fr;}}
  .tg-sub-btn{transition:background .2s ease,transform .2s ease;}
  .tg-sub-btn:hover{background:#006EDB !important;transform:translateY(-1px);}
  .cv-btn{transition:background .2s ease,transform .2s ease;}
  .cv-btn:hover{background:#006EDB !important;transform:translateY(-1px);}

  /* ---- Hamburger menu (mobile only) ---- */
  .nav-burger{display:none;}
  .nav-burger-box{position:relative;display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:background .2s ease;}
  .nav-burger-box::before,.nav-burger-box::after{content:'';position:absolute;left:0;width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);}
  .nav-burger-box::before{top:-7px;}
  .nav-burger-box::after{top:7px;}
  #site-nav.nav-open .nav-burger-box{background:transparent;}
  #site-nav.nav-open .nav-burger-box::before{transform:translateY(7px) rotate(45deg);}
  #site-nav.nav-open .nav-burger-box::after{transform:translateY(-7px) rotate(-45deg);}

  /* ---- Tablet ---- */
  @media (max-width:1024px){
    .resp-2{grid-template-columns:1fr 1fr !important;}
  }

  /* ---- Mobile ---- */
  @media (max-width:760px){
    .resp-2{grid-template-columns:1fr !important;}
    .resp-stack{flex-direction:column !important;align-items:flex-start !important;}
    .case-grid{grid-template-columns:1fr !important;gap:28px !important;}
    .case-media{order:0 !important;}
    .case-text{order:1 !important;}
    .cases-stack{gap:64px !important;}

    /* tighten oversized vertical rhythm on phones */
    #works{padding-top:80px !important;}
    #about,#experience,#testimonials{padding-top:64px !important;padding-bottom:24px !important;}

    /* hamburger + dropdown nav */
    .nav-burger{display:inline-flex !important;}
    .nav-links{
      display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:0 !important;
      position:fixed;top:56px;left:0;right:0;
      background:rgba(255,255,255,0.97);
      -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
      border-bottom:1px solid rgba(0,0,0,0.08);
      padding:6px 0;
      transform:translateY(-14px);opacity:0;pointer-events:none;
      transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .24s ease;
    }
    #site-nav.nav-open .nav-links{transform:none;opacity:1;pointer-events:auto;}
    .nav-links a{
      color:#1d1d1f !important;opacity:1 !important;
      font-size:17px !important;font-weight:500 !important;
      padding:15px 24px !important;
      border-top:1px solid rgba(0,0,0,0.06);
    }
    .nav-links a:first-child{border-top:0;}
  }

  /* ---- Accessibility: keyboard focus + skip link ---- */
  a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid #0071E3;
    outline-offset: 3px;
    border-radius: 4px;
  }
  .skip-link {
    position: absolute; left: 12px; top: -64px; z-index: 1000;
    background: #0071E3; color: #fff; padding: 10px 18px;
    border-radius: 8px; font-size: 15px; font-weight: 500;
    text-decoration: none; transition: top .2s ease;
  }
  .skip-link:focus { top: 12px; }

  /* ---- Home blog section ---- */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media (max-width:900px){ .blog-grid{grid-template-columns:1fr;} }
  .home-post{display:flex;flex-direction:column;background:#fff;border:1px solid #ededf2;border-radius:18px;padding:30px 30px 26px;color:inherit;text-decoration:none;
    transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1),border-color .2s ease;}
  .home-post:hover{transform:translateY(-4px);box-shadow:0 26px 52px -34px rgba(0,0,0,0.28);border-color:#e2e2e8;}
  .home-post .pmeta{font-size:12px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;color:#0071E3;}
  .home-post .ptitle{margin:12px 0 10px;font-family:'Roboto',-apple-system,'Segoe UI',sans-serif;font-size:21px;line-height:1.25;letter-spacing:-0.02em;font-weight:600;color:#1d1d1f;}
  .home-post .pdek{margin:0 0 18px;font-size:15px;line-height:1.55;color:#6e6e73;flex:1;}
  .home-post .pmore{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:#0071E3;}

/* ---- Intro loader: shown once per session (set by inline head script) ---- */
.intro-seen #loader{ display:none !important; }
.intro-seen [data-intro],
.intro-seen [data-intro-fade]{ opacity:1 !important; transform:none !important; transition:none !important; }
