/* MIKATA — Shared styles for sub-pages */

html { scroll-behavior: smooth; }
body {
  background: #0A0A0A;
  color: #F5F5F0;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Cursor */
.cursor-dot {
  position: fixed; top:0; left:0; width: 8px; height: 8px;
  background: #FF3B2F; border-radius: 50%;
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  transition: transform 0.15s ease, opacity 0.2s ease;
  mix-blend-mode: difference;
}
@media (max-width: 768px) { .cursor-dot { display: none; } }

/* Reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1.1s cubic-bezier(.2,.7,.2,1), transform 1.1s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 120ms; }
.reveal-delay-2 { transition-delay: 240ms; }
.reveal-delay-3 { transition-delay: 360ms; }
.reveal-delay-4 { transition-delay: 480ms; }

/* Display type */
.h-display { font-family: '"Zen Kaku Gothic New"', sans-serif; font-weight: 700; line-height: 1.1; letter-spacing: -0.035em; }
.h-display-en { font-family: '"Space Grotesk"', sans-serif; font-weight: 500; letter-spacing: -0.025em; line-height: 1.05; }

/* Section index label */
.idx { font-family: '"Space Grotesk"', sans-serif; font-weight: 500; letter-spacing: 0.3em; font-size: 0.72rem; color: #8A8A85; text-transform: uppercase; }
.idx::before { content: ""; display: inline-block; width: 32px; height: 1px; background: #FF3B2F; vertical-align: middle; margin-right: 14px; margin-bottom: 3px; }

/* Link underline */
.link-hover { position: relative; }
.link-hover::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 0.5s cubic-bezier(.2,.7,.2,1); }
.link-hover:hover::after { transform: scaleX(1); transform-origin: left; }

/* CTA */
.cta {
  display: inline-flex; align-items: center; gap: 1rem;
  padding: 1.4rem 2.6rem;
  border: 1px solid rgba(245,245,240,0.2);
  font-family: '"Space Grotesk"', sans-serif;
  font-weight: 500; letter-spacing: 0.18em; font-size: 0.85rem;
  text-transform: uppercase;
  position: relative; overflow: hidden;
  transition: color 0.4s ease, border-color 0.4s ease;
}
.cta::before {
  content: ""; position: absolute; inset: 0;
  background: #FF3B2F; transform: translateY(101%);
  transition: transform 0.5s cubic-bezier(.7,.0,.2,1); z-index: -1;
}
.cta:hover { color: #0A0A0A; border-color: #FF3B2F; }
.cta:hover::before { transform: translateY(0); }
.cta .arr { transition: transform 0.4s ease; }
.cta:hover .arr { transform: translateX(6px); }

/* Nav backdrop */
.nav-scrolled { background: rgba(10,10,10,0.72); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(245,245,240,0.08); }

/* Mobile menu */
.mobile-menu { transform: translateY(-100%); transition: transform 0.6s cubic-bezier(.7,0,.2,1); }
.mobile-menu.open { transform: translateY(0); }

/* Selection & scrollbar */
::selection { background: #FF3B2F; color: #0A0A0A; }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0A0A0A; }
::-webkit-scrollbar-thumb { background: #1A1A1A; }
::-webkit-scrollbar-thumb:hover { background: #FF3B2F; }
