:root{
  --ichigo:#f7a8c9;      /* いちごシロップ */
  --ichigo-deep:#ec6ba0;
  --melon:#a6d95f;       /* メロン / 草 */
  --melon-deep:#5fa83e;
  --hawaii:#7cc9ec;      /* ブルーハワイ / 氷 */
  --hawaii-deep:#3f9fd4;
  --milk:#ffe6b8;        /* ミルク・きつね尻尾 */
  --dirt:#e2c49a;        /* 土（パステル） */
  --dirt-deep:#cba982;
  --cream:#fff8ef;
  --ink:#5b6b7a;         /* やわらかい墨 */
  --ink-deep:#41505f;
  --slate:#4a5a68;       /* ピクセル縁取り（黒の代わり） */
  --white:#ffffff;
  --shadow:rgba(96,140,180,.18);
  --font-disp:'Zen Maru Gothic', sans-serif;
  --font-body:'M PLUS Rounded 1c', sans-serif;
  --font-pixel:'DotGothic16', 'M PLUS Rounded 1c', sans-serif;
  --font-num:'Baloo 2', cursive;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:
    radial-gradient(120% 80% at 50% -10%, #eafaff 0%, transparent 60%),
    linear-gradient(180deg, #e7f6fb 0%, #fdf3f8 45%, #f3fbe9 100%);
  background-attachment:fixed;
  overflow-x:hidden;
  line-height:1.75;
}
::selection{background:var(--ichigo);color:#fff}
svg.pixel, img.pixel{image-rendering:pixelated;image-rendering:crisp-edges}

/* ===== 背景：泡＋ドット ===== */
.bubbles{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bubbles i{
  position:absolute;bottom:-60px;border-radius:50%;
  background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.9), rgba(180,225,245,.35));
  box-shadow:inset 0 0 8px rgba(255,255,255,.7);
  animation:rise linear infinite;
}
.bubbles i.sq{border-radius:3px;background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 2px rgba(180,225,245,.4)}
@keyframes rise{
  0%{transform:translateY(0) translateX(0) scale(.7) rotate(0);opacity:0}
  12%{opacity:.85}
  88%{opacity:.55}
  100%{transform:translateY(-115vh) translateX(40px) scale(1) rotate(90deg);opacity:0}
}

/* ===== 汎用 ===== */
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;position:relative;z-index:2}
section{position:relative;z-index:2}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

.kicker{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-pixel);font-weight:400;
  font-size:.8rem;letter-spacing:.14em;color:var(--hawaii-deep);
  background:#fff;padding:8px 18px;border-radius:4px;margin-bottom:22px;
  box-shadow:3px 3px 0 rgba(124,201,236,.35);border:2px solid #eaf6fc;
}
h2.sec-title{
  font-family:var(--font-disp);font-weight:900;
  font-size:clamp(1.9rem,5vw,3rem);color:var(--ink-deep);
  line-height:1.25;letter-spacing:.01em;position:relative;
}
h2.sec-title .accent{color:var(--ichigo-deep)}
.sec-head{text-align:center;margin-bottom:56px}
.sec-head p{margin-top:14px;color:var(--ink);opacity:.85;font-weight:500;text-wrap:pretty}

/* ===== マイクラ風ブロックボタン ===== */
.btn{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-disp);
  font-weight:700;font-size:1.02rem;padding:15px 30px;cursor:pointer;border:none;
  border-radius:6px;position:relative;transition:transform .08s, box-shadow .12s;
  box-shadow:0 6px 0 var(--btn-sh, #d68) , 0 12px 20px rgba(96,140,180,.28);
  border:3px solid rgba(255,255,255,.7);
}
.btn:active{transform:translateY(5px);box-shadow:0 1px 0 var(--btn-sh,#d68),0 4px 10px rgba(96,140,180,.28)}
.btn-main{background:linear-gradient(180deg,#ffc3da,var(--ichigo));color:#fff;--btn-sh:#d76fa0;text-shadow:0 1px 0 rgba(0,0,0,.12)}
.btn-melon{background:linear-gradient(180deg,#c2ea86,var(--melon));color:#3c5c23;--btn-sh:#7cae4d}
.btn-ice{background:linear-gradient(180deg,#aee2f6,var(--hawaii));color:#1e5a78;--btn-sh:#4fa6cf}
.btn-ghost{background:#fff;color:var(--hawaii-deep);--btn-sh:#cfe6f2;border-color:#eaf6fc}

/* ===== ヘッダー / メニューバー ===== */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 24px;background:rgba(255,255,255,.62);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:2px solid rgba(255,255,255,.75);transition:padding .3s, background .3s;
}
header.slim{padding:8px 24px;background:rgba(255,255,255,.85)}
header .brand{font-family:var(--font-disp);font-weight:900;color:var(--ichigo-deep);font-size:1.12rem;display:flex;align-items:center;gap:9px;text-decoration:none}
header .brand svg{width:26px;height:26px}
header nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
header nav a{color:var(--ink-deep);text-decoration:none;font-weight:700;font-size:.9rem;transition:color .2s}
header nav a:hover{color:var(--ichigo-deep)}
header nav a.current{color:var(--ichigo-deep)}
header .nav-cta{
  font-family:var(--font-disp);background:linear-gradient(180deg,#ffc3da,var(--ichigo));color:#fff;
  padding:8px 18px;border-radius:6px;box-shadow:0 4px 0 #d76fa0;border:2px solid rgba(255,255,255,.7)
}
header .nav-cta:hover{color:#fff;transform:translateY(-1px)}

.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:0;position:relative;z-index:51}
.nav-toggle span{display:block;width:100%;height:3px;border-radius:2px;background:var(--ink-deep);transition:transform .25s,opacity .25s}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media(max-width:760px){
  .nav-toggle{display:flex}
  header nav{
    position:fixed;top:0;right:0;height:100svh;width:min(78vw,320px);
    background:rgba(255,255,255,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;
    padding:96px 28px 28px;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);
    box-shadow:-8px 0 30px rgba(96,140,180,.2);
  }
  header nav.open{transform:translateX(0)}
  header nav a{font-size:1.05rem;padding:12px 0;width:100%;border-bottom:1px solid rgba(91,107,122,.12)}
  header nav a.nav-cta{margin-top:12px;text-align:center;border-bottom:none}
}

/* ===== ヒーロー ===== */
.hero{
  min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:120px 24px 96px;position:relative;
}
/* ピクセル雲 */
.clouds{position:absolute;inset:0;overflow:hidden;z-index:1;pointer-events:none}
.cloud{position:absolute;opacity:.9;animation:drift linear infinite}
.cloud svg{display:block}
@keyframes drift{from{transform:translateX(-30vw)}to{transform:translateX(130vw)}}
/* 浮遊ブロック */
.floaters{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.floaters .fb{position:absolute;animation:bob 5s ease-in-out infinite}
.floaters .fb svg{filter:drop-shadow(0 10px 12px rgba(120,160,200,.22))}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-20px) rotate(3deg)}}

/* ヒーロー背景キービジュアル（ChatGPT生成） */
.hero-kv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.62}
.hero-veil{position:absolute;inset:0;z-index:0;background:
  radial-gradient(ellipse 82% 62% at 50% 46%, rgba(255,255,255,.74), rgba(255,255,255,.34) 55%, rgba(255,255,255,0) 100%),
  linear-gradient(180deg, rgba(231,246,251,.5) 0%, rgba(255,255,255,0) 22%, rgba(255,255,255,0) 68%, rgba(243,251,233,.92) 100%)}
/* 生成画像ショーケース */
.showcase{display:flex;justify-content:center;padding:10px 24px 0}
.showcase figure{margin:0;max-width:680px;width:100%;background:#fff;padding:10px;border:4px solid var(--slate);border-radius:18px;box-shadow:0 13px 0 rgba(74,90,104,.12),0 24px 48px var(--shadow);transform:rotate(-1.2deg);transition:transform .3s}
.showcase figure:hover{transform:rotate(0deg) scale(1.01)}
.showcase.r figure{transform:rotate(1.2deg)}
.showcase.r figure:hover{transform:rotate(0deg) scale(1.01)}
.showcase img{display:block;width:100%;border-radius:10px}
.hero-logo{
  width:min(560px,88vw);height:auto;position:relative;z-index:3;
  filter:drop-shadow(0 18px 30px rgba(120,160,200,.28));
  animation:floaty 6s ease-in-out infinite;
}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-14px) rotate(.4deg)}}
.logo-fallback{font-family:var(--font-disp);font-weight:900;font-size:clamp(3rem,12vw,6.5rem);line-height:1;position:relative;z-index:3;
  background:linear-gradient(120deg,var(--ichigo),var(--melon) 55%,var(--hawaii));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:3px #fff;paint-order:stroke fill}

.hero-tag{margin-top:30px;font-family:var(--font-disp);font-weight:700;font-size:clamp(1.05rem,3vw,1.5rem);color:var(--ink-deep);position:relative;z-index:3}
.hero-tag .hl{background:linear-gradient(transparent 62%, #fff2b3 62%);padding:0 4px}
.hero-sub{margin-top:12px;color:var(--ink);opacity:.9;font-weight:500;position:relative;z-index:3;max-width:580px;text-wrap:pretty}

/* カウントダウン */
.countdown{margin-top:30px;position:relative;z-index:3}
.cd-label{font-family:var(--font-pixel);font-size:.8rem;letter-spacing:.12em;color:var(--ichigo-deep);margin-bottom:10px}
.cd-boxes{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cd-box{background:#fff;border:3px solid var(--slate);border-radius:8px;min-width:74px;padding:10px 6px;box-shadow:0 6px 0 rgba(74,90,104,.18)}
.cd-box b{font-family:var(--font-num);font-weight:800;font-size:2rem;color:var(--ink-deep);display:block;line-height:1}
.cd-box span{font-family:var(--font-pixel);font-size:.65rem;color:var(--hawaii-deep);letter-spacing:.08em}

.cta-row{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;position:relative;z-index:3}

/* ホットバー */
.hotbar{margin-top:34px;display:inline-flex;gap:6px;background:rgba(74,90,104,.14);padding:7px;border-radius:8px;position:relative;z-index:3;box-shadow:0 8px 22px var(--shadow)}
.slot{width:46px;height:46px;background:rgba(255,255,255,.85);border:3px solid #fff;border-radius:5px;box-shadow:inset 2px 2px 0 rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center}
.slot svg{width:30px;height:30px}
.slot.sel{border-color:var(--milk);box-shadow:0 0 0 3px var(--milk),inset 2px 2px 0 rgba(0,0,0,.05)}
@media(max-width:520px){.hotbar{flex-wrap:wrap;justify-content:center;max-width:280px}}

.scroll-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:3;color:var(--hawaii-deep);font-family:var(--font-pixel);font-size:.75rem;animation:bob2 1.8s ease-in-out infinite}
@keyframes bob2{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* ===== 草ブロックの区切り ===== */
.grass-strip{height:26px;width:100%;position:relative;z-index:2;
  background:
    repeating-linear-gradient(90deg,var(--melon) 0 12px,#96cd50 12px 24px) top/100% 9px no-repeat,
    repeating-linear-gradient(90deg,var(--dirt) 0 12px,var(--dirt-deep) 12px 24px) bottom/100% 17px no-repeat;
  image-rendering:pixelated;box-shadow:0 6px 14px rgba(96,140,180,.12)}

.band{padding:92px 0}

/* ===== 概要カード（ブロック） ===== */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}
.bcard{
  background:var(--white);border-radius:14px;padding:30px 26px;position:relative;overflow:hidden;
  border:3px solid #fff;box-shadow:8px 8px 0 var(--bc,#e8f6ff), 0 16px 34px var(--shadow);
  transition:transform .25s, box-shadow .25s;
}
.bcard:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--bc,#e8f6ff),0 22px 44px rgba(96,140,180,.24)}
.bcard .ico{width:52px;height:52px;margin-bottom:14px}
.bcard h3{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.24rem;margin-bottom:8px}
.bcard p{font-weight:500;font-size:.95rem}
.bc-pink{--bc:#ffe1ee}.bc-melon{--bc:#e9f7d0}.bc-blue{--bc:#dff2fb}.bc-milk{--bc:#fff0d6}

/* ===== 遊べる企画 ===== */
.play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.play{background:#fff;border:3px solid #fff;border-radius:12px;padding:24px;text-align:center;box-shadow:0 14px 30px var(--shadow);transition:transform .25s}
.play:hover{transform:translateY(-6px)}
.play .cube-wrap{width:64px;height:64px;margin:0 auto 12px}
.play h4{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.1rem;margin-bottom:6px}
.play p{font-weight:500;font-size:.9rem}
.note-img{text-align:center;margin-top:26px;font-family:var(--font-pixel);font-size:.78rem;color:var(--ink);opacity:.7}

/* ===== スケジュール ===== */
.schedule{max-width:720px;margin:0 auto;position:relative}
.schedule::before{content:"";position:absolute;left:27px;top:14px;bottom:14px;width:6px;border-radius:6px;background:repeating-linear-gradient(var(--milk) 0 8px,#f4d79a 8px 16px)}
.step{display:flex;gap:22px;margin-bottom:26px;position:relative}
.step .torch{flex:none;width:58px;height:58px;background:#fff;border:3px solid var(--slate);border-radius:10px;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 6px 0 rgba(74,90,104,.16)}
.step .torch svg{width:30px;height:38px}
.step .body{background:#fff;border:3px solid #fff;border-radius:12px;padding:18px 22px;box-shadow:0 12px 26px var(--shadow);flex:1}
.step .body .when{font-family:var(--font-pixel);font-weight:400;color:var(--ichigo-deep);font-size:.95rem;letter-spacing:.04em}
.step .body h4{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.14rem;margin:2px 0 6px}
.step .body p{font-weight:500;font-size:.93rem;text-wrap:pretty}

/* ===== クラフト（参加条件） ===== */
.craft{background:linear-gradient(180deg,#fffdf8,#fff);border:4px solid var(--dirt);border-radius:18px;padding:38px;max-width:900px;margin:0 auto;box-shadow:0 20px 50px var(--shadow)}
.craft-title{text-align:center;font-family:var(--font-pixel);color:var(--dirt-deep);letter-spacing:.06em;margin-bottom:26px;font-size:.95rem}
.craft-board{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap}
.grid3{display:grid;grid-template-columns:repeat(3,72px);grid-template-rows:repeat(3,72px);gap:8px;background:var(--dirt-deep);padding:10px;border-radius:10px;box-shadow:inset 0 3px 8px rgba(0,0,0,.15)}
.cslot{background:#efe6d6;border-radius:6px;box-shadow:inset 2px 2px 0 rgba(0,0,0,.08),inset -2px -2px 0 rgba(255,255,255,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px}
.cslot svg{width:34px;height:34px}
.cslot .n{position:absolute}
.cslot small{font-family:var(--font-pixel);font-size:.5rem;color:var(--ink-deep);line-height:1.1;text-align:center}
.craft-arrow{font-family:var(--font-num);font-size:2.4rem;color:var(--dirt-deep);font-weight:800}
.result{width:110px;height:110px;background:#efe6d6;border-radius:10px;box-shadow:inset 2px 2px 0 rgba(0,0,0,.08),inset -2px -2px 0 rgba(255,255,255,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;position:relative}
.result svg{width:52px;height:52px}
.result b{font-family:var(--font-pixel);font-size:.56rem;color:var(--ichigo-deep);text-align:center;line-height:1.2}
.craft-legend{margin-top:28px;display:grid;gap:12px}
.craft-legend li{list-style:none;display:flex;gap:12px;align-items:flex-start;font-weight:600;color:var(--ink-deep);font-size:1rem}
.craft-legend li svg{width:26px;height:26px;flex:none;margin-top:2px}
.req-note{margin-top:24px;background:linear-gradient(135deg,#fff6e6,#fff);border-radius:12px;padding:16px 20px;font-weight:600;font-size:.93rem;border:2px dashed var(--milk)}
.req-note b{color:var(--ichigo-deep)}
@media(max-width:560px){.craft{padding:24px}.grid3{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px)}.craft-arrow{transform:rotate(90deg)}}

/* ===== 応募 CTA ===== */
.apply{text-align:center;color:#fff;border-radius:24px;padding:60px 34px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#ffb0d0 0%,#a6d95f 55%,#7cc9ec 100%);
  box-shadow:0 26px 60px rgba(120,160,200,.35);border:4px solid #fff}
.apply::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.4),transparent 42%),radial-gradient(circle at 85% 82%,rgba(255,255,255,.3),transparent 42%)}
.apply *{position:relative;z-index:1}
.apply h2{font-family:var(--font-disp);font-weight:900;font-size:clamp(1.8rem,5vw,2.7rem);text-shadow:0 3px 10px rgba(120,140,170,.3)}
.apply p{margin-top:12px;font-weight:600;font-size:1.05rem}
/* XPバー風締切 */
.xpbar{max-width:420px;margin:22px auto 0;background:rgba(0,0,0,.18);border:3px solid #fff;border-radius:8px;height:30px;position:relative;overflow:hidden}
.xpbar i{position:absolute;inset:0;width:var(--p,60%);background:repeating-linear-gradient(90deg,#c2ea86 0 10px,#a6d95f 10px 20px);box-shadow:0 0 12px rgba(255,255,255,.5)}
.xpbar span{position:relative;z-index:1;font-family:var(--font-pixel);font-size:.72rem;line-height:24px;color:#2f4d18;text-shadow:0 1px 0 rgba(255,255,255,.4)}
.apply .deadline{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:rgba(255,255,255,.92);color:var(--ichigo-deep);font-family:var(--font-disp);font-weight:900;padding:9px 24px;border-radius:8px;font-size:1.02rem;box-shadow:0 8px 0 rgba(0,0,0,.12)}
.apply .btn{margin-top:26px}

/* ===== 主催 ===== */
.host{display:flex;gap:40px;align-items:center;flex-wrap:wrap;justify-content:center}
.host .ava-frame{flex:none;padding:8px;background:#fff;border:4px solid var(--slate);border-radius:14px;box-shadow:0 12px 0 rgba(74,90,104,.15),0 20px 40px var(--shadow);transform:rotate(-2deg)}
.host .ava{width:150px;height:150px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--ichigo),var(--hawaii));display:flex;align-items:center;justify-content:center;font-size:4rem;color:#fff}
.host .ava img{width:100%;height:100%;object-fit:cover;display:block}
.host .info{max-width:440px}
.host .info .role{font-family:var(--font-pixel);font-weight:400;color:var(--hawaii-deep);font-size:.78rem;letter-spacing:.12em}
.host .info h3{font-family:var(--font-disp);font-weight:900;font-size:2rem;color:var(--ink-deep);margin:4px 0 12px}
.host .info p{font-weight:500}
.host .info .tags{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}
.host .info .tags span{background:#fff;padding:6px 14px;border-radius:6px;font-family:var(--font-pixel);font-weight:400;font-size:.72rem;color:var(--ink-deep);box-shadow:3px 3px 0 var(--shadow)}
.host .info .x-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;text-decoration:none;background:var(--ink-deep);color:#fff;padding:11px 22px;border-radius:8px;font-family:var(--font-disp);font-weight:700;transition:.2s;box-shadow:0 5px 0 #2c3843}
.host .info .x-link:hover{transform:translateY(-2px);background:#2c3843}

/* ===== FAQ ===== */
.faq{max-width:760px;margin:0 auto;display:grid;gap:14px}
details{background:#fff;border:3px solid #fff;border-radius:12px;padding:4px 24px;box-shadow:0 12px 26px var(--shadow)}
details summary{list-style:none;cursor:pointer;padding:18px 0;font-family:var(--font-disp);font-weight:700;color:var(--ink-deep);font-size:1.04rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
details summary::-webkit-details-marker{display:none}
details summary .q{display:flex;gap:12px;align-items:center}
details summary .q .qm{color:var(--ichigo-deep);font-family:var(--font-num);font-weight:800;font-size:1.3rem}
details summary .chev{transition:transform .3s;color:var(--hawaii-deep);font-size:1.1rem}
details[open] summary .chev{transform:rotate(180deg)}
details .a{padding:0 0 20px 34px;font-weight:500;color:var(--ink);animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ===== フッター（地面） ===== */
footer{text-align:center;padding:64px 24px 0;position:relative;z-index:2}
footer .hashtags{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:22px}
footer .hashtags a{text-decoration:none;color:var(--hawaii-deep);font-family:var(--font-pixel);font-weight:400;font-size:.82rem;background:#fff;padding:9px 18px;border-radius:6px;box-shadow:3px 3px 0 var(--shadow);transition:.2s}
footer .hashtags a:hover{transform:translateY(-2px);color:var(--ichigo-deep)}
footer .fnote{color:var(--ink);opacity:.75;font-weight:500;font-size:.83rem;line-height:1.9;padding-bottom:40px}
.ground{height:70px;background:
    repeating-linear-gradient(90deg,var(--melon) 0 14px,#96cd50 14px 28px) top/100% 14px no-repeat,
    repeating-linear-gradient(90deg,var(--dirt) 0 14px,var(--dirt-deep) 14px 28px) bottom/100% 56px no-repeat;
    image-rendering:pixelated;margin-top:20px}

@media(max-width:640px){.band{padding:66px 0}.host{gap:24px}}

/* ===== サブページ共通（おしらせ・参加者コミュニティ等） ===== */
.page-hero{padding:150px 24px 50px;text-align:center}
.page-hero h1{font-family:var(--font-disp);font-weight:900;font-size:clamp(2rem,6vw,3rem);color:var(--ink-deep)}
.page-hero h1 .accent{color:var(--ichigo-deep)}
.page-hero p{margin-top:14px;color:var(--ink);opacity:.85;font-weight:500;max-width:560px;margin:14px auto 0;text-wrap:pretty}
.nowrap{white-space:nowrap}

/* おしらせ一覧 */
.news-filter{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-width:760px;margin:0 auto 36px}
.filter-pill{font-family:var(--font-pixel);font-size:.78rem;background:#fff;color:var(--ink-deep);border:2px solid #eaf6fc;padding:8px 18px;border-radius:20px;cursor:pointer;box-shadow:3px 3px 0 rgba(124,201,236,.25);transition:.2s}
.filter-pill:hover{transform:translateY(-2px)}
.filter-pill.active{background:var(--ichigo);color:#fff;border-color:var(--ichigo-deep);box-shadow:3px 3px 0 rgba(236,107,160,.3)}
.news-list{display:grid;gap:20px;max-width:760px;margin:0 auto}
.news-card{background:#fff;border:3px solid #fff;border-radius:14px;padding:26px 28px;box-shadow:0 14px 30px var(--shadow)}
.news-card .news-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.news-card .news-date{font-family:var(--font-pixel);font-size:.75rem;color:var(--hawaii-deep);letter-spacing:.06em}
.news-card .news-tag{font-family:var(--font-pixel);font-size:.68rem;background:var(--milk);color:#7a5a1f;padding:3px 10px;border-radius:5px}
.news-card h3{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.18rem;margin-bottom:8px}
.news-card p{font-weight:500;font-size:.95rem}
.empty-state{text-align:center;padding:50px 20px;color:var(--ink);opacity:.75;font-weight:500;background:#fff;border-radius:14px;box-shadow:0 12px 26px var(--shadow);max-width:520px;margin:0 auto}

/* 参加者・コミュニティ */
.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;max-width:900px;margin:0 auto}
.member-card{background:#fff;border:3px solid #fff;border-radius:14px;padding:24px 18px;text-align:center;box-shadow:0 12px 26px var(--shadow)}
.member-card .m-ava{width:72px;height:72px;border-radius:50%;margin:0 auto 14px;background:linear-gradient(135deg,var(--ichigo),var(--hawaii));display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff;overflow:hidden}
.member-card .m-ava img{width:100%;height:100%;object-fit:cover;display:block}
.member-card h4{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1rem;margin-bottom:4px}
.member-card .m-role{font-family:var(--font-pixel);font-size:.68rem;color:var(--hawaii-deep)}
.community-card{max-width:640px;margin:0 auto;background:#fff;border:3px solid #fff;border-radius:16px;padding:34px;text-align:center;box-shadow:0 16px 34px var(--shadow)}
.community-card h3{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.3rem;margin-bottom:10px}
.community-card p{font-weight:500}
.community-card .btn{margin-top:20px}

/* 配信中 */
.streams-updated{text-align:center;font-family:var(--font-pixel);font-size:.75rem;color:var(--ink);opacity:.6;margin-bottom:28px}
.streams-section-title{display:flex;align-items:center;gap:10px;font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:1.2rem;margin:0 0 18px}
.streams-section-title .dot{width:11px;height:11px;border-radius:50%;background:#c9d6de}
.streams-section-title.live .dot{background:#ff5470;box-shadow:0 0 0 4px rgba(255,84,112,.22);animation:pulse-dot 1.6s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 4px rgba(255,84,112,.22)}50%{box-shadow:0 0 0 7px rgba(255,84,112,.08)}}
.stream-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-bottom:40px}
.stream-card{background:#fff;border:3px solid #fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 26px var(--shadow);transition:transform .2s;text-decoration:none;display:block;color:inherit}
.stream-card:hover{transform:translateY(-4px)}
.stream-card .thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#eef6fb,#fdf3f8);position:relative;overflow:hidden}
.stream-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.stream-card .thumb .live-badge{position:absolute;top:8px;left:8px;background:#ff5470;color:#fff;font-family:var(--font-pixel);font-size:.62rem;letter-spacing:.06em;padding:4px 9px;border-radius:5px;box-shadow:0 3px 0 rgba(0,0,0,.15)}
.stream-card .thumb .platform-badge{position:absolute;top:8px;right:8px;font-family:var(--font-pixel);font-size:.62rem;padding:4px 9px;border-radius:5px;color:#fff;box-shadow:0 3px 0 rgba(0,0,0,.15)}
.stream-card .platform-badge.twitch{background:#9146FF}
.stream-card .platform-badge.youtube{background:#FF0000}
.stream-card .body{padding:14px 16px}
.stream-card .row{display:flex;gap:10px;align-items:center}
.stream-card .avatar{width:40px;height:40px;border-radius:50%;flex:none;background:#eee;overflow:hidden}
.stream-card .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.stream-card .name{font-family:var(--font-disp);font-weight:900;color:var(--ink-deep);font-size:.98rem;line-height:1.3}
.stream-card .stitle{margin-top:8px;font-size:.85rem;font-weight:500;color:var(--ink);opacity:.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stream-card.offline{opacity:.72}
.stream-card.offline .thumb{display:flex;align-items:center;justify-content:center}
.stream-card.offline .thumb .avatar{width:56px;height:56px}
