  :root{
    --bg:var(--gray-0); --bg-2:var(--gray-20); --panel:var(--gray-0);
    --text:var(--gray-750); --text-2:var(--gray-500); --text-3:var(--gray-300);
    --brand:var(--violet-400);
    --line:color-mix(in srgb, var(--gray-900) 8%, transparent); --line-strong:color-mix(in srgb, var(--gray-900) 13%, transparent);
    --shadow-float:0 0 0 1px color-mix(in srgb, var(--gray-900) 5%, transparent), 0 2px 6px color-mix(in srgb, var(--gray-900) 5%, transparent), 0 12px 32px color-mix(in srgb, var(--gray-900) 10%, transparent);
    --ease-exit:cubic-bezier(.215,.61,.355,1);
    --ease-out:cubic-bezier(.16,1,.3,1);
    --spring:linear(0, 0.01, 0.04 1.8%, 0.16 3.7%, 0.81 10.6%, 1.04, 1.18 16.4%, 1.25 20.6%, 1.19 25.4%, 1.06 30.8%, 1 33.5%, 0.94 39.6%, 1 53.9%, 1.01 56.7%, 1 74.2%, 1);
    --ok:var(--green-300);
  }
  html[data-theme="dark"]{
    --bg:var(--gray-900); --bg-2:var(--gray-880); --panel:var(--gray-870);
    --text:var(--gray-20); --text-2:var(--gray-350); --text-3:var(--gray-550);
    --brand:var(--violet-450);
    --line:color-mix(in srgb, var(--gray-0) 8%, transparent); --line-strong:color-mix(in srgb, var(--gray-0) 15%, transparent);
    --shadow-float:0 0 0 1px color-mix(in srgb, var(--gray-0) 8%, transparent), 0 2px 6px color-mix(in srgb, var(--gray-900) 40%, transparent), 0 12px 32px color-mix(in srgb, var(--gray-900) 55%, transparent);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{color-scheme:light dark}
  body{
    font-family:var(--font);
    font-feature-settings:"cv01","ss03";
    background:var(--bg); color:var(--text);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  button{font:inherit;color:inherit;background:none;border:0;cursor:default}
  ::selection{background:color-mix(in srgb, var(--brand) 25%, transparent)}
  .tab{font-variant-numeric:tabular-nums}

  .minibar{position:fixed;inset:0 0 auto 0;z-index:300;height:60px;display:flex;align-items:center;padding:0 24px;gap:12px}
  .logo{display:flex;align-items:center;gap:9px;font-weight:550;font-size:15px;letter-spacing:-.2px}
  .mark{width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 60%, var(--violet-300)))}
  .cta{height:34px;padding:0 15px;border-radius:8px;background:var(--text);color:var(--bg);font-size:13px;font-weight:550;margin-left:auto;transition:opacity .15s}
  .cta:is(:hover, [data-hover]){opacity:.88}
  .btn{height:48px;padding:0 26px;border-radius:9999px;background:var(--text);color:var(--bg);font-size:15px;font-weight:550;display:inline-flex;align-items:center;gap:8px;transition:transform .15s var(--ease-exit), opacity .2s}
  .btn:is(:hover, [data-hover]){opacity:.9}
  .btn:is(:active, [data-active]){transform:scale(.97)}



  /* =========================================================
     A · ZERO-JS CINEMA (pure CSS scroll-driven)
     ========================================================= */
  #za{height:280vh}
  #za-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}
  #za .kick{font-size:12px;font-weight:550;letter-spacing:.4px;text-transform:none;color:var(--text-3);margin-bottom:20px}
  #za h1{
    font-size:clamp(40px,5.4vw,64px);font-weight:500;letter-spacing:-0.022em;line-height:1.06;
    display:flex;gap:.26em;
  }
  #za h1 .w{display:flex;overflow:hidden;padding-bottom:.08em}
  #za h1 .c{display:inline-block;transform:translateY(110%)}
  @property --wk{syntax:'<integer>';inherits:true;initial-value:0}
  #za-route{width:min(880px,92vw);margin-top:40px;overflow:visible}
  #za-route .rd{
    fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;
    stroke-dasharray:1;stroke-dashoffset:1;
  }
  #za-route .rghost{fill:none;stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 5}
  #za-chip{
    position:absolute;
    offset-path:path('M10,120 C120,20 240,190 380,110 C500,42 560,170 700,130 C790,104 830,70 870,60');
    offset-distance:0%;offset-rotate:0deg;
    background:var(--text);color:var(--bg);
    font-size:11px;font-weight:550;padding:5px 10px;border-radius:8px;white-space:nowrap;
  }
  #za-wk{counter-reset:wk var(--wk)}
  #za-wk::after{content:counter(wk)}
  #za-sub{margin-top:30px;font-size:15px;color:var(--text-2);display:flex;align-items:baseline;gap:6px}
  #za-sub b{font-size:24px;font-weight:550;letter-spacing:-.4px;color:var(--text)}
  #za-cta{margin-top:26px;opacity:0;transform:translateY(14px)}
  #za-hint{position:absolute;bottom:5vh;font-size:11px;color:var(--text-3)}
  @supports (animation-timeline: scroll()) {
    #za h1 .c{
      animation:za-rise .5s var(--spring) both;
      animation-timeline:scroll(root);
      animation-range:2% 22%;
      animation-delay:calc(var(--i) * 0.014s);
    }
    #za-route .rd{
      animation:za-draw linear both;
      animation-timeline:scroll(root);
      animation-range:14% 72%;
    }
    #za-chip{
      animation:za-ride linear both;
      animation-timeline:scroll(root);
      animation-range:14% 72%;
    }
    #za-sticky{
      animation:za-count linear both;
      animation-timeline:scroll(root);
      animation-range:14% 72%;
    }
    #za-cta{
      animation:za-cta-in .5s var(--spring) both;
      animation-timeline:scroll(root);
      animation-range:74% 92%;
    }
    #za-hint{
      animation:za-fade linear both;
      animation-timeline:scroll(root);
      animation-range:0% 10%;
    }
  }
  @supports not (animation-timeline: scroll()) {
    /* golden rule: finished state is the default */
    #za{height:100vh}
    #za h1 .c{transform:none}
    #za-route .rd{stroke-dashoffset:0}
    #za-chip{offset-distance:100%}
    #za-sticky{--wk:24}
    #za-cta{opacity:1;transform:none}
    #za-hint{display:none}
  }
  @keyframes za-rise{from{transform:translateY(110%)}to{transform:translateY(0)}}
  @keyframes za-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes za-ride{from{offset-distance:0%}to{offset-distance:100%}}
  @keyframes za-count{from{--wk:0}to{--wk:24}}
  @keyframes za-cta-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
  @keyframes za-fade{from{opacity:1}to{opacity:0}}

  @media (prefers-reduced-motion: reduce){
    *{transition-duration:.01ms !important;animation-duration:.01ms !important}
  }

