/*
  Terms and Conditions page ("The Signed Page"). Scoped under .tc, classes
  prefixed tc-. Loaded by app/views/static/terms.html.erb.

  House rules: flat white and #f6f8fd bands (dark #0b1220 / #0f182b), solid
  brand blues, no blobs, glows, gradient text or blur. Motion moves only
  transform, opacity, clip-path and stroke-dashoffset. The markup is the
  finished page: only .is-armed descendants start hidden, and .is-in (added
  when a block enters the viewport) plays them in. RTL uses logical
  properties; --dir and --start mirror directional motion.
*/
.tc { --blue: #356dff; --blue-2: #2a57d6; --blue-3: #1e3ea8; --navy: #0b2161;
  --ink: #0f172a; --body: #475569; --muted: #64748b; --faint: #94a3b8; --line: #e6ebf4; --line-2: #d5deee;
  --bg: #ffffff; --soft: #f6f8fd; --card: #ffffff; --tint: #edf2ff; --tint-2: #dbe5ff;
  --accent: #356dff; --link: #2a57d6; --link-hover: #1e3ea8; --btn: #2a57d6; --btn-hover: #1e3ea8;
  --paper: #ffffff; --paper-back: #f1f4fb; --bar: #e4e9f4; --bar-2: #c9d5ee; --sig: #0b2161; --tile-bg: #edf2ff; --glyph: #2a57d6;
  --shadow: 0 1px 2px rgba(15,23,42,.05), 0 10px 24px -14px rgba(15,23,42,.18);
  --lift: 0 1px 2px rgba(15,23,42,.06), 0 22px 44px -22px rgba(15,35,95,.32);
  --e-out: cubic-bezier(.16,1,.3,1); --e-in-out: cubic-bezier(.65,0,.35,1); --e-in: cubic-bezier(.55,0,.75,.2);
  --e-pop: linear(0, 0.0307, 0.1093, 0.2181, 0.3422, 0.4702, 0.5935, 0.7064, 0.805, 0.8877, 0.9539, 1.0045, 1.0408, 1.0646, 1.0781, 1.0833, 1.0822, 1.0766, 1.0681, 1.058, 1.0473, 1.0368, 1.0271, 1.0185, 1.0112, 1.0053, 1.0007, 0.9973, 0.9951, 0.9937, 0.9931, 0.9931, 0.9934, 0.9941, 1);
  --e-settle: linear(0, 0.0228, 0.0815, 0.1637, 0.2593, 0.3604, 0.4611, 0.5572, 0.6458, 0.7252, 0.7944, 0.8533, 0.9023, 0.9418, 0.973, 0.9966, 1.0139, 1.0257, 1.0332, 1.0372, 1.0384, 1.0376, 1.0355, 1.0324, 1.0287, 1.0248, 1.021, 1.0173, 1.0138, 1.0108, 1.0081, 1.0058, 1.0039, 1.0023, 1);
  --d-micro: 180ms; --d-ui: 420ms; --d-reveal: 760ms;
  --dir: 1; --start: left; --gut: 1rem; --nav: 73px;
  color: var(--body); background: var(--bg); font-feature-settings: "cv11", "ss01"; overflow-x: clip; }
@supports not (transition-timing-function: linear(0, 1)) {
  .tc { --e-pop: cubic-bezier(.34,1.56,.64,1); --e-settle: cubic-bezier(.22,1.2,.36,1); }
}
.tc[dir="rtl"] { --dir: -1; --start: right; }
.dark .tc { --ink: #f8fafc; --body: #cbd5e1; --muted: #9aa8bd; --faint: #64748b; --line: rgba(255,255,255,.09); --line-2: rgba(255,255,255,.16);
  --bg: #0b1220; --soft: #0f182b; --card: #131d33; --tint: #172648; --tint-2: #1d3166;
  --accent: #6b95ff; --link: #8fb0ff; --link-hover: #b8ccff; --btn: #2a57d6; --btn-hover: #1e3ea8;
  --paper: #131d33; --paper-back: #0f182b; --bar: rgba(255,255,255,.09); --bar-2: rgba(255,255,255,.18); --sig: #c9d8ff; --tile-bg: #172648; --glyph: #8fb0ff;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 12px 28px -16px rgba(0,0,0,.6);
  --lift: 0 1px 2px rgba(0,0,0,.35), 0 24px 48px -22px rgba(0,0,0,.7); }
@media (min-width: 640px) { .tc { --gut: 1.5rem; } }
@media (min-width: 1024px) { .tc { --gut: 2rem; } }

.tc *, .tc *::before, .tc *::after { box-sizing: border-box; }
.tc [hidden] { display: none !important; }
.tc-wrap { max-width: 78rem; margin-inline: auto; padding-inline: var(--gut); }
.tc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tc a:focus-visible, .tc button:focus-visible { outline: 2px solid #356dff; outline-offset: 3px; border-radius: 8px; }
.tc [tabindex="-1"]:focus { outline: none; }
.tc svg { flex: none; }
.tc-pills svg, .tc-btn svg, .tc-toc svg, .tc-mbar svg, .tc-tick, .tc-rel svg, .tc-top svg, .tc-ext svg, .tc-pause svg, .tc-g {
  fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* Type */
.tc-kicker { display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1.15rem; font-size: .76rem; font-weight: 750;
  letter-spacing: .1em; text-transform: uppercase; color: var(--link); }
.tc-kicker::before { content: ""; width: 1.4rem; height: 2px; border-radius: 2px; background: currentColor; transform-origin: var(--start) center; }
.tc-h1 { margin: 0; color: var(--ink); font-size: clamp(2.35rem, 1.5rem + 3.4vw, 4.5rem); font-weight: 820; letter-spacing: -.035em;
  line-height: 1.04; text-wrap: balance; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
.tc-h2 { margin: 0 0 1.1rem; color: var(--ink); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 800; letter-spacing: -.03em;
  line-height: 1.12; text-wrap: balance; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
.tc .w { display: inline-block; max-width: 100%; overflow: hidden; vertical-align: bottom; padding-block: .06em .16em; margin-block: -.06em -.16em; }
.tc .w > span { display: inline-block; }
.tc-h1 em { position: relative; font-style: normal; color: var(--accent); }
.tc-h1 em::after { content: ""; position: absolute; inset-inline: .02em; bottom: -.02em; height: .075em; border-radius: 1em; background: currentColor;
  transform-origin: var(--start) center; }

/* Buttons */
.tc-btn { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 1.4rem; border-radius: 999px; border: 1px solid transparent;
  font: inherit; font-size: .975rem; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: transform var(--d-micro) var(--e-out); -webkit-tap-highlight-color: transparent; }
.tc-btn:active { transform: scale(.97); }
.tc-btn--primary { background: var(--btn); color: #fff; }
.tc-btn--ghost { background: transparent; color: var(--ink); border-color: var(--line-2); }
.tc-btn__ico { display: inline-grid; overflow: hidden; }
@media (hover: hover) {
  .tc-btn--primary:hover { background: var(--btn-hover); color: #fff; }
  .tc-btn--ghost:hover { background: var(--card); }
  .tc-btn:hover .tc-btn__ico--down svg { animation: tc-loop-down 640ms var(--e-in-out); }
}
@keyframes tc-loop-down { 0% { transform: none; } 45% { transform: translateY(110%); } 46% { transform: translateY(-110%); } 100% { transform: none; } }

/* Hero */
.tc-hero { position: relative; padding-block: 7rem 5rem; background: var(--soft); border-bottom: 1px solid var(--line); }
.tc-hero__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) {
  .tc-hero { padding-block: 7.5rem 6rem; }
  .tc-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 4rem; }
}
.tc-lede { margin: 1.5rem 0 0; max-width: 40rem; color: var(--ink); font-size: clamp(1.0625rem, 1rem + .3vw, 1.2rem); line-height: 1.6; }
.tc-intro { margin: .85rem 0 0; max-width: 40rem; font-size: 1rem; line-height: 1.65; }
.tc-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.tc-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .8rem; border-radius: 999px; background: var(--card);
  border: 1px solid var(--line); color: var(--ink); font-size: .85rem; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.tc-pill svg { color: var(--accent); }
.tc-ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.9rem; }

/* Stage: the signed page */
.tc-stage { position: relative; display: grid; place-items: center; padding: 1.5rem .5rem 3rem; }
.tc-art { position: relative; width: min(24.5rem, 100%); perspective: 1400px; }
.tc-paper { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--lift); }
.tc-sheet { --tilt: rotateY(calc(-7deg * var(--dir))) rotateX(3deg) rotate(calc(-3deg * var(--dir)));
  position: relative; padding: 1.5rem 1.5rem 1.3rem; transform: var(--tilt); }
.tc-paper--back { position: absolute; inset: 0; background: var(--paper-back); box-shadow: var(--shadow);
  transform: translate(calc(16px * var(--dir)), 8px) rotate(calc(2.5deg * var(--dir))); }
.tc-sheet__head { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--line); }
.tc-sheet__mark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; background: var(--tint); flex: none; }
.tc-sheet__mark img { width: 1.15rem; height: auto; }
.tc-mark-dark, .dark .tc .tc-mark-light { display: none; }
.dark .tc .tc-mark-dark { display: block; }
.tc-bars { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }
.tc-bar { display: block; width: var(--w); height: 7px; border-radius: 7px; background: var(--bar); transform-origin: var(--start) center; }
.tc-bar--title { height: 11px; background: var(--sig); }
.tc-bar--sub { background: var(--bar-2); }
.tc-sheet__rows { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.tc-sheet__rows li { display: grid; grid-template-columns: 1.25rem 1fr; gap: .55rem; align-items: start; }
.tc-sheet__num { color: var(--accent); font-size: 11px; font-weight: 750; line-height: 1.15; font-variant-numeric: tabular-nums; margin-top: -3px; }
.tc-sheet__sign { position: relative; height: 72px; margin-top: 1.3rem; }
.tc-sheet__line { position: absolute; inset-inline: 0 30%; bottom: 3px; border-top: 1px dashed var(--line-2); }
/* The nib rides the SVG path with offset-path, which uses the box's
   physical top-left, so .tc-sig is mirrored as a whole in RTL. */
.tc-sig { position: absolute; inset-inline-start: 0; top: 0; width: 220px; height: 70px; }
.tc[dir="rtl"] .tc-sig { transform: scaleX(-1); }
.tc-sig svg { display: block; overflow: visible; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.tc-sig__ink { stroke: var(--sig); stroke-width: 2.2; }
.tc-sig__swash { stroke: var(--accent); stroke-width: 1.6; }
.tc-nib { position: absolute; left: 0; top: 0; width: 26px; height: 26px; offset-anchor: 2px 24px; offset-rotate: 0deg; offset-distance: 100%; color: var(--sig); }
.tc-nib svg { display: block; }
.tc-nib__body { fill: var(--sig); }
.tc-nib__holder { fill: var(--accent); }
.tc-nib__slit { stroke: var(--paper); stroke-width: 1.3; stroke-linecap: round; }
.tc-nib__hole { fill: var(--paper); }
.tc-seal { position: absolute; inset-inline-end: -24px; bottom: -30px; width: 96px; height: 96px; }
.tc-seal__drop, .tc-seal__squash { display: block; width: 100%; height: 100%; }
.tc-seal__squash { transform-origin: 50% 100%; }
.tc-seal svg { display: block; width: 100%; height: 100%; filter: drop-shadow(0 6px 10px rgba(11,33,97,.22)); }
.tc-seal__disc { fill: #356dff; }
.tc-seal__hair { fill: none; stroke: #fff; stroke-opacity: .55; stroke-width: .8; }
.tc-seal__text { fill: #fff; font-size: 7.8px; font-weight: 700; letter-spacing: .4px; }
.tc-seal__check { fill: none; stroke: #fff; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.tc-seal__ring { transform-box: view-box; transform-origin: 50px 50px; animation: tc-spin 40s linear infinite; animation-play-state: paused; }
.tc-spin-on .tc-seal__ring { animation-play-state: running; }
@keyframes tc-spin { to { transform: rotate(360deg); } }
.tc-seal__ripple { position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--accent); opacity: 0; pointer-events: none; }
.tc-pause { position: absolute; top: .25rem; inset-inline-end: .25rem; display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem;
  border-radius: 999px; border: 1px solid var(--line-2); background: var(--card); color: var(--ink); cursor: pointer; z-index: 2;
  transition: transform var(--d-micro) var(--e-out); }
.tc-pause:active { transform: scale(.94); }
.tc-pause__i--play, .tc-pause[aria-pressed="true"] .tc-pause__i--pause { display: none; }
.tc-pause[aria-pressed="true"] .tc-pause__i--play { display: block; }
.tc-pause__i--play path { fill: currentColor; }

/* Body: TOC + article */
.tc-body { padding-block: 4.5rem 5rem; background: var(--bg); }
.tc-layout { position: relative; }
@media (min-width: 1024px) {
  .tc-body { padding-block: 6rem 6.5rem; }
  .tc-layout { display: grid; grid-template-columns: 17rem minmax(0, 44rem); gap: clamp(3rem, 5vw, 5.5rem); justify-content: center; align-items: start; }
  .tc-toc { position: sticky; top: 96px; max-height: calc(100vh - 120px); overflow: auto; padding: .25rem .25rem 1rem; }
}
.tc-toc__head { display: flex; align-items: center; gap: .65rem; }
.tc-toc__title { margin: 0; color: var(--ink); font-size: .76rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.tc-toc__pct { -webkit-margin-start: auto; margin-inline-start: auto; color: var(--muted); font-size: .8rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.tc-ring { transform: rotate(-90deg); }
.tc[dir="rtl"] .tc-ring { transform: rotate(-90deg) scaleY(-1); }
.tc-ring__track { stroke: var(--line); stroke-width: 3; }
.tc-ring__val { stroke: var(--accent); stroke-width: 3; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 260ms var(--e-out); }
.tc-toc__close { display: none; }
.tc-toc__rail { position: relative; margin-top: 1rem; -webkit-border-start: 1px solid var(--line); border-inline-start: 1px solid var(--line); }
.tc-toc__ind { position: absolute; top: 0; inset-inline-start: -2px; width: 3px; height: 100px; border-radius: 3px; background: var(--accent);
  transform-origin: 50% 0; opacity: 0; pointer-events: none; }
.tc-toc__ind.is-on { opacity: 1; }
.tc-toc__list { margin: 0; padding: 0; list-style: none; }
.tc-toc__a { display: grid; grid-template-columns: 1.7rem 1fr; gap: .35rem; padding: .55rem .6rem .7rem; -webkit-padding-start: 1rem; padding-inline-start: 1rem;
  color: var(--muted); font-size: .9rem; line-height: 1.35; text-decoration: none; border-radius: 0 .55rem .55rem 0; }
.tc[dir="rtl"] .tc-toc__a { border-radius: .55rem 0 0 .55rem; }
.tc-toc__n { color: var(--muted); font-size: .75rem; font-weight: 700; font-variant-numeric: tabular-nums; padding-top: .14em; }
.tc-toc__a[aria-current="true"] { color: var(--ink); font-weight: 650; }
.tc-toc__a[aria-current="true"] .tc-toc__n { color: var(--link); }
@media (hover: hover) { .tc-toc__a:hover { color: var(--ink); background: var(--soft); } }
.tc-toc__p { grid-column: 2; height: 2px; margin-top: .45rem; border-radius: 2px; background: var(--line); overflow: hidden; }
.tc-toc__f { display: block; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: var(--start) center; }
.tc:not(.tc-js) .tc-toc__p { display: none; }
.tc-mbar, .tc-backdrop { display: none; }

@media (max-width: 1023.98px) {
  .tc-toc { margin-bottom: 3rem; padding: 1.1rem 1rem; background: var(--soft); border: 1px solid var(--line); border-radius: 1.1rem; }
  .tc-js .tc-mbar { display: block; position: sticky; top: var(--nav); z-index: 30; margin: -2.5rem calc(-1 * var(--gut)) 2.5rem;
    padding: .55rem var(--gut); background: var(--bg); border-bottom: 1px solid var(--line); }
  .tc-mbar__btn { display: flex; align-items: center; gap: .7rem; width: 100%; padding: .45rem .25rem; border: 0; background: none;
    color: var(--ink); font: inherit; font-size: .95rem; font-weight: 650; text-align: start; cursor: pointer; }
  .tc-mbar__n { display: inline-grid; place-items: center; min-width: 2rem; height: 2rem; padding-inline: .3rem; border-radius: .55rem;
    background: var(--tint); color: var(--link); font-size: .8rem; font-weight: 750; font-variant-numeric: tabular-nums; }
  .tc-mbar__t { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .tc-mbar__chev { color: var(--muted); transition: transform var(--d-ui) var(--e-settle); }
  .tc-mbar__btn[aria-expanded="true"] .tc-mbar__chev { transform: rotate(180deg); }
  .tc-mbar__bar { position: absolute; inset-inline: 0; bottom: -1px; height: 2px; overflow: hidden; }
  .tc-mbar__bar span { display: block; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: var(--start) center; }
  .tc-js .tc-backdrop { display: block; position: fixed; inset: var(--nav) 0 0; z-index: 55; background: rgba(15,23,42,.35); opacity: 0;
    transition: opacity var(--d-ui) var(--e-out); }
  .tc-js .tc-backdrop.is-open { opacity: 1; }
  .tc-js .tc-toc { position: fixed; top: var(--nav); inset-inline: 0; z-index: 60; margin: 0; max-height: calc(100dvh - var(--nav) - 1.5rem); overflow: auto;
    padding: 1rem var(--gut) 1.25rem; background: var(--card); border: 0; border-bottom: 1px solid var(--line); border-radius: 0 0 1.1rem 1.1rem;
    box-shadow: var(--lift); visibility: hidden; -webkit-clip-path: inset(0 0 100% 0); clip-path: inset(0 0 100% 0); transform: translateY(-12px);
    transition: transform 320ms var(--e-in), visibility 0s linear 320ms, -webkit-clip-path 320ms var(--e-in);
    transition: clip-path 320ms var(--e-in), transform 320ms var(--e-in), visibility 0s linear 320ms;
    transition: clip-path 320ms var(--e-in), transform 320ms var(--e-in), visibility 0s linear 320ms, -webkit-clip-path 320ms var(--e-in); }
  .tc-js .tc-toc.is-open { visibility: visible; -webkit-clip-path: inset(0 0 -40px 0); clip-path: inset(0 0 -40px 0); transform: none;
    transition: transform 620ms var(--e-settle), visibility 0s, -webkit-clip-path 560ms var(--e-out);
    transition: clip-path 560ms var(--e-out), transform 620ms var(--e-settle), visibility 0s;
    transition: clip-path 560ms var(--e-out), transform 620ms var(--e-settle), visibility 0s, -webkit-clip-path 560ms var(--e-out); }
  .tc-js .tc-toc__close { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; -webkit-margin-start: .25rem; margin-inline-start: .25rem; border: 1px solid var(--line);
    border-radius: 999px; background: var(--card); color: var(--ink); cursor: pointer; }
  .tc-js .tc-toc__pct { -webkit-margin-start: auto; margin-inline-start: auto; }
}

/* Sections */
.tc-article { min-width: 0; }
.tc-sec { position: relative; padding-block: 3.25rem; border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.tc-sec:first-child { border-top: 0; padding-top: 0; }
@media (max-width: 1023.98px) { .tc-sec { scroll-margin-top: 140px; } }
.tc-sec::before { content: ""; position: absolute; inset-inline-start: -1.5rem; top: 3.25rem; bottom: 3.25rem; width: 2px; border-radius: 2px;
  background: var(--accent); transform: scaleY(0); transform-origin: 50% 0; transition: transform var(--d-reveal) var(--e-settle); }
.tc-sec:first-child::before { top: 0; }
.tc-sec.is-active::before { transform: scaleY(1); }
@media (max-width: 639.98px) { .tc-sec::before { inset-inline-start: -.7rem; } }
.tc-sec__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.1rem; }
.tc-sec__head .tc-h2 { margin: .35rem 0 0; }
.tc-badge { color: var(--accent); font-size: 2.6rem; font-weight: 800; letter-spacing: -.04em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.tc-badge--sign { font-weight: 700; }
.tc-glyph { flex: none; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--tile-bg); color: var(--glyph); }
.tc-glyph--sign { font-size: 2rem; font-weight: 800; line-height: 1; }
.tc-g { overflow: visible; }
.tc-g .f, .tc-star { fill: currentColor; stroke: none; }
.tc-g .f { opacity: .4; }
.tc-g-bgfill { fill: var(--tile-bg); }
.tc-sec__body p { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.7; }
.tc-sec__body p:last-child { margin-bottom: 0; }
.tc-list { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.tc-list li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .75rem; align-items: start; font-size: 1.0625rem; line-height: 1.65; }
.tc-tick { width: 1.4rem; height: 1.4rem; margin-top: .2em; padding: .1rem; border-radius: 50%; background: var(--tint); color: var(--link); stroke-width: 2.2; }

/* Third-party tiles */
.tc-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: .75rem; margin: 1.75rem 0 0; padding: 0; list-style: none; perspective: 1100px; }
.tc-tile { transform-origin: 50% 0; }
.tc-tile__in { position: relative; display: flex; gap: .8rem; align-items: flex-start; height: 100%; padding: .95rem 1rem; background: var(--card);
  border: 1px solid var(--line); border-radius: 1.1rem; box-shadow: var(--shadow); transition: transform var(--d-ui) var(--e-settle); }
.tc-tile__in::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; box-shadow: var(--lift); opacity: 0; pointer-events: none;
  transition: opacity var(--d-ui) var(--e-out); }
.tc-tile:has(a:focus-visible) .tc-tile__in { outline: 2px solid #356dff; outline-offset: 3px; }
.tc-logo { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 14px;
  background: #fff; border: 1px solid #e6ebf4; }
.tc-logo img { width: 58%; height: auto; }
.tc-logo--pair img { width: 44%; }
.tc-logo--pair img + img { -webkit-margin-start: -2px; margin-inline-start: -2px; }
.tc-tile__text { display: grid; gap: .2rem; min-width: 0; }
.tc-tile__name { color: var(--ink); font-size: .95rem; font-weight: 700; line-height: 1.3; }
.tc-tile__link { color: var(--link); font-size: .875rem; font-weight: 600; line-height: 1.4; text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.tc-tile__link::after { content: ""; position: absolute; inset: 0; border-radius: 1.1rem; }
.tc-tile__note { color: var(--body); font-size: .875rem; line-height: 1.45; }
.tc-ext { display: inline-grid; overflow: hidden; vertical-align: -.1em; -webkit-margin-start: .3rem; margin-inline-start: .3rem; }
.tc[dir="rtl"] .tc-ext svg { transform: scaleX(-1); }
@media (hover: hover) {
  .tc-tile:hover .tc-tile__in { transform: translateY(-3px); }
  .tc-tile:hover .tc-tile__in::before { opacity: 1; }
  .tc-tile:hover .tc-tile__link { color: var(--link-hover); }
  .tc-tile:hover .tc-ext svg { animation: tc-shoot 620ms var(--e-in-out); }
  .tc[dir="rtl"] .tc-tile:hover .tc-ext svg { animation-name: tc-shoot-rtl; }
}
@keyframes tc-shoot { 0% { transform: none; } 45% { transform: translate(110%, -110%); } 46% { transform: translate(-110%, 110%); } 100% { transform: none; } }
@keyframes tc-shoot-rtl { 0% { transform: scaleX(-1); } 45% { transform: translate(-110%, -110%) scaleX(-1); } 46% { transform: translate(110%, 110%) scaleX(-1); } 100% { transform: scaleX(-1); } }

/* Closing */
.tc-close { padding-block: 5.5rem 4rem; background: var(--soft); border-top: 1px solid var(--line); }
.tc-card { display: grid; gap: 2rem; max-width: 62rem; margin-inline: auto; padding: 1.6rem; background: var(--card); border: 1px solid var(--line);
  border-radius: 1.4rem; box-shadow: var(--shadow); }
@media (min-width: 768px) { .tc-card { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem; padding: 2.5rem; } }
.tc-h2--close { font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.25rem); }
.tc-card__body { margin: 0 0 1.5rem; font-size: 1.0625rem; line-height: 1.65; max-width: 30rem; }
.tc-mail { overflow-wrap: anywhere; }
.tc-card__h { margin: .2rem 0 .6rem; color: var(--ink); font-size: .76rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.tc-rel { margin: 0; padding: 0; list-style: none; }
.tc-rel a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem .15rem; border-bottom: 1px solid var(--line);
  color: var(--ink); font-weight: 650; text-decoration: none; }
.tc-rel li:last-child a { border-bottom: 0; }
.tc-en { -webkit-margin-start: .35rem; margin-inline-start: .35rem; padding: .1rem .45rem; border-radius: 999px; background: var(--tint); color: var(--link); font-size: .7rem; font-weight: 700; vertical-align: .1em; }
.tc-arr { display: inline-grid; color: var(--link); transition: transform var(--d-ui) var(--e-settle); }
.tc[dir="rtl"] .tc-arr svg { transform: scaleX(-1); }
@media (hover: hover) {
  .tc-rel a:hover { color: var(--link); }
  .tc-rel a:hover .tc-arr { transform: translateX(calc(4px * var(--dir))); }
}
.tc-entity { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem .55rem; max-width: 62rem; margin: 2rem auto 0; color: var(--muted);
  font-size: .85rem; line-height: 1.5; text-align: center; }
.tc-entity__l { width: 100%; color: var(--ink); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.tc-dot { color: var(--faint); }
.tc-top-wrap { margin: 2.25rem 0 0; text-align: center; }
.tc-top { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1.1rem; border-radius: 999px; border: 1px solid var(--line-2);
  color: var(--ink); font-size: .9rem; font-weight: 650; text-decoration: none; transition: transform var(--d-micro) var(--e-out); }
.tc-top:active { transform: scale(.97); }
.tc-top__ico { display: inline-grid; overflow: hidden; }
@media (hover: hover) {
  .tc-top:hover { background: var(--card); }
  .tc-top:hover .tc-top__ico svg { animation: tc-loop-up 640ms var(--e-in-out); }
}
@keyframes tc-loop-up { 0% { transform: none; } 45% { transform: translateY(-110%); } 46% { transform: translateY(110%); } 100% { transform: none; } }

/* ---------- Motion: armed states (only when JS will animate) ---------- */
/* Hero copy */
.is-armed .tc-hero .tc-kicker { opacity: 0; transform: translateX(calc(-10px * var(--dir))); }
.is-armed .tc-hero .tc-kicker::before { transform: scaleX(0); }
.is-armed .tc-hero.is-in .tc-kicker { opacity: 1; transform: none; transition: opacity 500ms var(--e-out), transform 760ms var(--e-out); }
.is-armed .tc-hero.is-in .tc-kicker::before { transform: none; transition: transform 700ms var(--e-out) 120ms; }
.is-armed .tc-h1 .w > span, .is-armed .tc-h2 .w > span { transform: translateY(108%); }
.is-armed .is-in .tc-h1 .w > span, .is-armed .is-in .tc-h2 .w > span { transform: none;
  transition: transform 900ms var(--e-out) calc(var(--wd, 80ms) + var(--wi) * 38ms); }
.is-armed .tc-h1 em::after { transform: scaleX(0); }
.is-armed .is-in .tc-h1 em::after { transform: none; transition: transform 800ms var(--e-in-out) 820ms; }
.is-armed .tc-rise { opacity: 0; transform: translateY(14px); }
.is-armed .is-in .tc-rise { opacity: 1; transform: none;
  transition: opacity 600ms var(--e-out) calc(var(--rd0, 260ms) + var(--r, 0) * 90ms), transform 900ms var(--e-out) calc(var(--rd0, 260ms) + var(--r, 0) * 90ms); }
.tc-hero { --rd0: 420ms; }
.is-armed .tc-pill { opacity: 0; transform: translateY(8px) scale(.94); }
.is-armed .is-in .tc-pill { opacity: 1; transform: none;
  transition: opacity 400ms var(--e-out) calc(760ms + var(--p) * 80ms), transform 700ms var(--e-pop) calc(760ms + var(--p) * 80ms); }

/* Stage b0 sheet, b1 ink */
.is-armed .tc-sheet { opacity: 0; transform: translateY(24px) var(--tilt); }
.is-armed .tc-hero.is-in .tc-sheet { opacity: 1; transform: var(--tilt); transition: opacity 300ms var(--e-out) 100ms, transform 700ms var(--e-settle) 100ms; }
.is-armed .tc-paper--back { opacity: 0; transform: translate(0, 18px) rotate(0deg); }
.is-armed .tc-hero.is-in .tc-paper--back { opacity: 1; transform: translate(calc(16px * var(--dir)), 8px) rotate(calc(2.5deg * var(--dir)));
  transition: opacity 300ms var(--e-out) 260ms, transform 900ms var(--e-settle) 260ms; }
.is-armed .tc-bar { transform: scaleX(0); }
.is-armed .tc-hero.is-in .tc-bar { transform: none; transition: transform 640ms var(--e-out) calc(500ms + var(--i) * 70ms); }

/* Odometer digits (built by terms_page.js only when armed) */
.tc-odo-d { display: inline-block; height: 1.15em; line-height: 1.15; overflow: hidden; vertical-align: top; }
.tc-odo-c { display: flex; flex-direction: column; transform: translateY(calc(var(--n) * -1.15em)); }
.tc-odo-c > span { display: block; height: 1.15em; }
.is-armed [data-tc-odo] .tc-odo-c { transform: translateY(0); }
.is-armed .is-in [data-tc-odo] .tc-odo-c { transform: translateY(calc(var(--n) * -1.15em));
  transition: transform 1000ms var(--e-settle) calc(var(--od, 0ms) + var(--oi, 0) * 90ms); }

/* b2 sign: ink and nib run in terms_page.js (WAAPI, synced) */
.is-armed .tc-sig__ink, .is-armed .tc-sig__swash { stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-armed .tc-nib { opacity: 0; offset-distance: 0%; }

/* b3 seal: drop with a spring, squash on landing, one ink ring */
.is-armed .tc-seal__drop { opacity: 0; transform: translateY(-40px) scale(1.25); }
.is-armed .tc-hero.is-in .tc-seal__drop { animation: tc-drop 760ms var(--e-pop) 3600ms both; }
.is-armed .tc-hero.is-in .tc-seal__squash { animation: tc-squash 380ms var(--e-out) 3980ms both; }
.is-armed .tc-hero.is-in .tc-seal__ripple { animation: tc-ripple 900ms var(--e-out) 3980ms forwards; }
@keyframes tc-drop { 0% { opacity: 0; transform: translateY(-40px) scale(1.25); } 18% { opacity: 1; } 100% { opacity: 1; transform: none; } }
@keyframes tc-squash { 0% { transform: none; } 40% { transform: scale(1.03, .94); } 100% { transform: none; } }
@keyframes tc-ripple { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 0; transform: scale(1.35); } }

/* Sections */
.tc-sec { --rd0: 300ms; }
.is-armed .tc-glyph { opacity: 0; transform: scale(.86); }
.is-armed .is-in .tc-glyph { opacity: 1; transform: none; transition: opacity 400ms var(--e-out) 80ms, transform 700ms var(--e-pop) 80ms; }
.is-armed .tc-g .d { stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-armed .is-in .tc-g .d { stroke-dashoffset: 0; transition: stroke-dashoffset 1100ms var(--e-in-out) calc(220ms + var(--k, 0) * 150ms); }
.is-armed .tc-g .f { opacity: 0; }
.is-armed .is-in .tc-g .f { opacity: .4; transition: opacity 500ms var(--e-out) 1000ms; }
.tc-star { transform-box: fill-box; transform-origin: center; }
.is-armed .tc-star { opacity: 0; transform: scale(.2); }
.is-armed .is-in .tc-star { opacity: 1; transform: none;
  transition: opacity 300ms var(--e-out) calc(700ms + var(--s) * 70ms), transform 600ms var(--e-pop) calc(700ms + var(--s) * 70ms); }
.is-armed .tc-tick path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-armed .tc-tick { opacity: 0; transform: scale(.6); }
.is-armed .tc-list li > span { opacity: 0; transform: translateY(10px); }
.is-armed .is-in .tc-tick { opacity: 1; transform: none; transition: opacity 300ms var(--e-out) calc(380ms + var(--li) * 150ms), transform 600ms var(--e-pop) calc(380ms + var(--li) * 150ms); }
.is-armed .is-in .tc-tick path { stroke-dashoffset: 0; transition: stroke-dashoffset 500ms var(--e-in-out) calc(520ms + var(--li) * 150ms); }
.is-armed .is-in .tc-list li > span { opacity: 1; transform: none;
  transition: opacity 500ms var(--e-out) calc(420ms + var(--li) * 150ms), transform 800ms var(--e-out) calc(420ms + var(--li) * 150ms); }

/* Tiles: radial flip (--rd set by terms_page.js from each tile's distance) */
.is-armed .tc-tile { opacity: 0; transform: rotateX(70deg) translateY(10px); }
.is-armed .is-in .tc-tile { opacity: 1; transform: none;
  transition: opacity 360ms var(--e-out) var(--rd, 200ms), transform var(--d-reveal) var(--e-settle) var(--rd, 200ms); }

/* Closing */
.is-armed .tc-card { opacity: 0; transform: translateY(28px) scale(.985); }
.is-armed .tc-close.is-in .tc-card { opacity: 1; transform: none; transition: opacity 500ms var(--e-out), transform 900ms var(--e-settle); }
.is-armed .tc-close .tc-kicker::before { transform: scaleX(0); }
.is-armed .tc-close.is-in .tc-kicker::before { transform: none; transition: transform 700ms var(--e-out) 300ms; }
.tc-close { --rd0: 420ms; }
.is-armed .tc-entity, .is-armed .tc-top-wrap { opacity: 0; transform: translateY(10px); }
.is-armed .tc-close.is-in .tc-entity, .is-armed .tc-close.is-in .tc-top-wrap { opacity: 1; transform: none;
  transition: opacity 500ms var(--e-out) 600ms, transform 800ms var(--e-out) 600ms; }

/* ---------- Glyph hover loops (pointer only, once per hover) ---------- */
.tc-g-key { transform-box: view-box; transform-origin: 41px 36px; }
.tc-g-coin, .tc-g-node, .tc-g-shield { transform-box: fill-box; transform-origin: center; }
.tc-g-shackle { transform-box: view-box; transform-origin: 24px 23px; }
.tc-g-tag { transform-box: view-box; transform-origin: 45px 19px; }
.tc-g-glass { transform-box: view-box; transform-origin: 24px 24px; }
.tc-g-top { transform-box: view-box; transform-origin: 24px 19px; }
.tc-g-bot { transform-box: view-box; transform-origin: 24px 40px; }
.tc-g-bell { transform-box: view-box; transform-origin: 24px 5px; }
.tc-g-beam { transform-box: view-box; transform-origin: 24px 13px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .tc-sec:hover .tc-g-key { animation: tc-key 900ms var(--e-in-out); }
  .tc-sec:hover .tc-g-shield { animation: tc-pop 700ms var(--e-pop); }
  .tc-sec:hover .tc-g-redraw { stroke-dasharray: 1; animation: tc-redraw 700ms var(--e-out) calc(var(--k, 0) * 90ms) both; }
  .tc-sec:hover .tc-g-node { animation: tc-pop 600ms var(--e-pop) calc(var(--k, 0) * 120ms); }
  .tc-sec:hover .tc-g-coin { animation: tc-flip 900ms var(--e-in-out); }
  .tc-sec:hover .tc-g-shackle { animation: tc-shackle 800ms var(--e-settle); }
  .tc-sec:hover .tc-star { animation: tc-twinkle 640ms var(--e-out) calc(var(--s) * 45ms); }
  .tc-sec:hover .tc-g-tag { animation: tc-wiggle 700ms var(--e-in-out); }
  .tc-sec:hover .tc-g-glass { animation: tc-glass 1500ms var(--e-in-out); }
  .tc-sec:hover .tc-g-top { animation: tc-drain 1500ms linear; }
  .tc-sec:hover .tc-g-bot { animation: tc-fill 1500ms linear; }
  .tc-sec:hover .tc-g-bell { animation: tc-bell 900ms var(--e-out); }
  .tc-sec:hover .tc-g-beam { animation: tc-beam 1100ms var(--e-in-out); }
}
@keyframes tc-key { 0% { transform: none; } 40% { transform: scaleY(-1); } 70% { transform: scaleY(-1); } 100% { transform: none; } }
@keyframes tc-pop { 0% { transform: none; } 40% { transform: scale(1.14); } 100% { transform: none; } }
@keyframes tc-redraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes tc-flip { 0% { transform: none; } 25% { transform: translateY(-4px) scaleX(0); } 50% { transform: translateY(-6px) scaleX(-1); }
  75% { transform: translateY(-4px) scaleX(0); } 100% { transform: none; } }
@keyframes tc-shackle { 0% { transform: none; } 35% { transform: translateY(-3.5px); } 100% { transform: none; } }
@keyframes tc-twinkle { 0% { opacity: 1; transform: none; } 30% { opacity: .1; transform: scale(.3); } 100% { opacity: 1; transform: none; } }
@keyframes tc-wiggle { 0%, 100% { transform: none; } 25% { transform: rotate(-10deg); } 55% { transform: rotate(7deg); } 80% { transform: rotate(-3deg); } }
@keyframes tc-beam { 0%, 100% { transform: none; } 30% { transform: rotate(-7deg); } 62% { transform: rotate(4deg); } 84% { transform: rotate(-1.5deg); } }
@keyframes tc-glass { 0%, 55% { transform: none; } 90% { transform: rotate(180deg); } 100% { transform: rotate(180deg); } }
@keyframes tc-drain { 0% { transform: none; } 55% { transform: scaleY(0); } 100% { transform: scaleY(0); } }
@keyframes tc-fill { 0% { transform: none; } 55% { transform: scaleY(1.7); } 100% { transform: scaleY(1.7); } }
@keyframes tc-bell { 0% { transform: none; } 15% { transform: rotate(14deg); } 30% { transform: rotate(-12deg); } 45% { transform: rotate(8deg); }
  60% { transform: rotate(-5deg); } 75% { transform: rotate(2deg); } 100% { transform: none; } }

/* Reduced motion: final frames, nothing loops, nothing slides */
@media (prefers-reduced-motion: reduce) {
  .tc *, .tc *::before, .tc *::after { animation: none !important; transition-duration: 0s !important; transition-delay: 0s !important; }
}

/* Print: plain black on white, every section, URLs after third-party links */
@media print {
  nav, footer, iframe, .tc-stage, .tc-toc, .tc-mbar, .tc-backdrop, .tc-ctas, .tc-top-wrap, .tc-glyph, .tc-badge, .tc-tick, .tc-logo { display: none !important; }
  body { background: #fff !important; }
  .tc { --ink: #000; --body: #000; --muted: #333; --line: #bbb; --bg: #fff; --soft: #fff; --card: #fff; --accent: #000; --link: #000; color: #000; background: #fff; }
  .tc *, .tc *::before, .tc *::after { animation: none !important; transition: none !important; }
  .tc .w > span, .tc .tc-rise, .tc .tc-pill, .tc .tc-tile, .tc .tc-card, .tc .tc-kicker, .tc .tc-list li > span, .tc .tc-entity { opacity: 1 !important; transform: none !important; }
  .tc-hero { padding: 0 0 1rem; background: #fff; border: 0; }
  .tc-hero__grid, .tc-layout { display: block; }
  .tc-h1 { font-size: 24pt; }
  .tc-h1 em { color: #000; }
  .tc-h2 { font-size: 15pt; -moz-column-break-after: avoid; break-after: avoid; page-break-after: avoid; }
  .tc-sec { padding-block: .8rem; -moz-column-break-inside: auto; break-inside: auto; }
  .tc-sec::before { display: none; }
  .tc-sec__head { display: block; }
  .tc-list li { display: list-item; list-style: disc; -webkit-margin-start: 1.2rem; margin-inline-start: 1.2rem; }
  .tc-tiles { display: block; }
  .tc-tile__in { display: block; padding: .15rem 0; border: 0; box-shadow: none; }
  .tc-tile__name::after { content: ": "; }
  .tc-tile__text { display: inline; }
  .tc-tile__link::after { content: " (" attr(href) ")"; position: static; font-weight: 400; }
  .tc-ext { display: none; }
  .tc-close { background: #fff; padding: 1rem 0; border: 0; }
  .tc-card { box-shadow: none; border: 1px solid #bbb; }
  .tc-pill { border: 0; padding: 0; }
}
