/* Opt-in public controls: shared spring feedback, existing palette and geometry. */
:is(body.site-page.site-dark, #landing-root)[data-control-motion="soft"] .jelly-soft {
  -webkit-tap-highlight-color:transparent;
  transition:color .2s ease,background-color .2s ease,border-color .2s ease,
    opacity .2s ease,translate .28s cubic-bezier(.22,.8,.2,1);
}
:where([data-control-motion="soft"]) .jelly-soft:focus-visible {
  outline:2px solid #fff;outline-offset:4px;
}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  :is(body.site-page.site-dark, #landing-root)[data-control-motion="soft"] .jelly-soft.jelly-surface:is(.landing-button,.site-button,.locale-switch,.workspace-tool-link):hover:not(:disabled):not([aria-disabled="true"]) {
    translate:0 -2px;
  }
  :is(body.site-page.site-dark, #landing-root)[data-control-motion="soft"] .jelly-soft.jelly-surface:is(.landing-button,.site-button,.locale-switch,.workspace-tool-link).jelly-pressed:not(:disabled):not([aria-disabled="true"]) {
    translate:0 0;transition-duration:.1s;
  }
}

/* A small underline follows text links without shifting their hit areas. */
:where([data-control-motion="soft"]) :is(.landing-nav-links,.landing-footer,.site-footer) a.jelly-soft,
:where([data-control-motion="soft"]) .landing-projects-link.jelly-soft {
  position:relative;
}
:where([data-control-motion="soft"]) :is(.landing-nav-links,.landing-footer,.site-footer) a.jelly-soft::after,
:where([data-control-motion="soft"]) .landing-projects-link.jelly-soft::after {
  content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;
  background:currentColor;opacity:.65;transform:scaleX(0);transform-origin:left;
  transition:transform .28s cubic-bezier(.22,.8,.2,1);pointer-events:none;
}
:where([data-control-motion="soft"]) a.jelly-soft:is(:hover,:focus-visible)::after {transform:scaleX(1)}

/* Keep disclosures native; only the indicator turns as the answer opens. */
#landing-root[data-control-motion="soft"] .landing-faq-list summary::after {
  content:"+";rotate:0deg;transition:rotate .3s cubic-bezier(.22,.8,.2,1);
}
#landing-root[data-control-motion="soft"] .landing-faq-list details[open] summary::after {rotate:45deg}

@media(prefers-reduced-motion:reduce) {
  :where([data-control-motion="soft"]) .jelly-soft,
  :where([data-control-motion="soft"]) .jelly-soft::after {transition:none!important;animation:none!important}
}
