/* おもしろモード — html[data-fun] のときだけ適用 */

html[data-fun] {
  --fun-ink: #140c0e;
  --fun-paper: #f6f1ec;
  --fun-white: #fffcfa;
  --fun-ease: cubic-bezier(0.34, 1.7, 0.46, 1);
}

html[data-fun] body {
  background: var(--fun-paper);
  color: var(--fun-ink);
}

html[data-fun] h1,
html[data-fun] h2,
html[data-fun] h3,
html[data-fun] .brand-text,
html[data-fun] .jelly,
html[data-fun] .button,
html[data-fun] .site-nav a,
html[data-fun] .nav-contact,
html[data-fun] .section-label,
html[data-fun] .back-to-top,
html[data-fun] .service-number {
  font-family: "Dela Gothic One", "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.04em;
}

html[data-fun] .site-header,
html[data-fun] .site-header.is-scrolled,
html[data-fun] .site-header.is-open {
  color: var(--fun-ink);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

html[data-fun] .brand {
  background: var(--fun-white);
  color: var(--fun-ink);
  border: 3px solid var(--fun-ink);
  box-shadow: 6px 6px 0 var(--fun-ink);
  padding: 10px 16px;
  transform: rotate(-4deg);
  animation: fun-stamp 3.4s ease-in-out infinite;
}

html[data-fun] .site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  background: var(--fun-ink);
  color: var(--fun-white);
  transform: rotate(3deg);
}

html[data-fun] .site-nav a:nth-child(2) {
  background: var(--brand);
  transform: rotate(-5deg);
}

html[data-fun] .site-nav a:nth-child(3) {
  transform: rotate(6deg);
}

html[data-fun] .site-nav a:hover {
  transform: rotate(-8deg) scale(1.08);
}

html[data-fun] .nav-contact {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  background: var(--fun-white);
  color: var(--brand);
  border: 3px solid var(--brand);
  box-shadow: 4px 4px 0 var(--brand);
  border-radius: 0;
  transform: rotate(-7deg);
}

html[data-fun] .nav-toggle {
  border: 3px solid var(--fun-ink);
  background: var(--fun-white);
  box-shadow: 4px 4px 0 var(--fun-ink);
}

html[data-fun] .hero {
  background: linear-gradient(135deg, var(--brand) 0 54%, var(--fun-paper) 54.2% 100%);
  min-height: 100svh;
  overflow: hidden;
  color: var(--fun-ink);
}

html[data-fun] .hero-overlay {
  background:
    linear-gradient(90deg, rgba(193, 52, 51, 0.18) 0%, transparent 46%),
    linear-gradient(180deg, transparent 40%, rgba(246, 241, 236, 0.2) 100%);
}

html[data-fun] .hero-image {
  width: min(58vw, 720px);
  height: min(70vh, 640px);
  inset: auto -8% -12% auto;
  object-fit: cover;
  clip-path: polygon(18% 0, 100% 12%, 86% 100%, 0 78%);
  filter: contrast(1.06);
  opacity: 0.92;
  transform: rotate(8deg);
}

html[data-fun] .eyebrow {
  display: inline-block;
  background: var(--fun-ink);
  color: var(--fun-white);
  padding: 6px 12px;
  transform: rotate(-3deg);
}

html[data-fun] .hero h1 {
  font-size: clamp(42px, 9vw, 108px);
  line-height: 1.05;
  color: var(--fun-white);
}

html[data-fun] .hero h1 span {
  display: block;
}

html[data-fun] .hero h1 span:first-child {
  transform: rotate(-6deg);
  text-shadow: 5px 5px rgba(20, 12, 14, 0.28);
}

html[data-fun] .hero h1 span:last-child {
  width: fit-content;
  margin-left: 8%;
  padding: 0 0.12em 0.04em;
  color: var(--fun-ink);
  background: var(--fun-white);
  box-shadow: 10px 10px 0 var(--fun-ink);
  transform: rotate(3deg);
}

html[data-fun] .hero-lead {
  max-width: 28rem;
  font-weight: 700;
  color: var(--fun-ink);
  transform: rotate(-2deg);
}

html[data-fun] .button,
html[data-fun] .jelly {
  border: 3px solid var(--fun-ink);
  border-radius: 0;
  box-shadow: 6px 6px 0 var(--fun-ink);
  font-family: "Dela Gothic One", "Noto Sans JP", sans-serif;
}

html[data-fun] .button.primary,
html[data-fun] .jelly.primary {
  background: var(--fun-ink);
  color: var(--fun-white);
}

html[data-fun] .hero .button.secondary {
  background: var(--fun-white);
  color: var(--fun-ink);
  border-color: var(--fun-ink);
}

html[data-fun] .jelly:hover,
html[data-fun] .button:hover {
  animation: fun-jelly 0.62s var(--fun-ease);
}

html[data-fun] .intro,
html[data-fun] .company,
html[data-fun] .services {
  background: var(--fun-paper);
  color: var(--fun-ink);
}

html[data-fun] .intro-copy,
html[data-fun] .intro-copy p,
html[data-fun] .section-heading p,
html[data-fun] .company-list dd {
  color: var(--fun-ink);
}

html[data-fun] .intro h2,
html[data-fun] .section-heading h2 {
  transform: rotate(-3deg);
}

html[data-fun] .section-label {
  color: var(--brand);
  letter-spacing: 0.14em;
}

html[data-fun] .service-card {
  overflow: visible;
  border: 3px solid var(--fun-ink);
  border-radius: 0;
  box-shadow: 10px 10px 0 var(--fun-ink);
}

html[data-fun] .float-wiggle {
  animation: fun-wiggle 2.8s ease-in-out infinite;
  animation-delay: var(--wiggle-delay, 0s);
}

html[data-fun] .service-card:hover,
html[data-fun] .service-card:focus-visible,
html[data-fun] .service-card.is-active {
  transform: translateY(-14px) rotate(-8deg) scale(1.04);
  box-shadow: 16px 18px 0 var(--fun-ink);
  animation-play-state: paused;
}

html[data-fun] .service-card::after {
  width: 54px;
  height: 54px;
}

html[data-fun] .strength-panel {
  background: var(--fun-white);
  color: var(--fun-ink);
  border: 4px solid var(--brand);
  outline: 4px solid var(--brand);
  outline-offset: 8px;
  transform: rotate(-2deg);
}

html[data-fun] .strength-panel p {
  color: var(--fun-ink);
}

html[data-fun] .contact {
  clip-path: polygon(0 40px, 100% 0, 100% 100%, 0 100%);
}

html[data-fun] .contact .button.primary {
  background: var(--fun-white);
  color: var(--brand);
  border-color: var(--fun-ink);
}

html[data-fun] .site-footer {
  background: var(--fun-ink);
}

@keyframes fun-wiggle {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-3deg);
  }
  33% {
    transform: translate3d(6px, -12px, 0) rotate(0deg);
  }
  66% {
    transform: translate3d(-6px, -5px, 0) rotate(4deg);
  }
}

@keyframes fun-jelly {
  0% {
    transform: scale(1) rotate(-2deg);
  }
  30% {
    transform: scale(1.12, 0.86) rotate(4deg);
  }
  55% {
    transform: scale(0.9, 1.12) rotate(-6deg);
  }
  80% {
    transform: scale(1.06, 0.96) rotate(2deg);
  }
  100% {
    transform: scale(1) rotate(-2deg);
  }
}

@keyframes fun-stamp {
  0%,
  100% {
    transform: rotate(-4deg);
  }
  50% {
    transform: rotate(3deg);
  }
}

@media (max-width: 860px) {
  html[data-fun] .hero {
    background: linear-gradient(168deg, var(--brand) 0 68%, var(--fun-paper) 68.3% 100%);
  }

  html[data-fun] .hero-image {
    width: 80vw;
    height: 42vh;
    right: -18%;
    bottom: -8%;
    opacity: 0.55;
  }

  html[data-fun] .hero h1 {
    font-size: clamp(36px, 12vw, 64px);
  }

  html[data-fun] .site-nav a,
  html[data-fun] .site-nav a:nth-child(2),
  html[data-fun] .site-nav a:nth-child(3),
  html[data-fun] .nav-contact {
    transform: none;
    width: auto;
  }

  html[data-fun] .site-nav.is-open a {
    background: var(--fun-ink);
    color: var(--fun-white);
    padding: 8px 14px;
    margin: 4px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-fun] .float-wiggle,
  html[data-fun] .brand,
  html[data-fun] .jelly:hover,
  html[data-fun] .button:hover {
    animation: none !important;
  }
}
