@font-face {
  font-family: 'Google Sans Code';
  src: url('./fonts/google-sans-code.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Libre Barcode 128';
  src: url('./fonts/libre-barcode-128.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

:root { color-scheme: light; background: #ed78af; }
html, body { margin: 0; width: 100%; min-height: 100%; background: #ed78af; }
body { min-height: 100vh; min-height: 100dvh; overflow: hidden; touch-action: pinch-zoom; }
#app, .cursor-scene { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.cursor-scene { z-index: 0; }
main { position: relative; z-index: 1; }
.barcode {
  position: fixed;
  top: max(45px, env(safe-area-inset-top));
  left: max(55.5px, env(safe-area-inset-left));
  min-height: 44px;
  color: #fff;
  text-decoration: none;
  font: 400 30px/33px 'Libre Barcode 128', monospace;
}
.barcode span { display: block; }
.links {
  position: fixed;
  top: calc(50% - 66px);
  left: calc(50% - 47.25px);
  width: 123px;
  font: 400 18px/25.5px 'Google Sans Code', monospace;
}
.links a { display: block; width: max-content; min-width: 94.5px; height: 42px; color: #fff; text-decoration: none; }
.links span { display: inline-block; white-space: nowrap; }
.links a:is(:hover, :focus-visible) span { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:focus-visible { outline: 1px solid #fff; outline-offset: 4px; }
/* The shader draws these same glyphs using the fluid's exact white/black mask.
   Keep real text and links in the DOM for keyboard and screen-reader access. */
.fluid-ready [data-fluid-text] { color: transparent; }
.cursor-dot { position: fixed; width: 8px; height: 8px; border-radius: 50%; background: #fff; mix-blend-mode: difference; transform: translate(-50%, -50%); pointer-events: none; z-index: 2; }
@media (pointer: fine) { .fluid-ready, .fluid-ready body, .fluid-ready a { cursor: none; } }
@media (pointer: coarse) {
  .links a { height: 44px; }
}
/* Safe-area padding keeps the barcode clear of phone notches in landscape. */
@media (max-width: 480px) {
  .barcode { top: max(24px, env(safe-area-inset-top)); left: max(24px, env(safe-area-inset-left)); }
}
.cursor-fallback, .cursor-fallback body, .cursor-fallback a { cursor: auto; }
