/* ============================================================
   🎨 カラーテーマ（ここの色を変えるだけで全体の印象が変わります）
   ============================================================ */
:root{
  --pink:   #ff4d8d;
  --purple: #8b5cff;
  --blue:   #33bbff;
  --yellow: #ffd23f;
  --mint:   #2ee6b6;
  --ink:    #1b1032;   /* 文字の濃い色 */
  --ink-soft:#5b5175;
  --bg:     #fff8fb;   /* 背景 */
  --card:   #ffffff;
  --radius: 24px;
  --shadow: 0 18px 40px rgba(139,92,255,.18);
  --shadow-sm: 0 8px 20px rgba(27,16,50,.10);
  --grad-main: linear-gradient(120deg, var(--pink), var(--purple) 55%, var(--blue));
  --grad-warm: linear-gradient(120deg, var(--yellow), var(--pink));
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"M PLUS Rounded 1c","Poppins",system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-tap-highlight-color:transparent;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
section{position:relative}
section[id]{scroll-margin-top:84px} /* 固定ナビの分だけアンカー位置を調整 */

/* 見出し系ユーティリティ */
.wrap{width:min(1120px,92vw);margin-inline:auto}
.eyebrow{
  display:inline-block;font-weight:800;letter-spacing:.14em;
  font-size:.8rem;text-transform:uppercase;
  padding:.4em 1em;border-radius:999px;color:#fff;
  background:var(--grad-main);box-shadow:var(--shadow-sm);
}
.section-title{
  font-family:"Poppins",sans-serif;
  font-size:clamp(1.9rem,4.5vw,3rem);
  font-weight:800;line-height:1.15;margin:.5rem 0 .3rem;
}
.section-sub{color:var(--ink-soft);font-size:1.02rem;max-width:44ch}
.center{text-align:center}
.center .section-sub{margin-inline:auto}

/* ============================================================
   ナビゲーション
   ============================================================ */
header.nav{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(12px);
  background:rgba(255,248,251,.75);
  border-bottom:1px solid rgba(139,92,255,.12);
  transition:box-shadow .3s;
}
header.nav.scrolled{box-shadow:0 8px 30px rgba(27,16,50,.08)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:70px}
.logo{display:flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.2rem}
.logo .dot{
  width:34px;height:34px;border-radius:12px;background:var(--grad-main);
  display:grid;place-items:center;color:#fff;font-family:"Poppins";
  transform:rotate(-8deg);box-shadow:var(--shadow-sm);transition:transform .3s;
}
.logo:hover .dot{transform:rotate(8deg) scale(1.1)}
.nav-right{display:flex;align-items:center;gap:.5rem}
.nav-links{display:flex;gap:.4rem;align-items:center}
.nav-links a{
  font-weight:700;padding:.5rem .9rem;border-radius:999px;font-size:.95rem;
  transition:.2s;color:var(--ink-soft);
}
.nav-links a:hover,.nav-links a.active{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}
.nav-cta{background:var(--ink)!important;color:#fff!important}
.nav-cta:hover{transform:translateY(-2px)}
/* 言語切替ボタン */
.langbtn{
  font-family:"Poppins",sans-serif;font-weight:800;font-size:.82rem;
  padding:.5rem .9rem;border-radius:999px;cursor:pointer;
  border:2px solid rgba(139,92,255,.25);background:#fff;color:var(--purple);
  display:inline-flex;align-items:center;gap:.35rem;transition:.2s;white-space:nowrap;
}
.langbtn::before{content:"🌐";font-size:.9em}
.langbtn:hover{border-color:var(--purple);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.langbtn:active{transform:scale(.95)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:26px;height:3px;background:var(--ink);border-radius:9px;transition:.3s}

/* ============================================================
   ヒーロー
   ============================================================ */
.hero{padding:clamp(3rem,8vw,6rem) 0 5rem;text-align:center;overflow:hidden}
.hero .badge{margin-bottom:1.2rem}
.hero h1{
  font-family:"Poppins",sans-serif;font-weight:800;
  font-size:clamp(2.4rem,8vw,5.2rem);line-height:1.05;letter-spacing:-.02em;
}
/* 動くグラデーション文字 */
.hero h1 .grad{
  background:linear-gradient(120deg,var(--pink),var(--purple) 30%,var(--blue) 55%,var(--purple) 80%,var(--pink));
  background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:gradShift 7s linear infinite;
}
@keyframes gradShift{to{background-position:250% 0}}

/* ヒーローの登場アニメ（順番にふわっと出る） */
.hero .eyebrow,.hero h1,.hero .lead,.hero .btn-row,.hero .scroll-cue{
  opacity:0;animation:heroUp .85s cubic-bezier(.22,.9,.3,1.08) forwards;
}
.hero .eyebrow{animation-delay:.05s}
.hero h1{animation-delay:.18s}
.hero .lead{animation-delay:.34s}
.hero .btn-row{animation-delay:.5s}
.hero .scroll-cue{animation-delay:.85s}
@keyframes heroUp{
  from{opacity:0;transform:translateY(28px) scale(.98)}
  to{opacity:1;transform:none}
}

.hero p.lead{
  margin:1.4rem auto 2.2rem;max-width:52ch;font-size:clamp(1rem,2.5vw,1.2rem);
  color:var(--ink-soft);
}
.btn-row{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
.btn{
  font-weight:800;padding:.95rem 1.7rem;border-radius:999px;font-size:1rem;
  transition:transform .2s, box-shadow .2s;cursor:pointer;border:0;
  display:inline-flex;align-items:center;gap:.5rem;
  position:relative;overflow:hidden;
}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--grad-main);color:#fff;box-shadow:var(--shadow)}
.btn-ghost{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}
@media(hover:hover){
  .btn-primary:hover,.btn-ghost:hover{transform:translateY(-3px)}
  /* ボタンにキラッと光が走る */
  .btn-primary::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.45) 50%,transparent 60%);
    transform:translateX(-130%);
  }
  .btn-primary:hover::after{transform:translateX(130%);transition:transform .6s ease}
}

/* ふわふわ動く背景の丸 */
.blob{position:absolute;border-radius:50%;filter:blur(6px);opacity:.55;z-index:-1;
  animation:float 9s ease-in-out infinite}
.blob.b1{width:230px;height:230px;background:var(--pink);top:6%;left:-4%}
.blob.b2{width:180px;height:180px;background:var(--blue);top:12%;right:-3%;animation-delay:-2s}
.blob.b3{width:150px;height:150px;background:var(--yellow);bottom:2%;left:12%;animation-delay:-4s}
.blob.b4{width:120px;height:120px;background:var(--mint);bottom:14%;right:14%;animation-delay:-6s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-28px) scale(1.06)}}

.scroll-cue{margin-top:3rem;font-size:.85rem;color:var(--ink-soft);font-weight:700;letter-spacing:.1em}
.scroll-cue::after{content:"";display:block;width:2px;height:34px;margin:.6rem auto 0;
  background:linear-gradient(var(--purple),transparent);border-radius:9px;animation:down 1.6s infinite}
@keyframes down{0%{transform:translateY(-6px);opacity:0}40%{opacity:1}100%{transform:translateY(10px);opacity:0}}

/* ============================================================
   実績カウンター
   ============================================================ */
.stats{padding:1rem 0 4rem}
.stats-grid{display:flex;justify-content:center}
.stat{
  background:var(--card);border-radius:var(--radius);padding:2.2rem 3.5rem;text-align:center;
  box-shadow:var(--shadow-sm);border:2px solid rgba(139,92,255,.06);min-width:min(420px,90vw);
}
.stat .num{font-family:"Poppins";font-weight:800;font-size:clamp(1.8rem,5vw,2.8rem);
  background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .num.bam{animation:bam .45s cubic-bezier(.3,1.6,.4,1)}
@keyframes bam{50%{transform:scale(1.12)}}
.stat .lbl{font-weight:700;color:var(--ink-soft);font-size:.9rem;margin-top:.2rem}

/* ============================================================
   流れるテロップ（ティッカー）
   ============================================================ */
.ticker{
  overflow:hidden;background:var(--ink);
  transform:rotate(-1.2deg);width:104vw;margin:.5rem -2vw 0;
  padding:.85rem 0;box-shadow:var(--shadow-sm);
}
.ticker-track{display:flex;width:max-content;animation:scrollX 26s linear infinite}
.tgroup{display:flex;align-items:center;gap:2.2rem;padding-right:2.2rem;white-space:nowrap}
.tgroup b{font-family:"Poppins";font-weight:800;letter-spacing:.06em;color:#fff;font-size:.95rem}
.tgroup i{font-style:normal;font-size:.9rem}
.tgroup i:nth-of-type(4n+1){color:var(--pink)}
.tgroup i:nth-of-type(4n+2){color:var(--yellow)}
.tgroup i:nth-of-type(4n+3){color:var(--blue)}
.tgroup i:nth-of-type(4n){color:var(--mint)}
@keyframes scrollX{to{transform:translateX(-50%)}}

/* ============================================================
   共通セクション余白
   ============================================================ */
.block{padding:clamp(3.5rem,8vw,6rem) 0}
.block.alt{background:
  radial-gradient(1200px 400px at 100% 0%, rgba(51,187,255,.08), transparent),
  radial-gradient(1000px 400px at 0% 100%, rgba(255,77,141,.08), transparent),
  #fffdff;
}

/* ============================================================
   ゲームカード
   ============================================================ */
.games-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.6rem}
.game{
  background:var(--card);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .25s, box-shadow .25s;
  border:2px solid rgba(139,92,255,.06);display:flex;flex-direction:column;
}
.game[data-href]{cursor:pointer}      /* カード全体を押せる */
.game:active{transform:scale(.98)}
.game .thumb{
  aspect-ratio:16/10;position:relative;display:grid;place-items:center;
  color:#fff;font-family:"Poppins";font-weight:800;font-size:1.3rem;letter-spacing:.02em;
  overflow:hidden;
}
/* サムネの色違い（画像を入れる場合は下の <img> を使ってください） */
.thumb.g1{background:linear-gradient(135deg,#ff4d8d,#8b5cff)}
.thumb.g2{background:linear-gradient(135deg,#33bbff,#2ee6b6)}
.thumb.g3{background:linear-gradient(135deg,#ffd23f,#ff4d8d)}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
@media(hover:hover){
  .game:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:var(--shadow)}
  .game:hover .thumb img{transform:scale(1.07)}
  /* サムネに光が走る */
  .thumb::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.32) 50%,transparent 60%);
    transform:translateX(-130%);
  }
  .game:hover .thumb::after{transform:translateX(130%);transition:transform .7s ease}
}
.plays-badge{
  position:absolute;top:12px;left:12px;z-index:2;
  background:rgba(27,16,50,.72);backdrop-filter:blur(4px);
  color:#fff;font-weight:800;font-size:.82rem;letter-spacing:.02em;
  padding:.4em .85em;border-radius:999px;display:inline-flex;align-items:center;gap:.3rem;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
/* バッジがポンッと登場 */
.game.in .plays-badge{animation:popIn .5s cubic-bezier(.3,1.6,.4,1) .45s both}
@keyframes popIn{from{opacity:0;transform:scale(.4) rotate(-8deg)}to{opacity:1;transform:none}}
.game .body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.game h3{font-size:1.25rem;font-weight:800}
.game p{color:var(--ink-soft);font-size:.95rem;flex:1}
.tags{display:flex;gap:.4rem;flex-wrap:wrap}
.tag{font-size:.72rem;font-weight:700;padding:.25em .8em;border-radius:999px;
  background:rgba(139,92,255,.1);color:var(--purple)}

/* Robloxで遊ぶボタン（カード内） */
.btn-play{
  align-self:flex-start;margin-top:.2rem;
  background:var(--grad-main);color:#fff;font-weight:800;font-size:.9rem;
  padding:.6rem 1.2rem;border-radius:999px;box-shadow:var(--shadow-sm);
  display:inline-flex;align-items:center;gap:.4rem;transition:transform .2s, box-shadow .2s;
  position:relative;z-index:3;
}
.btn-play::after{content:"↗";font-size:.9em}
@media(hover:hover){ .btn-play:hover{transform:translateY(-2px);box-shadow:var(--shadow)} }
.btn-play:active{transform:scale(.95)}

/* 詳細ページを見る、のヒント文字 */
.detail-hint{
  font-size:.82rem;font-weight:700;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.3rem;
}
.detail-hint::after{content:"→";transition:.2s}
.game:hover .detail-hint::after{transform:translateX(4px)}
.game:hover .detail-hint{color:var(--purple)}
.card-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.3rem;flex-wrap:wrap}

/* ============================================================
   スキル
   ============================================================ */
.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem;margin-top:2.6rem;max-width:760px;margin-inline:auto}
.skill{
  background:var(--card);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);
  border:2px solid rgba(139,92,255,.06);transition:transform .2s, border-color .2s;
}
@media(hover:hover){
  .skill:hover{transform:translateY(-6px);border-color:rgba(139,92,255,.35)}
  .skill:hover .ic{animation:wiggle .5s ease}
}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg) scale(1.1)}70%{transform:rotate(8deg) scale(1.08)}}
.skill .ic{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  font-size:1.6rem;margin-bottom:.8rem;background:var(--grad-warm);
}
.skill h3{font-size:1.15rem;font-weight:800;margin-bottom:.3rem}
.skill p{color:var(--ink-soft);font-size:.93rem}

/* ============================================================
   About
   ============================================================ */
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.5rem;align-items:center;margin-top:2.4rem}
.avatar-wrap{position:relative}
.avatar{
  aspect-ratio:1;border-radius:32px;background:var(--grad-main);box-shadow:var(--shadow);
  display:grid;place-items:center;color:#fff;font-family:"Poppins";font-weight:800;
  font-size:2.4rem;overflow:hidden;position:relative;
}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* まわりに浮かぶステッカー */
.sticker{
  position:absolute;font-size:clamp(1.6rem,4vw,2.2rem);z-index:2;
  filter:drop-shadow(0 6px 12px rgba(27,16,50,.25));
  animation:float 6s ease-in-out infinite;
}
.sticker.s1{top:-14px;left:-12px;animation-delay:-1s;transform:rotate(-12deg)}
.sticker.s2{top:18px;right:-14px;animation-delay:-3s}
.sticker.s3{bottom:-10px;left:22px;animation-delay:-5s;transform:rotate(10deg)}
.about-text h3{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:.6rem}
.about-text p{color:var(--ink-soft);margin-bottom:1rem}
.tools-label{font-weight:800;color:var(--ink);margin:.6rem 0 .2rem!important;font-size:.95rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.chip{background:#fff;box-shadow:var(--shadow-sm);border-radius:999px;padding:.4em 1em;font-weight:700;font-size:.85rem;
  transition:transform .2s, box-shadow .2s}
@media(hover:hover){
  .chip:hover{transform:translateY(-3px) rotate(-1.5deg);box-shadow:var(--shadow)}
}

/* ============================================================
   お問い合わせ / SNS
   ============================================================ */
.contact-card{
  background:var(--grad-main);border-radius:32px;padding:clamp(2.2rem,5vw,3.5rem);
  text-align:center;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
/* 背景にふわふわ浮かぶ白い丸 */
.contact-card::before,.contact-card::after{
  content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.12);
  animation:float 8s ease-in-out infinite;pointer-events:none;
}
.contact-card::before{width:190px;height:190px;top:-60px;left:-40px}
.contact-card::after{width:150px;height:150px;bottom:-50px;right:-30px;animation-delay:-4s}
.contact-card h2{font-family:"Poppins";font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;position:relative;z-index:1}
.contact-card p{opacity:.92;max-width:46ch;margin:.8rem auto 1.8rem;position:relative;z-index:1}
.social-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.social{
  background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.35);
  color:#fff;font-weight:800;padding:.8rem 1.5rem;border-radius:999px;
  backdrop-filter:blur(4px);transition:.2s;display:inline-flex;align-items:center;gap:.5rem;
}
.social:hover{background:#fff;color:var(--purple);transform:translateY(-3px)}
.social:active{transform:scale(.95)}

/* ============================================================
   フッター / トップに戻るボタン
   ============================================================ */
footer{padding:2.5rem 0;text-align:center;color:var(--ink-soft);font-size:.9rem}
.totop{
  position:fixed;right:16px;bottom:16px;z-index:60;width:48px;height:48px;border-radius:50%;
  background:var(--grad-main);color:#fff;font-size:1.25rem;display:grid;place-items:center;
  box-shadow:var(--shadow);border:0;cursor:pointer;
  opacity:0;pointer-events:none;transform:translateY(14px);transition:.3s;
}
.totop.show{opacity:1;pointer-events:auto;transform:none}
.totop:active{transform:scale(.9)}

/* ============================================================
   スクロール表示アニメ（アニメーション方式：ホバーと干渉しない）
   ============================================================ */
.reveal{opacity:0}
.reveal.in{
  opacity:1;
  animation:rise .75s cubic-bezier(.22,.9,.3,1.12) both;
  animation-delay:var(--d,0s);
}
@keyframes rise{
  from{opacity:0;transform:translateY(30px) scale(.97)}
  to{opacity:1;transform:none}
}

/* ============================================================
   ゲーム詳細ページ
   ============================================================ */
.detail{padding:clamp(2rem,5vw,3.5rem) 0 clamp(3rem,7vw,5rem)}
.back-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;color:var(--ink-soft);margin-bottom:1.6rem;transition:.2s}
.back-link::before{content:"←";transition:.2s}
.back-link:hover{color:var(--purple)}
.back-link:hover::before{transform:translateX(-4px)}
.detail-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
.detail-shot{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/10;position:relative}
.detail-shot img{width:100%;height:100%;object-fit:cover}
.detail-shot .plays-badge{animation:popIn .5s cubic-bezier(.3,1.6,.4,1) .2s both}
.detail-info h1{font-family:"Poppins",sans-serif;font-size:clamp(2rem,5vw,3.1rem);font-weight:800;line-height:1.1;margin:.5rem 0 .7rem}
.detail-info .lead{color:var(--ink-soft);font-size:1.05rem;margin-bottom:1.5rem}
.detail-info .tags{margin-bottom:1.3rem}
.detail-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.btn-roblox{
  background:var(--grad-main);color:#fff;font-weight:800;padding:.95rem 1.8rem;border-radius:999px;
  box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:.5rem;
  transition:transform .2s, box-shadow .2s;position:relative;overflow:hidden;
}
.btn-roblox::after{content:"↗"}
@media(hover:hover){ .btn-roblox:hover{transform:translateY(-3px)} }
.btn-roblox:active{transform:scale(.96)}

/* 特徴（読みやすい文章タイプ） */
.features{margin-top:clamp(2.5rem,6vw,4rem)}
.feature-text{max-width:680px;margin:1.8rem auto 0;font-size:1.06rem;line-height:2.05}
.feature-text .intro{color:var(--ink-soft);margin-bottom:1.8rem}
.feature-point{margin-bottom:1.5rem}
.feature-point:last-child{margin-bottom:0}
.feature-point h3{
  font-size:1.12rem;font-weight:800;color:var(--ink);margin-bottom:.15rem;
  display:flex;align-items:center;gap:.5rem;
}
.feature-point h3 .fic{font-size:1.25rem}
.feature-point p{color:var(--ink-soft)}

/* ============================================================
   レスポンシブ（スマホ対応）
   ============================================================ */
@media(max-width:900px){
  .games-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr}
  .avatar-wrap{max-width:340px;margin-inline:auto;width:100%}
  .detail-hero{grid-template-columns:1fr;gap:1.6rem}
}
@media(max-width:640px){
  .nav-links{
    position:fixed;inset:70px 0 auto 0;flex-direction:column;background:var(--bg);
    padding:1rem 6vw 1.6rem;gap:.3rem;box-shadow:var(--shadow);
    transform:translateY(-120%);transition:transform .3s;
  }
  .nav-links.open{transform:none}
  .nav-links a{padding:.8rem;border-radius:14px}
  .burger{display:flex}
  .games-grid{grid-template-columns:1fr}
  .skills-grid{gap:.8rem} /* スマホでも2×2をキープ */
  .skill{padding:1.2rem}
}

/* 動きを控えたい設定の人には静かに表示（アクセシビリティ） */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal,.hero .eyebrow,.hero h1,.hero .lead,.hero .btn-row,.hero .scroll-cue{opacity:1;animation:none}
}
