/* R22 Motion Lab — demo kit: shared primitives used inside demonstrations.
   Copy this file (plus tokens.css) when reusing a demo in another project. */
.demo-root { color: var(--r22-white); font-family: var(--r22-font-body); container-type: size; }
.dk-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; padding: 1.5rem; text-align: center; }
.dk-fill { position: absolute; inset: 0; }
.dk-col { position: absolute; inset: 0; display: flex; flex-direction: column; padding: clamp(1rem, 3cqw, 2rem); gap: 1rem; }
.dk-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.dk-toolbar.abs { position: absolute; left: clamp(.75rem, 2cqw, 1.25rem); top: clamp(.75rem, 2cqw, 1.25rem); right: clamp(.75rem, 2cqw, 1.25rem); z-index: 5; }
.dk-spacer { flex: 1; }
.dk-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .6rem; border-radius: 999px; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; border: 1px dashed var(--r22-neutral-grey); color: var(--r22-soft-grey); white-space: nowrap; }
.dk-badge--internal { border: 1px solid var(--r22-orange); color: var(--r22-orange); }
.dk-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.dk-seg { display: inline-flex; padding: 3px; border-radius: 999px; border: 1px solid #2c2c2c; background: rgba(0,0,0,.6); flex-wrap: wrap; }
.dk-seg button { min-height: 32px; padding: 0 .8rem; border: 0; border-radius: 999px; background: none; color: var(--r22-soft-grey); font: 400 .8rem/1 var(--r22-font-body); white-space: nowrap; }
.dk-seg button[aria-checked="true"] { background: var(--r22-white); color: #000; }
.dk-seg button:hover:not([aria-checked="true"]) { color: var(--r22-white); }
.dk-btn { display: inline-flex; align-items: center; gap: .45rem; min-height: 36px; padding: 0 .9rem; border-radius: 999px; border: 1px solid #333; background: rgba(0,0,0,.6); color: var(--r22-white); font: 400 .82rem/1 var(--r22-font-body); white-space: nowrap; }
.dk-btn:hover { border-color: var(--r22-neutral-grey); }
.dk-btn--primary { background: var(--r22-orange); border-color: var(--r22-orange); color: #000; }
.dk-btn:disabled { opacity: .45; cursor: not-allowed; }
.dk-caption { font-size: .8rem; color: var(--r22-neutral-grey); max-width: 60ch; }
.dk-h { font-family: var(--r22-font-heading); font-weight: 700; letter-spacing: -.02em; line-height: 1.02; }
.dk-label { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--r22-neutral-grey); }
.dk-num { font-family: var(--r22-font-heading); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.dk-range { accent-color: var(--r22-orange); }
.dk-tip { position: absolute; pointer-events: none; z-index: 6; background: var(--r22-white); color: #000; font-size: .78rem; padding: .35rem .6rem; border-radius: .45rem; white-space: nowrap; transform: translate(-50%, calc(-100% - 10px)); }
.split-word { display: inline-block; white-space: nowrap; }
.split-char { display: inline-block; will-change: transform, opacity; }
.dk-scroller { position: absolute; inset: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #444 transparent; }
.dk-hint { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); font-size: .75rem; color: var(--r22-neutral-grey); display: flex; align-items: center; gap: .4rem; white-space: nowrap; pointer-events: none; z-index: 4; }
.dk-fallback { position: absolute; inset: 0; display: grid; place-items: center; padding: 2rem; text-align: center; color: var(--r22-soft-grey); }
/* Reduced motion: app preview toggle and system preference */
.motion-reduced .demo-root *, .motion-reduced .demo-root *::before, .motion-reduced .demo-root *::after { transition-duration: 0s !important; transition-delay: 0s !important; animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .demo-root *, .demo-root *::before, .demo-root *::after { transition-duration: 0s !important; transition-delay: 0s !important; animation: none !important; }
}
