/* LP only. Charcoal gallery surfaces; original artwork and content stay intact. */
.lp {
  --bg:#101214;
  --panel:#191d21;
  --line:#30363c;
  --ink:#f0f1eb;
  --muted:#b2bac3;
  --surface-edge:#394047;
  --surface-top:#50575d;
  --surface-shadow:0 6px 18px #00000024,inset 0 1px 0 #ffffff06;
  --body-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  --mono:Consolas,"Courier New",var(--body-font);
  font-family:var(--body-font);
  background:
    radial-gradient(ellipse 800px 650px at 50% 160px,#c7dcd509,transparent 80%),
    radial-gradient(ellipse 700px 1100px at 90% 45%,#b7a0ff04,transparent 80%),var(--bg);
  isolation:isolate;
}
.lp::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 45%,#00000026);
}
.lp::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath fill='white' d='M3 7h1v1H3zm17 16h1v1h-1zm31-12h1v1h-1zM9 48h1v1H9zm32 7h1v1h-1zm16-23h1v1h-1z'/%3E%3C/svg%3E");
}
.lp .site-header { border-bottom-color:#ffffff12; }
.lp .section { padding-block:clamp(64px,7vw,96px); }
.lp .section-label { font:700 11px/1.5 var(--mono); letter-spacing:.16em; margin-bottom:24px; }
.lp .section-label::before { width:18px; height:1px; }
.lp .hero { padding-top:40px; padding-bottom:44px; background:none; }
.lp .hero h1 { letter-spacing:.015em; line-height:1.5; }
.lp .hero > .micro + h1 { margin-top:clamp(48px,7vw,80px); }
.lp .hero-copy { font-size:clamp(14px,1.5vw,16px); line-height:1.9; }
.lp .hero .combination-note { margin-top:4px; margin-bottom:0; }
.lp .hero-copy { margin-top:16px; }
.lp .logo-plate {
  transform:none;
  padding:16px 16px 20px;
  background:linear-gradient(155deg,#ffffff06,transparent 65%),#1a2023;
  border-color:#96f2cd50;
  border-top-color:#96f2cd80;
  box-shadow:0 8px 24px #00000028,inset 0 1px 0 #ffffff08;
}
.lp .hero-monsters {
  position:relative;
  padding-bottom:8px;
  background:radial-gradient(ellipse at 50% 85%,#96f2cd08,transparent 65%);
}
.lp .hero-monsters img { filter:drop-shadow(0 4px 0 #00000040); }
.lp .micro,.lp .small-note,.lp .combination-note { font-family:var(--body-font); }
.lp .button {
  font-family:var(--mono),var(--body-font);
  border-width:1px;
  background:linear-gradient(#ffffff05,transparent),var(--panel);
  box-shadow:inset 0 1px 0 #ffffff09,0 3px 10px #00000020;
  transition:border-color .18s,background-color .18s,box-shadow .18s;
}
.lp .button:disabled {
  background:linear-gradient(#ffffff05,transparent),#1b2024;
  border-color:#ffe47760;
  box-shadow:inset 0 1px 0 #ffffff08;
}
.lp .pv-section { padding-block:24px 32px; }
.lp .pv-section::before { display:none; }
.lp .media-frame,.lp .summon-window,.lp .creator-card,
.lp .pv-section .media-frame:has(.pv-media.portrait) {
  background:linear-gradient(145deg,#ffffff04,transparent 60%),var(--panel);
  border:1px solid var(--surface-edge);
  border-top-color:var(--surface-top);
  box-shadow:var(--surface-shadow);
}
.lp .media-frame { padding:8px; }
.lp .summon-window { padding:6px; }
.lp .window-top,.lp .window-bottom {
  background:transparent;
  padding:12px 10px;
  font-size:11px;
  letter-spacing:.045em;
}
.lp .window-top { border-bottom:1px solid var(--line); }
.lp .screenshot {
  border:1px solid #ffffff18;
  box-shadow:0 3px 10px #00000022;
  background:#0d1120;
}
.lp .summon-methods { margin-top:32px; gap:30px; }
.lp .summon-methods p,.lp .game-card>p,.lp .game-card-bottom,
.lp .story-fact p,.lp .creator-bio {
  font-family:var(--body-font);
  font-size:15px;
  line-height:1.85;
  letter-spacing:.015em;
}
.lp .summon-methods article:nth-child(n) h3 { background:transparent; font-family:var(--mono),var(--body-font); }
.lp .possibilities {
  background:radial-gradient(ellipse at 50% 45%,#ffe47705,transparent 68%);
  border-block:1px solid var(--line);
  box-shadow:none;
}
.lp .huge-number { text-shadow:none; }
.lp .combination-info { border-color:#ffffff12; padding-block:24px; }
.lp .collection-heading,.lp .games>h2 { margin-bottom:36px; }
.lp .games>h2 { margin-bottom:0; }
.lp #combination-note-games { margin-top:4px; margin-bottom:28px; text-align:left; }
.lp .monster-grid {
  grid-auto-columns:144px;
  grid-template-rows:repeat(2,160px);
  gap:12px;
  scrollbar-width:thin;
}
.lp .monster-grid li:nth-child(n) {
  position:relative;
  isolation:isolate;
  padding:10px 6px 12px;
  border:0;
  border-bottom:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 68%,#b7a0ff09,transparent 72%);
  box-shadow:none;
  justify-content:flex-start;
  gap:4px;
}
.lp .monster-grid li::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:56%;
  height:6px;
  bottom:12px;
  background:#00000050;
}
.lp .monster-number { font-size:10px; color:#939da7; letter-spacing:.06em; }
.lp .monster-grid li.album-monster img { margin:auto; filter:drop-shadow(0 3px 0 #00000030); }
.lp .monster-grid li.album-monster:nth-child(6n+1) img { width:128px; height:128px; }
.lp .game-cards { gap:32px; }
.lp .game-card,.lp .game-card.shooting {
  padding:24px 18px;
  background:linear-gradient(160deg,#ffffff04,transparent 65%),var(--panel);
  border:1px solid var(--line);
  border-top-color:#96f2cd70;
  box-shadow:var(--surface-shadow);
}
.lp .game-card.shooting { border-top-color:#ff91d070; }
.lp .game-card h3 { margin-block:18px 12px; font-size:clamp(32px,4vw,46px); letter-spacing:-.025em; }
.lp .game-card>p { margin-bottom:24px; min-height:0; }
.lp .game-card .screenshot {
  height:auto;
  aspect-ratio:auto;
  max-height:none;
  object-fit:contain;
  border:1px solid #ffffff18;
  padding:6px;
  background:#0d1120;
  box-shadow:inset 0 0 0 1px #ffffff04,0 4px 12px #00000024;
}
.lp .game-card-bottom { margin-top:24px; margin-bottom:24px; font-size:14px; }
.lp .story { background:#ffffff02; border-block:1px solid var(--line); }
.lp .story-facts { gap:24px; }
.lp .story-fact:nth-child(n) {
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
  box-shadow:none;
  padding:24px 0 0;
}
.lp .story-fact h3 { font-size:20px; font-weight:700; line-height:1.55; }
.lp .story-fact p { margin-top:14px; }
.lp .text-link { margin-top:32px; border-bottom-color:#96f2cd50; }
.lp .creator-card { padding:32px 24px; }
.lp .creator-bio { line-height:1.95; }
.lp .social-links { margin-top:32px; }
.lp .social-links a:nth-child(n) {
  background:#ffffff02;
  border-color:var(--line);
  box-shadow:none;
  padding-right:26px;
  min-height:64px;
}
.lp .social-links small { font-family:var(--body-font); color:var(--muted); }
.lp .social-links a { padding-block:14px; }
.lp .social-links small { margin-top:8px; font-size:11px; }
.lp .site-footer { padding-block:32px 40px; }
.lp .site-footer nav { flex-wrap:wrap; justify-content:center; gap:12px 24px; }
.lp a:focus-visible,.lp button:focus-visible { outline-width:2px; }
.lp .button:not(:disabled):active,.lp .social-links a:active { background-color:#29322f; border-color:var(--mint); }
@media(hover:hover) and (pointer:fine) {
  .lp .button:not(:disabled):hover,.lp .social-links a:hover {
    border-color:#96f2cd99;
    background-color:#222b28;
    box-shadow:inset 0 0 12px #96f2cd06;
  }
  .lp .text-link:hover,.lp .site-footer a:hover { color:var(--mint); }
}
@media(min-width:700px) {
  .lp .hero { padding-top:52px; }
  .lp .logo-plate { padding:20px 20px 24px; }
  .lp .pv-section { padding-block:32px 48px; }
  .lp .summon-layout { gap:clamp(40px,6vw,80px); }
  .lp .monster-grid { grid-template-rows:none; gap:20px 16px; }
  .lp .monster-grid li:nth-child(n) { min-height:184px; }
  .lp .game-card,.lp .game-card.shooting { padding:32px; }
  .lp .game-card .screenshot { height:520px; }
  .lp .game-card>p { min-height:56px; }
  .lp .creator-card { padding:48px 56px; }
  .lp .creator-bio { font-size:15px; }
}
@media(min-width:1100px) {
  .lp .monster-grid li:nth-child(n) { min-height:206px; }
  .lp .monster-grid li.album-monster:nth-child(6n+1) img { width:160px; height:160px; }
}
@media(max-width:380px) {
  .lp .creator-card { padding:28px 18px; }
  .lp .game-card,.lp .game-card.shooting { padding:24px 14px; }
}
@media(prefers-reduced-motion:reduce) {
  .lp *, .lp *::before, .lp *::after { animation:none!important; transition:none!important; }
}

/* BATTLE guide entry */
.battle-guide-link{display:inline-flex;align-items:center;gap:12px;margin-top:22px;padding-block:12px;font-size:14px;min-height:44px}

/* Matching, prominent guide entrances. */
.game-card.battle,.game-card.shooting{display:flex;flex-direction:column}
.game-card .game-guide-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:auto;padding:16px 20px;min-height:56px;border:1px solid #ab98d5;background:#282638;color:#f1eaff;font:700 15px/1.5 system-ui,sans-serif;text-decoration:none;box-sizing:border-box;flex:0 0 auto;transition:background .15s,border-color .15s}.game-card .shooting-guide-link{border-color:#c8b977;background:#302e22;color:#fff0bb}.game-card .game-guide-button:hover{background:#373149;border-color:#d6c4ff}.game-card .shooting-guide-link:hover{background:#403b28;border-color:#ffe7a0}.game-guide-button:focus-visible{outline:2px solid currentColor;outline-offset:4px}@media(prefers-reduced-motion:reduce){.game-card .game-guide-button{transition:none}}

/* Release CTA: launch-button. One button beneath the existing title logo. */
.lp .logo-plate::before,.lp .logo-plate::after {
  content:""; position:absolute; width:18px; height:18px; pointer-events:none;
  border-color:#ffe58b; border-style:solid;
}
.lp .logo-plate::before { top:-1px; left:-1px; border-width:3px 0 0 3px; }
.lp .logo-plate::after { bottom:-1px; right:-1px; border-width:0 3px 3px 0; }
.lp .logo-plate > .play-button { margin-top:22px; width:100%; }
.lp .button.launch-button {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:66px; padding:16px 22px; box-sizing:border-box;
  color:#18221c; border:1px solid #fff0b0; border-radius:1px; text-decoration:none;
  background:#f1d876; box-shadow:inset 0 1px 0 #fff5c780,0 3px 0 #9b7936;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.lp .launch-button .launch-title {
  font:900 clamp(22px,5.8vw,32px)/1.1 Arial,"Helvetica Neue",sans-serif;
  font-kerning:normal; font-feature-settings:"kern" 1; letter-spacing:0; word-spacing:.04em;
}
.lp .launch-button .launch-icon { font:16px/1 sans-serif; }
.lp .launch-button .launch-arrow { font:24px/1 sans-serif; }
.lp .launch-button:focus-visible { outline:3px solid #9aebcd; outline-offset:6px; }
@media(hover:hover) {
  .lp .button.launch-button:hover { color:#18221c; border-color:#fff0b0; background:#ffe99a; transform:translateY(-2px); box-shadow:0 5px 0 #9b7936; }
}
.lp .button.launch-button:active { background:#e8ca61; border-color:#fff0b0; transform:translateY(2px); box-shadow:0 1px 0 #9b7936; }
@media(max-width:380px) {
  .lp .button.launch-button { min-height:58px; padding:14px 12px; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .lp .button.launch-button { transition:none; }
  .lp .button.launch-button:hover,.lp .button.launch-button:active { transform:none; }
}
