  .material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 300,'opsz' 24;font-size:34px;color:var(--ink-faint);line-height:1;}
  :root{
    --bg-deep:#ffffff;
    --bg-base:#f7f7f9;
    --bg-panel:#efeff3;
    --ink:#1a1a1a;
    --ink-dim:#5a5a6a;
    --ink-faint:#8a8a94;
    --accent:#6b6b76;
    --accent-2:#9a9aa4;
    --accent-3:#d0d0d4;
    --line:rgba(0,0,0,0.08);
    --ease:cubic-bezier(.22,.9,.28,1);
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--bg-deep);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    overflow-x:hidden;
    line-height:1.5;
  }

  ::selection{background:var(--accent-2);color:#fff;}

  h1,h2,h3,.display{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    letter-spacing:-0.02em;
    line-height:1.05;
  }

  .mono{
    /* font-family:'JetBrains Mono',monospace; */
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-size:0.8rem;
    color:var(--accent);
  }

  a{color:inherit;text-decoration:none;}

  img,svg{display:block;max-width:100%;}

  .wrap{
    max-width:1200px;
    margin:0 auto;
    padding:0 40px;
    position:relative;
  }


  /* ---------- nav ---------- */
  header{
    position:fixed;top:0;left:0;right:0;
    z-index:1000;
    padding:26px 0;
    transition:padding .4s var(--ease), background .4s var(--ease), border-color .4s var(--ease);
    border-bottom:1px solid transparent;
    background:rgba(255,255,255,0.90);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  header.scrolled{
    padding:16px 0;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:grid;
    grid-template-columns:auto 1fr auto auto;
    align-items:center;
    gap:24px;
  }
  .nav-links{
    display:flex;
    gap:32px;
    align-items:center;
    justify-self:center;
  }
  .nav-links a{
    font-size:0.88rem;
    color:var(--ink-dim);
    position:relative;
    padding-bottom:6px;
    transition:color .3s var(--ease);
  }
  .nav-links a::after{
    content:'';
    position:absolute;
    left:0;bottom:0;
    width:100%;height:2px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));
    transform:scaleX(0);
    transform-origin:left;
    opacity:0;
    transition:transform .4s var(--ease), opacity .3s var(--ease);
  }
  .nav-links a:hover,
  .nav-links a.active{color:var(--ink);}
  .nav-links a.active::after{
    transform:scaleX(1);
    opacity:1;
    animation:nav-underline .6s var(--ease);
  }
  @keyframes nav-underline{
    0%{transform:scaleX(0);opacity:0;}
    60%{transform:scaleX(1.08);opacity:1;}
    100%{transform:scaleX(1);opacity:1;}
  }
  .nav-cta{
    font-size:0.85rem;
    font-weight:500;
    padding:10px 20px;
    border:1px solid var(--line);
    border-radius:100px;
    transition:border-color .3s var(--ease), background .3s var(--ease);
    background-color:#fff;
    justify-self:end;
  }
  .nav-cta:hover{border-color:var(--accent);background:rgba(107,107,118,0.08);}
  .nav-actions{display:flex;align-items:center;gap:18px;justify-self:end;}
  .nav-mobile-toggle{display:none;}

  .lang-switch{
    display:flex;align-items:center;gap:6px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.78rem;
    justify-self:end;
  }
  .lang-switch a{
    color:var(--ink-faint);
    text-decoration:none;
    padding:4px 6px;
    border-radius:4px;
    transition:color .3s var(--ease), background .3s var(--ease);
  }
  .lang-separator{color:var(--ink-faint);}
  .lang-active{color:var(--ink);font-weight:600;}
  .lang-inactive:hover{color:var(--accent);background:rgba(107,107,118,0.08);}

  .nav-group{
    display:contents;
  }
  .nav-group.collapsed{
    display:none;
  }
  .nav-group.open{
    display:flex;
    flex-direction:column;
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--bg-deep);
    padding:20px;
    gap:18px;
    border-bottom:1px solid var(--line);
    z-index:99;
  }
  .nav-group.open .nav-links{
    margin:0;
    flex-direction:column;
    gap:14px;
  }
  .nav-group.open .nav-cta{
    margin:0;
    align-self:center;
  }
  .nav-group.open .lang-switch{
    margin:0;
    margin-top:8px;
    align-self:center;
  }
  .mobile-toggle{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:6px;
  }
  .mobile-toggle span{
    width:24px;height:2px;
    background:var(--ink);
    transition:0.3s;
  }
  .mobile-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .mobile-toggle.active span:nth-child(2){opacity:0;}
  .mobile-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}


  

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    /* padding-top:110px; */
    overflow:hidden;
  }

  .blob-field{
    position:absolute;
    top:50%;left:68%;
    width:900px;height:900px;
    transform:translate(-35%,-40%);
    filter:url(#goo);
    z-index:1;
    pointer-events:none;
  }
  .blob{
    position:absolute;
    border-radius:50%;
    mix-blend-mode:screen;
    will-change:transform;
  }
  .blob-a{
    width:330px;height:330px;top:100px;left:150px;
    background:radial-gradient(circle at 35% 30%, var(--accent-3), var(--bg-panel) 60%, transparent 75%);
    animation:float-a 13s ease-in-out infinite;
  }
  .blob-b{
    width:300px;height:300px;top:220px;left:320px;
    background:radial-gradient(circle at 60% 40%, var(--accent-3), var(--bg-base) 55%, transparent 75%);
    animation:float-b 16s ease-in-out infinite;
  }
  .blob-c{
    width:270px;height:270px;top:70px;left:340px;
    background:radial-gradient(circle at 40% 60%, var(--accent-2), var(--bg-panel) 60%, transparent 75%);
    animation:float-c 11s ease-in-out infinite;
  }
  .blob-d{
    width:200px;height:200px;top:340px;left:200px;
    background:radial-gradient(circle at 50% 50%, var(--accent-3), transparent 70%);
    opacity:0.7;
    animation:float-d 14s ease-in-out infinite;
  }
  @keyframes float-a{
    0%,100%{transform:translate(0,0) scale(1);}
    33%{transform:translate(40px,-30px) scale(1.08);}
    66%{transform:translate(-20px,25px) scale(0.95);}
  }
  @keyframes float-b{
    0%,100%{transform:translate(0,0) scale(1);}
    40%{transform:translate(-50px,20px) scale(0.92);}
    70%{transform:translate(30px,-35px) scale(1.1);}
  }
  @keyframes float-c{
    0%,100%{transform:translate(0,0) scale(1);}
    50%{transform:translate(-35px,-40px) scale(1.12);}
  }
  @keyframes float-d{
    0%,100%{transform:translate(0,0) scale(1);}
    50%{transform:translate(25px,30px) scale(0.9);}
  }
  .blob-glow{
    position:absolute;
    top:50%;left:68%;
    width:360px;height:360px;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle, rgba(107, 107, 118, 0.10), transparent 65%);
    z-index:0;
    pointer-events:none;
    will-change:transform;
    animation:float-glow 14s ease-in-out infinite;
  }
  @keyframes float-glow{
    0%,100%{transform:translate(-50%,-50%) scale(1);}
    50%{transform:translate(-50%,-50%) translate(24px,-20px) scale(1.1);}
  }

  .hero-content{
    position:relative;
    z-index:2;
    margin:0 auto;
    padding-top:0px;
    padding-bottom:20px;
  }
  .eyebrow{
    display:flex;align-items:center;gap:10px;
    margin-bottom:24px;
  }
  .eyebrow::before{
    content:'';
    width:18px;height:1px;
    background:var(--accent);
  }
  .hero h1{
    font-size:clamp(2.6rem, 5.2vw, 4.4rem);
    color:var(--ink);
    margin-bottom:26px;
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(100deg, var(--accent), var(--accent-2) 70%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .hero p{
    font-size:1.08rem;
    color:var(--ink-dim);
    max-width:480px;
    margin-bottom:38px;
  }
  .hero-actions{
    display:flex;
    gap:16px;
    align-items:center;
  }
  .btn-primary{
    background:var(--ink);
    color:#fff;
    font-weight:600;
    font-size:0.92rem;
    padding:15px 28px;
    border-radius:100px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
    box-shadow:0 0 0 0 rgba(0,0,0,0.5);
  }
  .btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(0,0,0,0.12);
  }
  .btn-ghost{
    font-size:0.92rem;
    font-weight:500;
    color:var(--ink-dim);
    padding:15px 8px;
    display:inline-flex;align-items:center;gap:8px;
    transition:color .3s var(--ease), gap .3s var(--ease);
  }
  .btn-ghost:hover{color:var(--ink);gap:12px;}

  .scroll-cue{
    position:absolute;
    bottom:80px;
    left:50%;
    transform:translateX(-50%);
    display:flex;align-items:center;gap:12px;
    z-index:90;
    opacity:1;
    transition:opacity .5s var(--ease), transform .5s var(--ease);
  }
  .scroll-cue.hide{
    opacity:0;
    transform:translateX(-50%) translateY(20px);
    pointer-events:none;
  }

  /* ---------- scroll to top ---------- */
  .scroll-top{
    position:fixed;
    bottom:28px;
    right:28px;
    width:48px;height:48px;
    border-radius:50%;
    background:var(--ink);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    border:none;
    cursor:pointer;
    z-index:90;
    opacity:0;
    transform:translateY(12px);
    transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s var(--ease);
    box-shadow:0 4px 16px rgba(0,0,0,0.15);
  }
  .scroll-top.show{
    opacity:1;
    transform:translateY(0);
  }
  .scroll-top:hover{background:var(--accent);}
  .scroll-top svg{width:20px;height:20px;}
  .scroll-cue .line{
    width:1px;height:46px;
    background:linear-gradient(var(--accent), transparent);
    animation:cue 2s ease-in-out infinite;
  }
  @keyframes cue{
    0%{transform:scaleY(0);transform-origin:top;}
    50%{transform:scaleY(1);transform-origin:top;}
    50.01%{transform-origin:bottom;}
    100%{transform:scaleY(0);transform-origin:bottom;}
  }

  /* ---------- reveal ---------- */
  .reveal{
    opacity:0;
    transform:translateY(36px);
    transition:opacity .9s var(--ease), transform .9s var(--ease);
  }
  .reveal.in{
    opacity:1;
    transform:translateY(0);
  }
  .service-card{
    background-color:var(--bg-deep);
    padding:44px 36px;
    transition:background-color .5s var(--ease);
    position:relative;
  }
  .service-card.reveal{
    opacity:0;
    transition:opacity 1.2s var(--ease), background-color .5s var(--ease);
    transition-delay: 0s, 0s;
  }
  .service-card.reveal.in{
    opacity:1;
  }
  .service-card.reveal.in:hover{background-color:var(--bg-base);}
  .service-card.reveal:nth-child(2){transition-delay: 0.2s, 0s;}
  .service-card.reveal:nth-child(3){transition-delay: 0.4s, 0s;}
  .service-card.reveal:nth-child(4){transition-delay: 0.6s, 0s;}
  .service-card.reveal:nth-child(5){transition-delay: 0.8s, 0s;}
  .service-card.reveal:nth-child(6){transition-delay: 1s, 0s;}


  /* ---------- section shell ---------- */
  section{
    position:relative;
    z-index:2;
    padding:100px 0;
  }

  section.cta-section {

    padding-top:0;
  }
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:40px;
    margin-bottom:64px;
    flex-wrap:wrap;
  }
  .section-head h2{
    font-size:clamp(2rem, 3.4vw, 2.9rem);
    max-width:560px;
  }
  .section-head p{
    color:var(--ink-dim);
    max-width:360px;
    font-size:0.98rem;
  }

  /* ---------- services ---------- */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:20px;
    overflow:hidden;
  }
  @media (max-width:900px){
    .services-grid{grid-template-columns:1fr;}
  }
  .service-card{
    background-color:var(--bg-deep);
    padding:44px 36px;
    transition:background-color .5s var(--ease), transform .4s var(--ease);
    position:relative;
  }
  .service-card.reveal.in:hover{background-color:var(--bg-base);}
  .service-icon{
    width:38px;height:38px;
    border-radius:40% 60% 60% 40%/50% 40% 60% 50%;
    margin-bottom:28px;
    transition:border-radius .3s var(--ease), background .3s var(--ease);
  }
  .service-card:hover .service-icon{
    border-radius:60% 40% 40% 60%/40% 60% 40% 60%;
    /* background:var(--accent) !important; */
  }
  .service-card h3{
    font-size:1.18rem;
    margin-bottom:12px;
    font-weight:600;
  }
  .service-card p{
    color:var(--ink-dim);
    font-size:0.92rem;
  }
  .service-num{
    position:absolute;
    /* top:36px; */
    right:32px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.8rem;
    color:var(--ink-faint);
  }

  /* ---------- process (sticky scroll) ---------- */
  .process-section{
    /* padding:0; */
  }
  .process-inner{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:60px;
    align-items:start;
  }
  .process-sticky{
    position:sticky;
    top:200px;
    padding:10px 0;
  }
  .process-label-group{
    display:flex;
    align-items:center;
    gap:16px;
    padding-top:50px;
  }
  .process-icon-wrap{
    display:flex;
    flex-direction:row;
    gap:8px;
  }
  .process-icon{
    width:50px;height:50px;
    border-radius:12px;
    background:var(--bg-panel);
    color:var(--ink-faint);
    display:flex !important;align-items:center;justify-content:center;
    transition:background .5s var(--ease), color .5s var(--ease), opacity .5s var(--ease);
    transform:scale(1) !important;
    transform-origin:center;
    opacity:1 !important;
  }
  .process-icon .material-symbols-outlined{
    font-size:20px;
    color:inherit;
  }
  .process-icon.active{
    display:flex;
    background:var(--ink);
    color:#fff;
    transform:scale(1);
    opacity:1;
  }
  .process-fade-block{
    opacity:1;
    transition:opacity .5s var(--ease);
  }
  .process-fade-block.fade{
    opacity:0;
  }
  .process-step-list{
    display:flex;
    flex-direction:column;
  }
  .process-step{
    padding:40px 0;
    border-top:1px solid var(--line);
  }
  .process-step:last-child{border-bottom:1px solid var(--line);}
  .process-step .mono{display:block;margin-bottom:18px;}
  .process-step h3{
    font-size:1.7rem;
    line-height:1.4;
    margin-bottom:14px;
    color:var(--ink-faint);
    transition:color .5s var(--ease);
  }
  .process-step p{
    color:var(--ink-faint);
    max-width:420px;
    font-size:0.98rem;
    opacity:0.5;
    transition:opacity .5s var(--ease);
  }
  .process-step.active h3{color:var(--ink);}
  .process-step.active p{opacity:1;color:var(--ink-dim);}
  #processLabel{font-size:0.8rem;font-weight:400;letter-spacing:0.04em;}
  .process-sticky .mono{transition:opacity .3s var(--ease);}
  .process-sticky .mono.fade{opacity:0;}

  @media (max-width: 900px) {
    .process-inner {
        grid-template-columns: 1fr;
    }
    .process-sticky{display:none;}
}

  /* ---------- work ---------- */
  .work-list{
    display:flex;
    flex-direction:column;
  }
  .work-item{
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:48px;
    align-items:center;
    padding:48px 0;
    border-top:1px solid var(--line);
  }
  .work-list .work-item:last-child{border-bottom:1px solid var(--line);}

  @media (max-width:900px){
    .work-item{grid-template-columns:1fr;}
  }
.work-thumb{
    aspect-ratio:3/2;
    border-radius:16px;
    position:relative;
    overflow:hidden;
    transition:transform .5s var(--ease);
    background:var(--bg-base);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:32px;
}
.work-thumb img.logo{
    max-width:100%;max-height:100%;object-fit:contain;
    transition:opacity .4s var(--ease), transform .4s var(--ease);
    z-index:2;position:relative;
}

  .work-thumb.gradient{
    background:radial-gradient(circle at 35% 30%, var(--accent-2), var(--bg-panel) 65%);
  }
  .work-thumb.gradient::after{
    content:attr(data-initials);
    font-family:'Space Grotesk',sans-serif;
    font-size:3rem;
    font-weight:700;
    color:var(--accent);
    opacity:0.4;
  }
  .work-thumb img.logo{
    max-height:120px;
    max-width:120px;
    width:100%;
    height:auto;
    object-fit:contain;
    transition:opacity .4s var(--ease);
  }

  .work-thumb.large img.logo{
    max-height:120px;
    max-width:180px;
  }

    .work-thumb.small img.logo{
    max-height:100px;
    max-width:140px;
   
  }

  .work-thumb {

    padding:0px 15px;
  }
 

  .work-item:hover .work-thumb img:not(.logo){
    /* opacity:1; */
  }
  .work-meta{display:flex;gap:10px;margin-bottom:18px;}
  .tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:0.7rem;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink-faint);
    border:1px solid var(--line);
    padding:5px 11px;
    border-radius:100px;
    line-height:1;
  }
  .work-item h3{
    font-size:1.9rem;
    margin-bottom:14px;
  }
  .work-item p{color:var(--ink-dim);max-width:420px;margin-bottom:20px;}
  .work-link{
    font-size:0.88rem;
    font-weight:500;
    display:inline-flex;align-items:center;gap:8px;
    color:var(--accent);
  }
  .work-arrow{
    transition:transform .3s var(--ease);
    display:inline-block;
  }
  .work-link:hover .work-arrow{
    transform:translateX(6px);
  }

  #work {

    padding-bottom:0;
  }

  /* ---------- testimonial ---------- */
  .testimonial{
    text-align:center;
    max-width:820px;
    margin:0 auto;
  }
  .testimonial blockquote{
    font-family:'Space Grotesk',sans-serif;
    font-size:clamp(1.5rem, 3vw, 2.3rem);
    font-weight:500;
    letter-spacing:-0.01em;
    line-height:1.35;
    margin:32px 0 32px;
  }
  .testimonial-author{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
  }
  .author-dot{
    width:38px;height:38px;
    border-radius:45% 55% 60% 40%/50% 45% 55% 50%;
    background:linear-gradient(140deg, var(--accent), var(--accent-2));
  }
  .testimonial-author div{text-align:left;}
  .testimonial-author strong{display:block;font-size:0.92rem;}
  .testimonial-author span{font-size:0.85rem;color:var(--ink-faint);}

  /* ---------- CTA ---------- */
  .cta-section{
    position:relative;
  }
  .cta-panel{
    background:var(--bg-panel);
    border:1px solid var(--line);
    border-radius:28px;
    padding:90px 60px;
    text-align:center;
    position:relative;
    overflow:hidden;
    width:100%;
  }
  .cta-panel .inner-wrap{
    max-width:720px;
    margin:0 auto;
    position:relative;z-index:2;
  }
  .cta-panel h2{
    font-size:clamp(2.1rem,4.4vw,3.4rem);
    margin-bottom:26px;
    position:relative;z-index:2;
  }
  .cta-panel p{
    color:var(--ink-dim);
    max-width:460px;
    margin:0 auto 40px;
    position:relative;z-index:2;
  }
  .cta-glow{
    position:absolute;
    width:500px;height:500px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(107,107,118,0.18), transparent 70%);
    top:-160px;left:50%;
    transform:translateX(-50%);
    z-index:1;
  }

  /* ---------- footer ---------- */
  footer{
    padding:32px 0;
    border-top:1px solid var(--line);
    position:relative;z-index:2;
  }
  .footer-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:20px;
    /* margin-bottom:24px; */
  }
  .footer-links{
    display:flex;
    gap:24px;
    flex-wrap:wrap;
  }
  .footer-links a{
    color:var(--ink-dim);
    font-size:0.8rem;
    text-decoration:none;
    transition:color .3s var(--ease);
  }
  .footer-links a:hover{color:var(--accent);}
  .footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-top:20px;
    border-top:1px solid var(--line);
    flex-wrap:wrap;
    gap:12px;
  }
  .footer-bottom span{font-size:0.72rem;color:var(--ink-faint);}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
    html{scroll-behavior:auto;}
  }
   

  
  


    @media (max-width:900px){
    .wrap{padding:0 20px;}
    header{
      position:relative;
      top:auto;
      left:auto;
      right:auto;
      z-index:1000;
      padding:14px 0;
      background:rgba(255,255,255,0.90);
      backdrop-filter:blur(12px);
      -webkit-backdrop-filter:blur(12px);
    }
    .logo img{height:32px !important;width:auto !important;}
    /* .heropadding-top:40px;} */
    .hero{padding-top:0;}
    nav{
      display:flex;
      justify-content:space-between;
      align-items:center;
    }
    .mobile-toggle{display:flex;margin-left:auto;}
    .nav-links{gap:20px;}
    .lang-switch{margin-left:0;}
    .nav-cta{margin-left:0;}
    .nav-group{
      display:none;
    }
    .nav-group.open{
      display:flex;
    }
    .services-grid{grid-template-columns:1fr;}
    
    .process-sticky{position:relative;top:auto;padding:10px 0;}
    section{padding:50px 0;}
    .process-step{padding:28px 0;}
    .blob-field{left:50%;width:600px;height:600px;opacity:0.6;}
    .cta-panel{padding:48px 24px;}
    footer .footer-top{flex-direction:column;align-items:flex-start;gap:16px;}
    .footer-links{gap:14px;font-size:0.8rem;}
    footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
    .work-thumb{width:100%;aspect-ratio:4/2.5 !important;margin:0 auto;}
    .work-thumb img{max-width:120px;max-height:40px;}
    .scroll-cue{display:none;}
  }

  /* ---------- policy popup ---------- */
  .policy-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,0.55);backdrop-filter:blur(4px);
    z-index:2000;opacity:0;visibility:hidden;transition:opacity .3s var(--ease), visibility .3s var(--ease);
  }
  .policy-overlay.open{opacity:1;visibility:visible;}
  .policy-popup{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.95);
    z-index:2010;width:min(92%,800px);max-height:85vh;overflow:auto;
    background:var(--bg-deep);border:1px solid var(--line);border-radius:24px;padding:36px;
    opacity:0;visibility:hidden;transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s var(--ease);
    box-shadow:0 24px 60px rgba(0,0,0,0.25);
  }
  .policy-popup.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);}
  .policy-close{
    position:absolute;top:16px;right:16px;background:none;border:none;font-size:28px;
    color:var(--ink-faint);cursor:pointer;line-height:1;padding:4px;
  }
  .policy-close:hover{color:var(--ink);}
  .policy-body h2{margin:0 0 24px;font-size:1.6rem;}
  .policy-content{color:var(--ink-dim);line-height:1.7;font-size:0.95rem;}
  .policy-content h3{color:var(--ink);margin:20px 0 8px;font-size:1.1rem;}
  .policy-content p{margin:0 0 14px;}
  .policy-ok{
    margin-top:30px;width:100%;justify-content:center;background:var(--ink);color:#fff;font-weight:600;font-size:0.92rem;padding:15px 28px;border:none;border-radius:100px;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .3s var(--ease), background .3s var(--ease);
  }
  .policy-ok:hover{background:var(--accent);}
  @media (max-width:900px){
    .policy-popup{width:min(94%,560px);padding:28px 24px;}
  }

  /* ---------- cookie consent banner ---------- */
  .cookie-banner{
    position:fixed;left:50%;bottom:24px;z-index:2100;
    background:var(--bg-deep);border:1px solid var(--line);border-radius:20px;
    padding:20px 28px;display:flex;flex-direction:column;gap:14px;
    transform:translate(-50%,150vh);transition:transform .4s var(--ease), opacity .4s var(--ease);
    opacity:0;
    box-shadow:0 -4px 20px rgba(0,0,0,0.1);
    max-width:600px;width:100%;box-sizing:border-box;
  }
  .cookie-banner.show{transform:translate(-50%,0);opacity:1;}
  .cookie-inner{display:flex;flex-direction:column;gap:14px;width:100%;}
  .cookie-header{display:flex;align-items:flex-start;gap:12px;}
  .cookie-icon{width:28px;height:28px;flex-shrink:0;color:var(--ink-dim);}
  .cookie-header strong{color:var(--ink);font-size:0.95rem;}
  .cookie-text{color:var(--ink-dim);font-size:0.9rem;line-height:1.6;}
  .cookie-actions{display:flex;gap:10px;width:100%;justify-content:flex-start;}
  .cookie-essential,.cookie-accept{
    font-size:0.88rem;padding:10px 20px;border-radius:100px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:all .3s var(--ease);font-weight:500;
  }
  .cookie-essential:hover{background:var(--bg-base);border-color:var(--accent);}
  .cookie-accept{background:var(--ink);color:#fff;border-color:var(--ink);}
  .cookie-accept:hover{background:var(--accent);border-color:var(--accent);}
  @media (max-width:900px){
    .cookie-banner{left:20px;right:20px;bottom:24px;transform:translate(0,150vh);max-width:none;width:auto;opacity:0;}
    .cookie-banner.show{transform:translate(0,0);opacity:1;}
    .cookie-actions{flex-direction:column;}
    .cookie-essential,.cookie-accept{flex:1;text-align:center;width:100%;}
  }

