/* TMSNDSGN — extends Bugatti tokens */
@import url('./../styles/tokens.css');

:root {
  --accent: #ffffff;
  --monumental-cap: 160px;
  --parallax: 0.6;
  --grid-line: rgba(255,255,255,0.06);
  --grid-line-strong: rgba(255,255,255,0.12);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #000; color: #fff; overflow-x: hidden; }
body { font-family: 'Inter', system-ui, sans-serif; }

/* scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb { background: #222; }
::-webkit-scrollbar-thumb:hover { background: #444; }

/* Utility */
.mono { font-family: 'Space Mono', ui-monospace, monospace; text-transform: uppercase; letter-spacing: 1.4px; }
.display { font-family: 'Unbounded', sans-serif; text-transform: uppercase; font-weight: 400; }

/* hairlines */
.hairline { border: 1px solid #999; }
.hairline-t { border-top: 1px solid rgba(255,255,255,0.12); }
.hairline-b { border-bottom: 1px solid rgba(255,255,255,0.12); }

/* Kinetic marquee */
@keyframes marquee-l { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes marquee-r { from { transform: translateX(-50%); } to { transform: translateX(0); } }
@keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: 0.2; } }
@keyframes scan { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@keyframes flicker { 0%, 100% { opacity: 1; } 50% { opacity: 0.85; } }
@keyframes drift { 0% { transform: translate(0,0); } 100% { transform: translate(-20px, -20px); } }
@keyframes blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes typeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.pulse-dot { animation: pulse-dot 2s ease-in-out infinite; }
.blink { animation: blink 1s step-end infinite; }

/* grid background layer */
.grid-bg {
  background-image:
    linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: 80px 80px;
}

/* Hover link underline slide */
.link-slide { position: relative; display: inline-block; }
.link-slide::after {
  content: ''; position: absolute; left: 0; bottom: -4px; height: 1px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform 400ms cubic-bezier(0.7,0,0.2,1);
}
.link-slide:hover::after { transform: scaleX(1); transform-origin: left; }

/* Redacted / dither placeholder */
.redacted {
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 4px),
    radial-gradient(ellipse at 30% 40%, rgba(120,130,150,0.15), transparent 60%),
    radial-gradient(ellipse at 70% 60%, rgba(80,90,110,0.12), transparent 55%),
    #050608;
}

/* Focus ring */
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 1px solid #fff; outline-offset: 2px;
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
