
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;600;800&family=Zen+Kaku+Gothic+New:wght@400;600;700&display=swap');

:root{
  --bg:#0e1213;
  --fg:#eaf0f2;
  --muted:#a9b6ba;
  --accent:#5cb8b2;    /* keep */
  --accent-2:#b5e2da;
  --card:#141a1c;
  --border:#20282b;
  --overlay:rgba(4,8,10,.6);
  --shadow:0 10px 24px rgba(0,0,0,.28);
  --radius:16px;
}

html {
  scroll-behavior: smooth;
}

*{box-sizing:border-box}
html,body{height:100%}
body.site{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:'Zen Kaku Gothic New',system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;
  line-height:1.7
}
h1,h2,h3{
  font-family:'M PLUS Rounded 1c',sans-serif;
  line-height:1.25;margin:0 0 .5em
}
h1{font-size:clamp(28px,4vw,40px)} h2{font-size:clamp(22px,2.6vw,30px)} h3{font-size:clamp(18px,2vw,22px)}
a{
  color:var(--accent);
  text-decoration:none;
  transition:opacity .15s ease,color .2s ease
} 
a:hover{
  opacity:.92;
  text-decoration:underline
}
p{margin:.4em 0 1em}

.contain{max-width:1400px;margin:0 auto;padding:0 16px}
.section{padding:48px 0;border-top:1px solid var(--border)} .section.muted{background:#0f1416}

.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(14,18,19,.78);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:0.6px solid var(--border)
}

.site-header .contain{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 24px 2px 24px 8px;
}
.brand img{
  display:block;
  height: 16px;       /* 目安: 22〜26pxで微調整 */
  width: auto;
}
.nav ul{
  display:flex;
  gap:4px;
  list-style:none;
  margin:0;
  padding:0
}
.nav li{ list-style:none; }            /* ← これで弾丸表示の保険 */

.nav a{
  display:inline-flex;align-items:center;justify-content:center;
  padding-bottom: 6px;border-radius:6px;
  height: 56px;
  width: 140px;
  line-height:1;                /* テキスト基準の高さぶれ防止 */
  background-image: linear-gradient(currentColor, currentColor);
  background-position: left 90%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background .3s ease, transform .3s ease, box-shadow .3s ease, opacity .3s ease, backdrop-filter .3s ease;
  will-change: transform, background;
  transform: translate3d(0,0,0);/* レイヤー化して微小移動を見やすく */
  text-decoration:none;
  }

.nav a:hover{
  background-color: rgba(92,184,178,.08);
  backdrop-filter: blur(6px) saturate(120%);
  background-size: 100% 1px;
  transform: translate3d(0,-0.6px,0);   /* ← scale 削除 */
  opacity: .96;
}

/* キーボード操作でも気持ちよく（アクセシビリティ） */
.nav a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:12px;
}

/* ハンバーガーの見た目 */
.nav-toggle{
  display:none;
  width:40px;height:40px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(92,184,178,.08);
  align-items:center;justify-content:center;
  gap:4px;padding:8px;cursor:pointer;
  margin-right: 20px;
}
.nav-toggle .bar{ display:block; width:18px; height:2px; background:var(--fg); }

/* スマホ：メニューをオーバーレイで展開 */
@media (max-width: 960px){
  .nav-toggle{ display:inline-flex; }
  .nav{
    position:fixed;
    top: calc(var(--header-h, 56px));
    left:0; right:0;
    background: rgba(14,18,19,.95);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--border);
    transform: translateY(-120%);
    transition: transform .25s ease;
    z-index: 100;                 /* ヒーローより手前 */
  }
  .nav.open{ transform: translateY(0); }

  .nav ul{
    display:grid; gap:8px;
    margin:12px; padding:8px;
  }
  .nav a{
    width:100%;
    padding:12px;
    border-radius:10px;
    background:rgba(92,184,178,.06);
    background-size:0 0;          /* 下線アニメを無効化して視認性優先 */
    transform:none;               /* テキストにじみ防止 */
  }
}

/* 横スクロール防止（保険） */
html, body { overflow-x: hidden; }

/* HERO */
.hero{
  position: relative;
  border-bottom: 1px solid var(--border);
  display: grid;
  place-items: center;
  overflow: hidden; /* 念のため保険 */
  text-align: center;
}

/* 画像フレーム：PCは幅1400・縦横比16:9、SPは幅360に切替 */
.hero-bg{
  position: relative;
  width: min(100vw,1400px);
  aspect-ratio: 16 / 9;       /* 縦幅を固定 */
  overflow: hidden;           /* はみ出しは隠す（上下トリミングOK） */
  margin-inline: auto;        /* 中央寄せ */

}

/* 画像はフレームにフィットさせ、上下が必要ならトリミング */
.hero-bg img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* 半透明の黒オーバーレイ（色は元画像のまま・暗く見せる） */
.hero-bg::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.72); /* 濃さはお好みで 0.35〜0.6 */
  pointer-events: none;
}

/* ヒーロー内の要素（ロゴ/テキスト/SNS）をフレーム中央に重ねる */
/* 既存の .hero-inner を差し替え */
.hero-inner{
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  transform: translateX(-50%); /* 横中央に固定 */
  width: 1400px;               /* フレーム幅と一致 */
  display: flex;
  flex-direction: column;     /* 縦に並べる */
  justify-content: center;    /* 縦方向の基準位置（center/ flex-start / flex-end） */
  align-items: center;        /* 横中央揃え */
  gap: 10px;
  padding-top: 40px;          /* ←これを増やすと全体を下げられる */
  padding-bottom: 40px;       /* 下方向にもマージン調整可能 */
  z-index: 1;
}
@media (max-width: 480px){
  .hero-inner{ width: 360px; }  /* SP基準幅に一致 */
}

/* ロゴはフレーム幅に対する比率＋上限で制御（vwではなく%基準） */
.hero-logo{
  width: clamp(160px, 16%, 380px);  /* 最小/比率/最大 */
  height: auto;
  filter: drop-shadow(0 18px 24px rgba(0,0,0,1));
}

  .hero-tagline{
    opacity: .5;
  }

/* 念のため：ロゴが異常に拡大されるのを防ぐ */
.hero-inner img.hero-logo{ max-width: 100%; }


/* 下への誘導矢印はフレームの底に配置（画面が縦に広くても余白が出ない） */
/* ボタンを前面に出す */
.scroll-down{
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--overlay);
  color: var(--accent);
  display: grid; place-items: center;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: transform .18s ease, opacity .18s ease;
  z-index: 3; 
}

/* 積層整理 */
.hero-bg{ z-index: 0; }
.hero-inner{ z-index: 1; } 
.scroll-down:hover{ transform: translateX(-50%) translateY(-2px); opacity: .95; }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
.scroll-down svg{ animation: floaty 1.6s ease-in-out infinite; }

/* === SP(～600px)だけ：ヒーローを全画面＆要素を小さく === */
@media (max-width: 600px){

  /* 背景：縦いっぱい（デバイスUIを考慮してsvh採用） */
  .hero-bg {
    width: 100vw;
    height: auto;
    aspect-ratio: auto; /* 元の16:9縦幅制限を解除 */
    margin-inline: 0;
  }
  .hero-bg img{
    width: 100%;
    height: 100%;
    object-fit: cover;      /* 画面いっぱいに表示（必要なら上下少しトリミング） */
    object-position: center;
  }

  /* 中央の要素を縮小 */
  .hero-inner {
    width: 100%;
    padding-top: 20px;
    padding-bottom: 40px;
    gap: 6px;
  }

  /* ロゴを小さく */
  .hero-logo{
    width: clamp(120px, 32vw, 200px);
    filter: drop-shadow(0 12px 20px rgba(0,0,0,.8));
  }

  /* 説明テキストを小さく */
  .hero-tagline{
    font-size: 12px;      /* 好みで 12–14px に調整 */
    line-height: 1.6;
  }

}

/* Buttons / chips */
.btn{
  background:var(--accent);
  color:#0b0c0f;border:none;
  padding:8px 18px 12px;
  border-radius:12px;
  font-weight:700;
  cursor:pointer;
  transition:transform .08s ease,opacity .15s ease
}
.btn:hover{opacity:.95;transform:translateY(-1px)}
.btn.ghost{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.btn.small{padding:8px 12px;border-radius:10px;font-weight:600}
.chip{background:transparent;border:1px solid var(--border);color:var(--fg);border-radius:999px;padding:6px 12px;cursor:pointer}
.chip.active,.chip:hover{border-color:var(--accent);color:var(--accent)}

/* ===== Works CTA ===== */
.work-ctas{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:16px;
  margin-top:14px;
}

.work-cta{
  position:relative;
  display:block;
  height:200px;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background: linear-gradient( to bottom right, rgba(92,184,178,.08), rgba(92,184,178,.04) );
  box-shadow: var(--shadow);
  isolation:isolate;
  /* transform は削除 */
  transition: border-color .2s ease; /* ← ボタン枠色のみ変化 */
}
.work-cta:hover{
  /* transform 削除 */
  border-color:#5cb8b2;
  border-width: 2px;
}

/* 背景画像（高めの透明度＝薄く見せる） */
.work-cta::before{
  content:"";
  position:absolute; inset:0;
  background: var(--cta-image) center/cover no-repeat;
  opacity:.22;                       /* 透明度高め（=薄め） */
  transform: scale(1);               /* 初期 */
  filter: none;
  transition: transform .6s ease, filter .6s ease, opacity .3s ease;
  z-index:-1;
}

/* タイトル（中央） */
.work-cta__title{
  position:absolute; inset:auto 0 0 0;
  margin:auto; top:0; bottom:0;      /* 完全中央寄せ */
  height:fit-content; width:100%;
  display:grid; place-items:center;
  font: 700 clamp(18px, 2.2vw, 24px) 'M PLUS Rounded 1c', sans-serif;
  color: var(--fg);
  text-shadow: 0 2px 8px rgba(0,0,0,.5);
  letter-spacing:.5px;
}

/* ホバー：画像をぼかし＋ズーム（はみ出さない） */
.work-cta:hover::before{
  transform: scale(1.08);
  filter: blur(2px);
  opacity:.28;
}

/* フォーカスリング（アクセシビリティ） */
.work-cta:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius:16px;
}

/* 各CTAの背景画像指定（お好みの画像に差し替えてOK） */
.work-cta.is-illust{ --cta-image: url("/images/illust/ivent_10ほうきレース.png"); }
.work-cta.is-gamebook{ --cta-image: url("/images/gamebook/IMGP4881.JPG"); }

/* レスポンシブ：SPは縦1列に積む */
@media (max-width: 700px){
  .work-ctas{ grid-template-columns: 1fr; }
  .work-cta{ height:200px; }         /* 200pxのまま。必要なら数値調整OK */
}

/* Cards & grids */
.grid{display:grid;gap:20px}
.cards{grid-template-columns:repeat(3,1fr)}
@media (max-width:1400px){ .cards{grid-template-columns:repeat(3,1fr)} }
@media (max-width:768px){ .cards{grid-template-columns:repeat(2,1fr)} }
@media (max-width:420px){ .cards{grid-template-columns:repeat(2,1fr)} }

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(0,0,0,.32);border-color:#253037}
.card img{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:10px;border:1px solid var(--border)}

/* Profile compact */
.profile .profile-min{
  display:flex;
  gap:24px;
  align-items:center
}
.profile .avatar{
  width:80px;
  height:80px;
  border-radius:50%;
  border:2px solid var(--border);
  margin-top: -16px;
}

/* News list & modal */
.news-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.news-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:12px 0}
.news-title{font-weight:600}
.more{margin-top:12px}

.modal[aria-hidden="true"]{display:none}
.modal[aria-hidden="false"]{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;padding:16px;z-index:100}
.dialog{background:#0f1416;border:1px solid var(--border);border-radius:16px;max-width:720px;width:min(92vw,720px);max-height:86vh;overflow:auto;padding:18px;box-shadow:var(--shadow)}
.dialog .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}

/* Tabs */
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tabs [role="tab"]{background:transparent;border:1px solid var(--border);color:var(--fg);border-radius:10px;padding:8px 12px;cursor:pointer}
.tabs [aria-selected="true"]{border-color:var(--accent);color:var(--accent)}

/* Forms */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:600px){ .grid-2{grid-template-columns:1fr} }
input,textarea{width:100%;background:#0f1115;color:var(--fg);border:1px solid var(--border);border-radius:12px;padding:10px}
label{font-size:.95rem;color:var(--muted)}
.hidden{display:none}

/* Social icons */
.social-links {
  display: flex;
  gap: 14px;            /* アイコンの間隔 */
  justify-content: center;
  align-items: center;
}
.social-links a{display:inline-flex;
  align-items:center;
  justify-content:center;
  transition: transform 0.2s ease, opacity 0.2s ease;
  width:40px;height:40px;border-radius:10px;
  background:rgba(92,184,178,.08);
  border:1px solid var(--border)}

.social-links img{
  width:22px;height:22px;
  display:block;
  filter:grayscale(6%)}

.social-links a:hover {
  transform: scale(1.08);
  opacity: 0.9;
}

/* 個別のアイコンサイズ（必要に応じて調整） */
.social-links .icon-x img {
  width: 22px;
  height: 22px;
}
.social-links .icon-youtube img {
  width: 26px;
  height: 26px;
}
.social-links .icon-skeb img {
  width: 28px;
  height: 28px;
}

/* 全ての画像に右クリック・ドラッグ防止を適用 */
img {
  -webkit-user-drag: none;
  user-select: none;
  pointer-events: none;
}

/* プロテクトを外したい画像はこのクラスを付与 */
.no-protect {
  pointer-events: auto;
  -webkit-user-drag: auto;
}

.captcha { 
  margin: 8px 0 14px;
  min-height: 78px; 
} /* v2 checkboxの高さ確保 */