
:root {
  --bg: #160b24;
  --pink: #ff98d7;
  --purple: #b78bff;
  --white: #fff7ff;
  --muted: #cbb8d7;
  --line: rgba(255,205,245,.17);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--white);
  font-family: "DM Sans", sans-serif;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
}

a:focus-visible, button:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 4px;
}

::selection {
  background: #dd8de9;
  color: #1c0929;
}

.wrap {
  width: min(1120px, calc(100% - 44px));
  margin: auto;
}

section { scroll-margin-top: 100px; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Outfit, sans-serif; }

/* BACKGROUND */

.atmosphere {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 85% 10%,#512d6b77,transparent 45%),
    radial-gradient(ellipse at 5% 80%,#512b7455,transparent 45%),
    #160b24;
}

.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(65px);
  animation: drift 15s ease-in-out infinite alternate;
}

.blob.a {
  width: 420px;
  height: 420px;
  top: 10%;
  left: -180px;
  background: #de65ba4a;
}

.blob.b {
  width: 480px;
  height: 480px;
  right: -200px;
  top: 45%;
  background: #975cf84b;
  animation-delay: -7s;
}

.blob.c {
  width: 380px;
  height: 380px;
  bottom: -150px;
  left: 35%;
  background: #f178c838;
  animation-delay: -3s;
}

@keyframes drift {
  to { transform: translate(75px,-65px) scale(1.15); }
}

/* ANNOUNCEMENT */

.announcement {
  padding: 11px 15px;
  text-align: center;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
  background: linear-gradient(90deg,#8548b2,#cf79b6,#8854bd);
}

/* NAVIGATION */

.site-header {
  position: relative;
  z-index: 10;
}

.nav {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.brand {
  font-family: Outfit, sans-serif;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 5px;
  white-space: nowrap;
}

.brand span { color: var(--pink); }

.nav-right {
  display: flex;
  align-items: center;
  gap: 27px;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 25px;
}

.nav-links a {
  font-size: 12px;
  font-weight: 700;
  color: #e3d5ec;
  transition: color .2s;
}

.nav-links a:hover,
.nav-links a[aria-current="page"] {
  color: var(--pink);
}

/* LANGUAGE SWITCH */

.lang {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 89px;
  height: 43px;
  border: 1px solid #ffd1f151;
  background: #ffffff0e;
  color: white;
  border-radius: 30px;
  font-size: 12px;
  font-weight: 800;
  transition: background .25s, transform .25s;
}

.lang:hover {
  background: #ffb5e526;
  transform: translateY(-2px);
}

.globe { font-size: 17px; }

/* HERO */

.hero {
  min-height: 690px;
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  align-items: center;
  gap: 45px;
  padding: 75px 0 115px;
}

.eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 2.7px;
  color: #f8b7e7;
}

.eyebrow::before {
  content: "✦";
  margin-right: 12px;
}

h1 {
  font-weight: 800;
  font-size: clamp(52px,6.5vw,94px);
  line-height: 1.03;
  letter-spacing: -4px;
  margin: 27px 0;
}

.gradient {
  background: linear-gradient(
    105deg,#fff3fc,#ff99d4 42%,#b494ff 85%
  );
  background-size: 200% auto;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  animation: shimmer 7s linear infinite;
}

@keyframes shimmer {
  to { background-position: 200% center; }
}

.hero-desc {
  max-width: 490px;
  font-size: 16px;
  color: var(--muted);
  line-height: 1.9;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 53px;
  padding: 0 25px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 800;
  transition: transform .25s, box-shadow .25s;
}

.btn:hover { transform: translateY(-4px); }

.btn-primary {
  color: #24102f;
  background: linear-gradient(110deg,#ffa7df,#bb8cff);
  box-shadow: 0 12px 40px #e26dc43a;
}

.btn-outline {
  border: 1px solid var(--line);
  background: #ffffff0d;
}

/* ANIMATED ARTWORK */

.showcase {
  position: relative;
  height: 525px;
  display: grid;
  place-items: center;
}

.showcase::before {
  content: "";
  width: 400px;
  height: 400px;
  position: absolute;
  border-radius: 50%;
  background: #bf6aec66;
  filter: blur(100px);
}

.artwork {
  position: relative;
  width: min(355px,88%);
  height: 460px;
  border-radius: 170px 170px 36px 36px;
  border: 1px solid #ffffff64;
  background:
    radial-gradient(circle at 25% 20%,#ffe0f4,transparent 36%),
    radial-gradient(circle at 80% 75%,#7139af,transparent 52%),
    linear-gradient(145deg,#f5a0d5,#a47adf 62%,#482663);
  box-shadow: 0 35px 110px #110619a8;
  overflow: hidden;
  display: grid;
  place-items: center;
  animation: floating 7s ease-in-out infinite;
}

.artwork::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid #ffffff60;
  border-radius: inherit;
}

.art-letter {
  font-family: Outfit, sans-serif;
  font-size: 250px;
  font-weight: 900;
  color: #ffffff65;
  transform: rotate(-10deg);
  text-shadow: 0 10px 50px #ffffff4d;
}

.art-label {
  position: absolute;
  bottom: 42px;
  z-index: 2;
  letter-spacing: 4px;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.float-tag {
  position: absolute;
  z-index: 3;
  padding: 15px 18px;
  background: #ffffff27;
  backdrop-filter: blur(20px);
  border: 1px solid #ffffff55;
  border-radius: 17px;
  box-shadow: 0 15px 40px #10051c55;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  animation: floating 6s ease-in-out infinite;
}

.float-tag.first {
  left: -8px;
  top: 100px;
}

.float-tag.second {
  right: -8px;
  bottom: 85px;
  animation-delay: -3s;
}

.spark {
  position: absolute;
  font-size: 37px;
  color: #ffd0f1;
  animation: twinkle 3s infinite alternate;
}

.spark.first { top: 35px; right: 55px; }
.spark.second { bottom: 30px; left: 45px; }

@keyframes floating {
  50% { transform: translateY(-17px) rotate(1deg); }
}

@keyframes twinkle {
  to {
    opacity: .35;
    transform: scale(.7) rotate(30deg);
  }
}

/* SECTIONS */

.section { padding: 90px 0; }

.section-heading {
  text-align: center;
  margin-bottom: 45px;
}

.section-heading h2 {
  font-size: clamp(37px,5vw,61px);
  letter-spacing: -2px;
  margin: 17px 0;
}

.section-heading p {
  max-width: 620px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.9;
}

/* ABOUT */

.about-card {
  border: 1px solid var(--line);
  background: linear-gradient(125deg,#6f36743e,#49307b26);
  border-radius: 30px;
  padding: 45px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 45px;
}

.about-card h3 {
  font-size: clamp(30px,4vw,43px);
  letter-spacing: -1px;
  margin: 15px 0;
}

.about-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.95;
}

.about-visual {
  min-height: 320px;
  border-radius: 25px;
  background:
    radial-gradient(circle at 75% 25%,#ffd9f5a0,transparent 40%),
    linear-gradient(135deg,#eb9cd5,#8f68cc 75%,#50306b);
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
}

.about-visual::before {
  content: "♡";
  font-size: 330px;
  color: #ffffff36;
  transform: rotate(-18deg);
  position: absolute;
}

.about-visual strong {
  z-index: 1;
  font-family: Outfit, sans-serif;
  letter-spacing: 5px;
  font-size: clamp(25px,3vw,41px);
}

/* SERVICES */

.features {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
}

.feature {
  padding: 37px 28px;
  border-radius: 26px;
  border: 1px solid var(--line);
  background: linear-gradient(145deg,#ffffff12,#ffffff05);
  backdrop-filter: blur(15px);
  transition: transform .3s, border-color .3s;
}

.feature:hover {
  transform: translateY(-8px);
  border-color: #f6b1e383;
}

.feature-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 19px;
  background: linear-gradient(135deg,#ffc6e64a,#ad80ff40);
  font-size: 28px;
  margin-bottom: 25px;
}

.feature h3 {
  font-size: 22px;
  margin-bottom: 12px;
}

.feature p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.9;
  margin-bottom: 0;
}

/* RECRUITMENT */

.closed {
  border: 1px solid #ffc2ef37;
  border-radius: 35px;
  padding: 75px 30px;
  text-align: center;
  background:
    radial-gradient(ellipse at top,#b85caa3f,transparent 72%),
    linear-gradient(145deg,#46235277,#241431);
}

.closed-symbol {
  display: block;
  font-size: 45px;
  margin-bottom: 22px;
  animation: heartbeat 3s ease-in-out infinite;
}

@keyframes heartbeat {
  50% { transform: scale(1.17); }
}

.closed h2 {
  font-size: clamp(35px,5vw,58px);
  letter-spacing: -2px;
  margin: 17px 0;
}

.closed p {
  color: var(--muted);
  line-height: 1.9;
  max-width: 570px;
  margin: 0 auto;
}

.status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  border-radius: 30px;
  border: 1px solid #ffc6e749;
  background: #ffb4e019;
  color: #ffd0ea;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.3px;
  margin-top: 26px;
}

/* CONTACT */

.contact-card {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
  padding: 50px 30px;
  border-radius: 30px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg,#ffffff11,#ffffff05);
}

.contact-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  margin: 0 auto 25px;
  background: linear-gradient(135deg,#ffaad442,#ab7aff40);
  font-size: 32px;
}

.contact-card h3 {
  font-size: 30px;
  margin-bottom: 13px;
}

.contact-card p {
  color: var(--muted);
  line-height: 1.85;
  max-width: 500px;
  margin: 0 auto 23px;
}

.email {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  color: #ffd0ec;
  font-size: clamp(14px,2.8vw,22px);
  font-weight: 800;
}

.email:hover { text-decoration: underline; }

.email-placeholder {
  color: #ad99bd;
  font-size: 13px;
}

/* FOOTER */

footer {
  border-top: 1px solid var(--line);
  margin-top: 60px;
  padding: 38px 0;
}

.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}

.footer-small {
  font-size: 12px;
  color: #b59ac6;
  margin-top: 9px;
}

.copyright {
  font-size: 12px;
  color: #b59ac6;
}

/* SCROLL ANIMATIONS */

.reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .8s, transform .8s;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* RESPONSIVE */

@media(max-width:850px) {
  .hero {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 0;
    padding: 65px 0;
  }

  .hero-desc {
    margin-left: auto;
    margin-right: auto;
  }

  .actions { justify-content: center; }

  .showcase {
    height: 485px;
    max-width: 480px;
    margin: auto;
    width: 100%;
  }

  .about-card { grid-template-columns: 1fr; }
  .features { grid-template-columns: 1fr; }
}

@media(max-width:600px) {
  .wrap { width: calc(100% - 34px); }

  .announcement {
    font-size: 9px;
    letter-spacing: 1px;
  }

  .nav { min-height: 75px; }

  .brand {
    font-size: 23px;
    letter-spacing: 3px;
  }

  .nav-right { gap: 12px; }

  .nav-links a:not(:last-child) { display: none; }
  .nav-links a { font-size: 11px; }

  .lang {
    min-width: 76px;
    height: 40px;
  }

  h1 { letter-spacing: -2.5px; }

  .hero { padding: 60px 0 35px; }
  .hero-desc { font-size: 14px; }

  .showcase { height: 405px; }

  .artwork {
    height: 355px;
    width: 270px;
  }

  .art-letter { font-size: 185px; }

  .float-tag {
    font-size: 9px;
    padding: 11px;
  }

  .float-tag.first {
    top: 65px;
    left: 0;
  }

  .float-tag.second {
    right: 0;
    bottom: 55px;
  }

  .section { padding: 65px 0; }

  .about-card {
    padding: 18px;
    gap: 25px;
  }

  .about-visual { min-height: 240px; }
  .closed { padding: 55px 22px; }
  .contact-card { padding: 38px 20px; }

  .footer-inner {
    flex-direction: column;
    text-align: center;
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}

.reveal{opacity:1;transform:none}body{padding-bottom:50px}h1{font-size:clamp(38px,5.2vw,72px);letter-spacing:-2px;line-height:1.08}h2{font-size:clamp(30px,3.8vw,48px);letter-spacing:-1px}p{line-height:1.8}.hero{gap:34px;padding-top:70px;min-height:660px}.hero-foot{color:var(--muted);margin-top:30px;font-size:13px}.hero-foot span{margin-left:20px;border:1px solid var(--line);padding:5px 9px;border-radius:8px}.brand{font-size:25px;letter-spacing:3px}.brand small{display:block;font-size:9px;letter-spacing:6px;margin-top:3px}.nav{gap:18px}.nav nav{display:flex;gap:24px;font-size:13px;font-weight:600}.menu-toggle{display:none}.language-menu{position:relative;font-size:13px}.language-menu summary{cursor:pointer;border:1px solid var(--line);border-radius:22px;padding:12px 16px;list-style:none;white-space:nowrap}.language-menu>div{position:absolute;right:0;top:48px;width:160px;background:#271435;border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 15px 35px #10051caa;z-index:30}.language-menu a{display:block;padding:10px;border-radius:8px}.language-menu a:hover,.language-menu a[aria-current]{background:#ff98d722;color:var(--pink)}.audiences{list-style:none;padding:0;font-size:14px;color:var(--muted)}.audiences li{display:flex;gap:12px;margin:12px 0}.audiences span{color:var(--pink)}.platforms{display:grid;grid-template-columns:1fr 1fr;gap:24px}.platform-card{padding:40px;border:1px solid var(--line);border-radius:30px;background:radial-gradient(ellipse at top right,#ce77d040,transparent 70%),#ffffff05}.platform-card:nth-child(2){background:radial-gradient(ellipse at top right,#8660cc55,transparent 70%),#ffffff05}.platform-card h3{font-size:44px;margin:22px 0}.platform-card p{color:var(--muted)}.platform-note{font-size:12px;text-align:center;color:var(--muted);margin-top:24px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:0;list-style:none}.steps li{padding:25px 0;border-top:1px solid var(--line)}.steps span{font-family:Outfit,sans-serif;color:var(--pink);font-size:38px}.steps h3{font-size:20px;line-height:1.5;margin-top:20px}.faq{max-width:850px}.faq details{border-bottom:1px solid var(--line);padding:22px 8px}.faq summary{cursor:pointer;font-weight:600;font-size:17px}.faq details p{color:var(--muted);margin:18px 0 0}.application-card{max-width:800px;margin:auto;padding:40px;border:1px solid var(--line);background:linear-gradient(135deg,#ffffff0e,#ffffff04);border-radius:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.full{grid-column:1/-1}label{display:block;font-size:13px;line-height:1.6;margin-bottom:9px}input,select,textarea{width:100%;border:1px solid #d0b3e34a;background:#21132d;color:#fff7ff;padding:13px;border-radius:11px;font:inherit;font-size:15px;min-width:0}select{max-width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--pink);outline-offset:2px}small,.form-note{color:var(--muted);font-size:12px;line-height:1.6}.form-grid small{display:block;margin-top:8px}.check{display:flex;align-items:flex-start;gap:12px;margin:22px 0}.check input{width:19px;height:19px;flex-shrink:0;margin-top:3px;accent-color:#ff98d7}.check a{text-decoration:underline;text-underline-offset:3px;color:var(--pink)}.notice,#form-status{font-size:13px;color:var(--muted)}#form-status{padding:15px;border:1px solid var(--line);border-radius:12px}button.btn{border:0}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.honeypot{position:absolute;left:-10000px;opacity:0}.final-cta{padding:60px 25px;text-align:center;border:1px solid var(--line);border-radius:30px;background:radial-gradient(ellipse at top,#b85caa3f,transparent 72%),#241431}.final-cta p{max-width:650px;margin:0 auto 25px;color:var(--muted)}.feedback{position:fixed;bottom:18px;right:20px;z-index:20;min-height:44px;font-size:12px;border:1px solid #ffffff55}.feedback[hidden],[hidden]{display:none!important}.footer-languages{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px;font-size:12px;color:var(--muted)}.skip{position:absolute;left:20px;top:-100px;background:#fff;color:#160b24;padding:15px;z-index:100}.skip:focus{top:10px}.privacy-page{max-width:800px}.privacy-page h1{font-size:42px;margin-top:50px}.privacy-page p{color:var(--muted)}[aria-invalid=true]{border-color:#ffb3bd}html:lang(ja) h1{font-size:clamp(34px,4.5vw,61px);letter-spacing:0;line-height:1.35}html:lang(ja) body{font-family:'DM Sans','Yu Gothic','Meiryo',sans-serif}html:lang(ja) h2{letter-spacing:0}.art-label{line-height:1.8}.nav nav a:hover,.footer-languages a:hover{color:var(--pink)}
@media(max-width:1000px){.nav nav{gap:12px;font-size:12px}.hero{grid-template-columns:1fr 1fr}.showcase{height:450px}.artwork{height:390px}.float-tag{max-width:210px;font-size:10px}.steps{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.nav{flex-wrap:wrap;padding:18px 0}.menu-toggle{display:block;background:none;border:1px solid var(--line);color:var(--white);padding:10px;border-radius:10px;margin-left:auto;font-size:12px}.nav nav{display:none;order:4;width:100%;flex-direction:column;padding:16px;background:#ffffff08;border-radius:14px;gap:0}.nav nav.open{display:flex}.nav nav a{padding:12px;font-size:15px}.language-menu summary{padding:10px;font-size:12px}.brand{font-size:20px}.hero{grid-template-columns:1fr;gap:0;text-align:center;padding:40px 0 20px}.hero-desc{margin:auto}.showcase{height:390px;max-width:380px}.artwork{height:330px;width:250px}.art-letter{font-size:185px}.float-tag{max-width:175px}.float-tag.first{left:0}.float-tag.second{right:0}.about-card{grid-template-columns:1fr}.platforms,.features{grid-template-columns:1fr}.section{padding:50px 0}.platform-card{padding:28px}.form-grid{grid-template-columns:1fr;gap:18px}.application-card{padding:24px 18px}.section-heading h2{letter-spacing:-1px}.feedback{bottom:12px;right:12px}.footer-inner{align-items:flex-start;text-align:left}.steps{gap:16px}.steps h3{font-size:17px}h1{font-size:clamp(36px,8vw,57px);letter-spacing:-1px}.announcement{letter-spacing:.5px;line-height:1.5}.language-menu{max-width:140px}.final-cta{padding:45px 20px}.form-grid>div{min-width:0}}
.application-launch{text-align:center;margin-top:30px}.dialog-open{overflow:hidden}#application-dialog{width:min(800px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:28px;background:#21132d;color:var(--white);border:1px solid #cf9de66b;border-radius:26px;box-shadow:0 30px 100px #0009;overscroll-behavior:contain}#application-dialog::backdrop{background:#0d0514c9;backdrop-filter:blur(7px)}#application-dialog .application-card{padding:0;border:0;background:none}.dialog-top{display:flex;align-items:flex-start;gap:20px;justify-content:space-between}.dialog-top h2{font-size:30px;margin:0 0 20px}.dialog-close{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#ffffff0f;border:1px solid var(--line);color:white;font-size:29px;line-height:1}.dialog-close:hover{background:#ff98d733}@media(max-width:600px){#application-dialog{padding:20px;max-height:calc(100dvh - 20px)}.dialog-top h2{font-size:25px}}
