/* TACTILE service aliases. Name bridges only — does not restyle .btn / .field / .input / .glass / .panel.
   Every value is var() of tactile/tokens.css or a cited components.css number.
   No page type scale, no marketing grid. Consumers load after tokens.css + components.css. */

:root {
  /* tokens.css */
  --ink-2: var(--muted);
  --ink-3: var(--faint);
  --rule: var(--line);
  --solid: var(--surface-raised);
  --gutter: var(--space-5);
  --page-gutter: var(--space-5);
  --glass: var(--glass-fill);
  --head-glass: var(--header-fill);
  /* --glass-shadow 를 --shadow-float 에 잇지 않는다. 헤더 역할은 그림자 없음
     (docs.css .ds-header computed 2026-09-20: box-shadow none, blur 20px,
     background rgba(245,245,245,.87), border 1px rgba(17,17,17,.10)).
     부유 면·메뉴 overlay 는 --shadow-float 를 직접 쓴다. */
  --plane-edge: var(--line);
  --plane-rim: var(--line);
  --glass-reading-blur: var(--glass-blur);
  --glass-navigation-blur: var(--glass-blur); /* .ds-header backdrop-filter blur(20px) */
  --glass-navigation-contrast: 1; /* identity — leftover filter lists 가 빈 값으로 전부 무효화되지 않게 */
  --glass-navigation-saturation: 1;
  --glass-reading-contrast: 1;
  --glass-reading-saturation: 1;
  --gloss-sheen: transparent; /* TACTILE 에 없음. 빈 값이면 background-image 가 실패한다 */
  --t-hover: var(--duration);
  --ease-out: var(--ease);

  /* components.css .btn { min-height:46px; border-radius:12px } */
  --control-height: 46px;
  --r-ctl: 12px;

  /* components.css .glass { border-radius: var(--radius-md) } */
  --r-card: var(--radius-md);

  /* docs.css .form-demo / .navigation-demo { border-radius:14px } — same as .panel */
  --r-panel: 14px;

  /* components.css .segmented button { border-radius:6px } */
  --r-tag: 6px;

  /* tokens.css --radius-sm */
  --r-inset: var(--radius-sm);

  /* 시트 교체 뒤에도 소비면이 아직 쓰는 leftover 이름. 값은 현행 토큰만.
     --fs-* 타입스케일은 여기 넣지 않는다. 사용처는 13px/11px 로 고친다.
     --glass-shadow 는 헤더를 띄우므로 잇지 않는다.
     leftover --plane-shadow 는 색(rgba). --shadow-float 목록을 잇지 않는다.
     `box-shadow: 0 5px 13px -10px var(--plane-shadow)` 가 길이 뒤에 전체
     그림자를 붙여 선언이 무효가 된다. 소비면은 box-shadow: var(--shadow-float). */
  --gloss-rim: var(--glass-rim);
  --glass-edge: var(--glass-inset);
  --aqua-deep: var(--accent-deep);
  --inset-bg: var(--mist);
  --ground-hi: var(--surface-raised);
  --surface-inverse: var(--palette-ink);
  --ink-inverse: var(--palette-white);
  --ink-inverse-2: var(--palette-mist);
  --surface-inverse-card: color-mix(in srgb, var(--palette-ink) 92%, var(--palette-white));
  --rule-inverse: color-mix(in srgb, var(--palette-white) 20%, var(--palette-ink));
  --gloss-inverse: color-mix(in srgb, var(--palette-white) 12%, transparent);
  --sp-2: var(--space-2);
  --sp-4: var(--space-4);
  --sp-6: var(--space-6);
  --sp-7: var(--space-7);
  --graphic-shadow: var(--shadow-float);
  --ctl-shadow: var(--shadow);
  --t-state: .9s;
  --warm: var(--accent);
  --cool: var(--muted);
  --glass-action: var(--control-fill);
  --glass-action-blur: var(--glass-blur);
  --glass-action-contrast: 1;
  --glass-action-saturation: 1;
  --glass-navigation: var(--header-fill);
}
