/* Scoped styles for Hajime Launchpad */
.hajime-launchpad {
  /* Match Tailwind tokens from src/index.css (HSL) */
  --background: 32 25% 12%;
  --foreground: 38 45% 92%;
  --muted-foreground: 38 20% 65%;
  --rum: 25 75% 50%;
  --accent: 15 60% 45%;
  --cream: 38 45% 92%;

  --bg: hsl(var(--background));
  --fg: hsl(var(--foreground));
  --fg-muted: hsl(var(--muted-foreground));
  --rum-color: hsl(var(--rum));
  --accent-color: hsl(var(--accent));

  --card: rgba(255, 255, 255, 0.04);
  color: var(--fg);
  background: var(--bg);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
}

/* Normalize inside the plugin to avoid theme overrides */
.hajime-launchpad, .hajime-launchpad * {
  box-sizing: border-box;
}
.hajime-launchpad h1,
.hajime-launchpad h2,
.hajime-launchpad p {
  margin: 0;
  color: inherit;
  font-family: inherit;
  line-height: inherit;
}

.hajime-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 1.25rem;
  background: linear-gradient(180deg, rgba(11,11,11,0.6) 0%, rgba(11,11,11,0.9) 100%), radial-gradient(1200px 500px at 50% -100px, rgba(183,124,81,0.25), transparent 60%);
}
@media (min-width: 768px) {
  .hajime-hero {
    min-height: 120vh;
  }
}

/* Prevent scrolling when shortcode is active */
body.hajime-no-scroll {
  overflow: hidden !important;
  height: 100vh !important;
}

/* Mobile font size adjustments to fit without scroll */
@media (max-width: 480px) {
  .hajime-heading {
    font-size: 42px !important;
  }
  .hajime-jp-title {
    font-size: 20px !important;
  }
  .hajime-product-name {
    font-size: 24px !important;
  }
  .hajime-product-jp {
    font-size: 16px !important;
  }
  .hajime-description-en {
    font-size: 16px !important;
  }
  .hajime-description-jp {
    font-size: 14px !important;
  }
}

/* Animations to match local Tailwind fade-in and fade-in-up */
@keyframes hajime-fade-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes hajime-fade-in-up {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}

.hajime-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  filter: brightness(0.4) blur(2px);
  z-index: 0;
  background-image: var(--hajime-hero-bg);
}

.hajime-container {
  width: 100%;
  max-width: 64rem;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  /* Strong vertical centering inside hero */
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 100vh !important;
}

.hajime-accent {
  margin-bottom: 1.5rem;
  animation: hajime-fade-in 0.8s ease-out 0s both;
  will-change: opacity;
  text-align: center !important;
}
.hajime-accent-text {
  color: var(--rum-color);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-size: 20px; /* Tailwind text-xl */
  margin: 0 0 0.5rem;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hajime-accent-text {
    font-size: 24px; /* Tailwind md:text-2xl */
  }
}
.hajime-accent-line {
  width: 6rem;
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(90deg, transparent, var(--rum-color), transparent);
}

.hajime-heading {
  font-family: "Playfair Display", Georgia, Cambria, "Times New Roman", Times, serif;
  font-weight: 700 !important; /* match Tailwind font-bold */
  font-size: clamp(36px, 10vw, 128px) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 0 0.75rem !important;
  color: var(--fg) !important;
  white-space: nowrap !important;
  animation: hajime-fade-in-up 1s ease-out 0.2s both;
  will-change: transform, opacity;
  text-align: center !important;
  display: block !important;
  width: max-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
/* Increase specificity to defeat aggressive theme rules */
.hajime-launchpad .hajime-heading {
  font-family: "Playfair Display", Georgia, Cambria, "Times New Roman", Times, serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-stretch: normal !important;
  font-synthesis-weight: none !important;
  font-kerning: normal !important;
  font-size: clamp(36px, 10vw, 128px) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--fg) !important;
  white-space: nowrap !important;
  animation: hajime-fade-in-up 1s ease-out 0.2s both;
  will-change: transform, opacity;
  text-align: center !important;
  display: block !important;
  width: max-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}

/* Hard centering wrapper to defeat theme layouts */
.hajime-heading-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hajime-heading {
    font-size: 96px !important; /* Tailwind md:text-8xl */
  }
  .hajime-launchpad .hajime-heading {
    font-size: 96px !important;
  }
}
@media (min-width: 1024px) {
  .hajime-heading {
    font-size: 128px !important; /* Tailwind lg:text-9xl */
  }
  .hajime-launchpad .hajime-heading {
    font-size: 128px !important;
  }
}

.hajime-jp-title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif;
  font-size: 24px; /* Tailwind text-2xl */
  color: hsl(var(--cream) / 0.9);
  opacity: 0.9;
  margin: 0 0 2rem;
  animation: hajime-fade-in-up 1s ease-out 0.4s both;
  will-change: transform, opacity;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hajime-jp-title {
    font-size: 30px; /* Tailwind md:text-3xl */
  }
}

.hajime-product {
  margin-bottom: 2.25rem;
  animation: hajime-fade-in-up 1s ease-out 0.6s both;
  will-change: transform, opacity;
  text-align: center;
}
.hajime-product-name {
  font-family: "Playfair Display", Georgia, Cambria, "Times New Roman", Times, serif !important;
  font-weight: 400 !important;
  font-size: clamp(24px, 6vw, 48px) !important;
  line-height: 1.2 !important;
  margin: 0 0 0.5rem !important;
  background-image: linear-gradient(90deg, var(--rum-color), var(--accent-color)) !important;
  background-size: 100% 100% !important;
  background-repeat: no-repeat !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important; /* Safari: ensure gradient text shows */
  white-space: nowrap !important;
  text-align: center !important;
  display: inline-block !important;
}
@media (min-width: 768px) {
  .hajime-product-name {
    font-size: 48px !important; /* Tailwind md:text-5xl */
  }
}
.hajime-product-jp {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif;
  font-size: 20px; /* Tailwind text-xl */
  color: var(--fg-muted);
  margin: 0;
}
@media (min-width: 768px) {
  .hajime-product-jp {
    font-size: 24px; /* Tailwind md:text-2xl */
  }
}

.hajime-description {
  max-width: 42rem;
  margin: 0 auto 2.25rem;
  animation: hajime-fade-in-up 1s ease-out 0.8s both;
  will-change: transform, opacity;
  text-align: center !important;
}
.hajime-description-en {
  color: hsl(var(--foreground) / 0.8);
  font-size: 18px; /* Tailwind text-lg */
  margin: 0 0 0.75rem;
  text-align: center !important;
}
.hajime-description-jp {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif;
  color: var(--fg-muted);
  font-size: 16px; /* Tailwind text-base */
  margin: 0;
  text-align: center !important;
}

.hajime-form-wrap {
  max-width: 28rem;
  margin: 0 auto;
  animation: hajime-fade-in-up 1s ease-out 1s both;
  will-change: transform, opacity;
  text-align: center !important;
}
.hajime-links-legal {
  margin-top: 1rem;
  text-align: center;
}
.hajime-links-legal > * + * {
  margin-top: 0.25rem;
}
.hajime-domain-label {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif;
  font-size: 12px;
  letter-spacing: 0.3em;
  color: var(--fg-muted);
}
.hajime-domain {
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  position: relative;
  display: inline-block;
}
.hajime-domain::after {
  content: "";
  display: block;
  height: 1px;
  width: 10rem;
  margin: 0.25rem auto 0;
  background: linear-gradient(90deg, transparent, var(--rum-color), transparent);
}
.hajime-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.75rem;
}
.hajime-input {
  width: 100%;
  padding: 0.75rem 0.9rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.06);
  color: #fff;
  outline: none;
}
.hajime-input:focus {
  border-color: var(--rum);
}
.hajime-button {
  padding: 0.75rem 1.5rem;
  border: 0;
  border-radius: 0.5rem;
  color: #fff;
  cursor: pointer;
  background-image: linear-gradient(90deg, var(--rum-color), var(--accent-color));
  transition: opacity 0.15s ease-in-out;
}
.hajime-button[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}
.hajime-note {
  color: var(--muted);
  font-size: 0.8rem;
  margin: 0.5rem 0 0;
}
.hajime-message {
  margin-top: 0.5rem;
  font-size: 0.9rem;
}
.hajime-message--ok {
  color: #9ae6b4;
}
.hajime-message--err {
  color: #feb2b2;
}

.hajime-footer {
  border-top: 1px solid rgba(255,255,255,0.15);
  padding: 1.25rem 1.25rem 2rem;
  text-align: center;
}
.hajime-footer .hajime-container {
  animation: hajime-fade-in 1s ease-out 1.2s both;
  will-change: opacity;
}

/* Accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .hajime-launchpad * {
    animation: none !important;
  }
}
.hajime-link {
  color: var(--rum-color);
  text-decoration: none;
}
.hajime-link:hover {
  color: var(--accent-color);
}
.hajime-copy {
  margin: 0.4rem 0 0;
  color: var(--fg-muted);
  font-size: 0.9rem;
}
.hajime-legal {
  margin: 0.2rem 0 0;
  color: var(--fg-muted);
  font-size: 0.8rem;
}

@media (max-width: 520px) {
  .hajime-form {
    grid-template-columns: 1fr;
  }
}


