/* Vexlings — site styles. Layout lives inline in index.html (mirrors the Claude Design canvas);
   this file holds fonts, page basics, interactive states, motion and print. */

@font-face {
  font-family: 'Grenze Gotisch';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/grenze-gotisch-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Grenze Gotisch';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/grenze-gotisch-latin-800-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/courier-prime-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/courier-prime-latin-700-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'La Belle Aurore';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/la-belle-aurore-latin-400-normal.woff2') format('woff2');
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: #0e1c2b; color: #f3ead8; overflow-x: hidden; }
img { max-width: 100%; }
[hidden] { display: none !important; }

a { color: #ff9a3c; }
a:hover { color: #ffbb78; }
button, select, input { -webkit-tap-highlight-color: transparent; }
button:hover, a[style*="background"]:hover { filter: brightness(1.06); }

.vx :focus-visible { outline: 3px solid #ff9a3c; outline-offset: 3px; }
.vx .pp :focus-visible { outline-color: #0e1c2b; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Works without JavaScript: interactive parts appear only once the script runs. */
html:not(.js) .js-only { display: none !important; }
html.js .no-js-only { display: none !important; }

/* Decoder: the redaction bar */
.dec-bar {
  display: none; position: absolute; inset: 0; align-items: center; padding: 0 12px; overflow: hidden;
  background: #05090f; color: #f3ead8; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  white-space: nowrap; pointer-events: none; transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform 460ms cubic-bezier(0.7, 0, 0.2, 1);
}
.js .dec-bar { display: flex; }
.js .is-redacted .dec-bar { transform: scaleX(1); }
.dec-lift {
  display: none; position: absolute; inset: 0; width: 100%; height: 100%; padding: 0;
  background: transparent; border: 0; cursor: pointer;
}
.js .is-redacted .dec-lift { display: block; }
.dec-save .ico-done { display: none; }
.dec-save.is-saved .ico-done { display: inline; }
.dec-save.is-saved .ico-save { display: none; }

/* Quiz */
.quiz-opt:hover { background: rgba(14, 28, 43, 0.06) !important; }
.post-chip.is-assigned { background: #ff9a3c !important; border-color: #ff9a3c !important; color: #0e1c2b !important; }

/* Stamps that land */
.vx-stamp { opacity: 0; transform: rotate(var(--rot, -8deg)) scale(2.3); transition: transform 280ms cubic-bezier(0.2, 1.5, 0.4, 1), opacity 120ms linear; }
.vx-stamp.is-in { opacity: 1; transform: rotate(var(--rot, -8deg)) scale(1); }

/* Ledger lines entered one at a time */
.led-line { opacity: 0; transition: opacity 300ms ease; }
.led-line.is-in { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .vx *, .vx *::before, .vx *::after { transition: none !important; animation: none !important; }
}

/* Print: the Transfer of Custody button prints only the card. Printing from the browser menu prints the page. */
#print-root { display: none; }
@media print {
  html.print-card body { background: #fff !important; }
  html.print-card body > :not(#print-root) { display: none !important; }
  html.print-card #print-root { display: block !important; padding: 0; }
  html.print-card #print-root > * { width: 640px !important; max-width: 100% !important; transform: none !important; box-shadow: none !important; outline: none !important; margin: 0 auto !important; }
  html:not(.print-card) .js-only, html:not(.print-card) button { display: none !important; }
}
