:root {
  --wow-paper: #fffefc;
  --wow-ink: #20242a;
  --wow-muted: #767a80;
  --wow-line: rgba(32,36,42,.09);
}

html, body { background: var(--wow-paper); }
body { overflow-x: hidden; }
.site-shell { overflow: clip; }
.site-shell::before,
.site-shell::after { display: none; }

.wow-header {
  background: rgba(255,254,252,.72);
  border-bottom: 1px solid rgba(32,36,42,.055);
  backdrop-filter: blur(24px) saturate(135%);
  -webkit-backdrop-filter: blur(24px) saturate(135%);
}
.nav-right { display: flex; align-items: center; gap: 22px; }

.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border: 1px solid rgba(32,36,42,.085);
  border-radius: 999px;
  background: rgba(255,255,255,.62);
  color: #a0a3a8;
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .06em;
}
.lang-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: #9a9da2;
  padding: 3px 2px;
  cursor: pointer;
  font: inherit;
}
.lang-button.is-active { color: var(--wow-ink); }
.lang-button:focus-visible { outline: 2px solid rgba(74,131,255,.45); outline-offset: 3px; border-radius: 4px; }

.wow-hero {
  min-height: min(780px, calc(100vh - 72px));
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  overflow: hidden;
  border-bottom: 1px solid rgba(32,36,42,.055);
}
.wow-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(circle at 10% 12%, rgba(255,86,122,.045), transparent 21rem),
    radial-gradient(circle at 92% 15%, rgba(72,131,255,.055), transparent 24rem),
    linear-gradient(180deg, #fffefc 0%, #fffefc 72%, rgba(248,248,249,.78) 100%);
}

.ink-canvas {
  position: absolute;
  inset: -8% -6%;
  width: 112%;
  height: 116%;
  z-index: -1;
  pointer-events: none;
  opacity: .98;
}

.wow-hero-inner {
  min-height: 620px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
  gap: 30px;
  align-items: center;
  position: relative;
  z-index: 2;
}

.hero-copy {
  position: relative;
  z-index: 4;
  padding-bottom: 34px;
}
.hero-copy .eyebrow {
  font-size: 12px;
  letter-spacing: .16em;
  color: #73777d;
  margin-bottom: 16px;
}
.hero-copy h1 {
  font-size: clamp(64px, 7.3vw, 105px);
  line-height: .98;
  letter-spacing: -.065em;
  max-width: 820px;
  text-wrap: balance;
}
.hero-copy h1 span { white-space: nowrap; }
html[lang="ja"] .hero-copy h1 {
  font-size: clamp(58px, 6.45vw, 91px);
  line-height: 1.08;
  letter-spacing: -.06em;
}
html[lang="ja"] .hero-copy h1 span { white-space: nowrap; }

.wow-reveal .eyebrow,
.wow-reveal h1 {
  opacity: 0;
  transform: translateY(22px);
}
.wow-ready .wow-reveal .eyebrow {
  animation: wowRise .8s cubic-bezier(.2,.75,.2,1) .08s forwards;
}
.wow-ready .wow-reveal h1 {
  animation: wowRise 1.05s cubic-bezier(.17,.78,.18,1) .18s forwards;
}

.wow-bird-stage {
  min-height: 520px;
  position: relative;
  display: grid;
  place-items: center;
  perspective: 1000px;
  z-index: 3;
}
.bird-ink-halo {
  position: absolute;
  width: min(43vw, 610px);
  aspect-ratio: 1.4;
  border-radius: 45% 55% 62% 38% / 46% 38% 62% 54%;
  background:
    radial-gradient(ellipse at 18% 42%, rgba(244,78,94,.13), transparent 34%),
    radial-gradient(ellipse at 43% 70%, rgba(255,191,69,.11), transparent 32%),
    radial-gradient(ellipse at 69% 24%, rgba(70,132,255,.13), transparent 36%),
    radial-gradient(ellipse at 82% 67%, rgba(123,84,220,.10), transparent 32%);
  filter: blur(22px);
  transform: translate3d(calc(var(--bird-x, 0px) * -.30), calc(var(--bird-y, 0px) * -.30), 0) rotate(-6deg);
  transition: transform .24s ease-out;
  opacity: .90;
}
.hero-macaw {
  width: min(49vw, 680px);
  max-width: none;
  height: auto;
  position: relative;
  z-index: 3;
  filter: drop-shadow(0 24px 34px rgba(25,31,38,.09));
  transform: translate3d(var(--bird-x, 0px), var(--bird-y, 0px), 0) rotate(var(--bird-r, 0deg));
  transition: transform .20s cubic-bezier(.16,.72,.18,1);
  will-change: transform;
  opacity: 0;
}
.wow-ready .hero-macaw {
  animation: macawEnter 1.2s cubic-bezier(.18,.8,.18,1) .22s forwards, macawFloat 6.4s ease-in-out 1.6s infinite;
}

.wow-hero-foot {
  position: absolute;
  left: 50%;
  bottom: 23px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  color: #9b9ea3;
  font-size: 9px;
  letter-spacing: .18em;
  z-index: 4;
}
.wow-scroll-line {
  width: 42px;
  height: 1px;
  background: linear-gradient(90deg, rgba(32,36,42,0), rgba(32,36,42,.28));
  transform-origin: left;
  animation: scrollPulse 2.4s ease-in-out infinite;
}

.wow-products {
  padding: 78px 0 80px;
  background: linear-gradient(180deg, rgba(248,248,249,.78), rgba(255,254,252,1) 28%);
}
.simple-products-head { margin-bottom: 30px; }
.product-showcase {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  perspective: 1200px;
}

.product-card {
  --rx: 0deg;
  --ry: 0deg;
  --mx: 50%;
  --my: 50%;
  min-height: 338px;
  padding: 28px;
  position: relative;
  display: grid;
  grid-template-rows: 160px auto;
  align-content: start;
  border-radius: 28px;
  background: rgba(248,248,249,.82);
  border: 1px solid rgba(32,36,42,.055);
  overflow: hidden;
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(0);
  transform-style: preserve-3d;
  transition: transform .22s ease, box-shadow .25s ease, background .25s ease;
  opacity: 0;
  translate: 0 24px;
}
.product-card.is-visible {
  opacity: 1;
  translate: 0 0;
  transition: opacity .7s ease, translate .8s cubic-bezier(.2,.75,.2,1), transform .22s ease, box-shadow .25s ease, background .25s ease;
}
.product-card:nth-child(2).is-visible { transition-delay: .08s; }
.product-card:nth-child(3).is-visible { transition-delay: .16s; }
.product-card:hover {
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-4px);
  background: rgba(252,252,253,.96);
  box-shadow: 0 22px 46px rgba(32,36,42,.085);
}
.product-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(var(--c1), .65), rgba(255,255,255,0) 38%, rgba(var(--c2), .54));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.product-card:hover::before { opacity: .75; }
.card-ink {
  position: absolute;
  width: 240px;
  height: 240px;
  left: calc(var(--mx) - 120px);
  top: calc(var(--my) - 120px);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--c1), .13), rgba(var(--c2), .07) 42%, transparent 70%);
  filter: blur(18px);
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.product-card:hover .card-ink { opacity: 1; }
.product-card-visual {
  height: 160px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  position: relative;
  z-index: 2;
  transform: translateZ(25px);
}
.product-icon {
  width: 132px;
  height: 132px;
  object-fit: contain;
  border-radius: 25%;
  margin: 0;
  filter: drop-shadow(0 12px 22px rgba(25,31,38,.12));
}
.product-card-copy {
  margin: 20px 0 0;
  position: relative;
  z-index: 2;
  transform: translateZ(18px);
}
.product-name {
  font-size: 28px;
  line-height: 1.08;
  letter-spacing: -.045em;
}

.product-name a {
  color: inherit;
  text-decoration: none;
}

.product-name a:hover,
.product-name a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
.product-card p {
  margin: 10px 0 0;
  max-width: 30ch;
  color: var(--wow-muted);
  font-size: 15px;
  line-height: 1.6;
}
.section-action {
  margin-top: 30px;
  display: flex;
  justify-content: flex-end;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #484d54;
  font-size: 14px;
  font-weight: 700;
}
.text-link span:last-child { transition: transform .22s ease; }
.text-link:hover span:last-child { transform: translateX(4px); }
.wow-section-reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.75,.2,1); }
.wow-section-reveal.is-visible { opacity: 1; transform: none; }
.footer-home { margin-top: 0; }

@keyframes wowRise {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes macawEnter {
  0% { opacity: 0; transform: translate3d(65px, 18px, 0) rotate(2.5deg) scale(.94); }
  100% { opacity: 1; transform: translate3d(var(--bird-x, 0px), var(--bird-y, 0px), 0) rotate(var(--bird-r, 0deg)) scale(1); }
}
@keyframes macawFloat {
  0%,100% { margin-top: 0; }
  28% { margin-top: -4px; }
  52% { margin-top: -9px; }
  76% { margin-top: -3px; }
}
@keyframes scrollPulse {
  0%,100% { transform: scaleX(.55); opacity: .38; }
  50% { transform: scaleX(1); opacity: .8; }
}

@media (max-width: 980px) {
  .wow-hero { min-height: auto; }
  .wow-hero-inner { min-height: 600px; grid-template-columns: minmax(0,1fr) minmax(360px,.85fr); }
  .hero-copy h1 { font-size: clamp(58px, 7.2vw, 80px); }
  html[lang="ja"] .hero-copy h1 { font-size: clamp(52px, 6.6vw, 74px); }
  .hero-macaw { width: min(54vw, 610px); }
}

@media (max-width: 820px) {
  .navlinks { display: none; }
  .nav-right { gap: 0; }
  .wow-hero { min-height: calc(100svh - 66px); }
  .wow-hero-inner {
    min-height: 0;
    padding: 66px 0 72px;
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .hero-copy { padding-bottom: 0; }
  .hero-copy h1 { font-size: clamp(52px, 13vw, 78px); line-height: 1.02; }
  html[lang="ja"] .hero-copy h1 { font-size: clamp(47px, 11.8vw, 69px); line-height: 1.1; }
  .wow-bird-stage { min-height: 330px; margin-top: -6px; }
  .hero-macaw { width: min(104vw, 620px); transform-origin: center center; }
  .bird-ink-halo { width: min(92vw, 520px); }
  .wow-hero-foot { display: none; }
  .product-showcase { grid-template-columns: 1fr; gap: 16px; }
  .product-card { min-height: 300px; padding: 24px; grid-template-rows: 142px auto; }
  .product-card-visual { height: 142px; }
  .product-icon { width: 118px; height: 118px; }
  .section-action { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .wrap { width: min(calc(100% - 30px), var(--max)); }
  .brand { font-size: 15px; }
  .language-switch { padding: 3px 7px; }
  .wow-hero-inner { padding-top: 52px; padding-bottom: 58px; }
  .hero-copy h1 { font-size: clamp(48px, 14vw, 64px); }
  html[lang="ja"] .hero-copy h1 { font-size: clamp(43px, 12.5vw, 58px); }
  .wow-bird-stage { min-height: 285px; }
  .hero-macaw { width: min(116vw, 560px); }
  .wow-products { padding-top: 62px; }
}

@media (hover: none) {
  .product-card:hover { transform: none; box-shadow: none; }
  .product-card:hover::before, .product-card:hover .card-ink { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
  .wow-reveal .eyebrow, .wow-reveal h1, .hero-macaw, .product-card, .wow-section-reveal { opacity: 1 !important; transform: none !important; translate: none !important; }
  .ink-canvas { opacity: .72; }
}
