/* =============================================
   WORDPRESS ADMIN BAR COMPATIBILITY
============================================= */
.admin-bar #header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar #header { top: 46px; } }

/* =============================================
   RESET & VARIABLES
============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --black:   #0d1a2e;
  --dark:    #112240;
  --dark2:   #1a3055;
  --navy-mid:#1e3a5f;
  --gold:    #C8A96E;
  --gold2:   #e8c98e;
  --gold-dim: rgba(200,169,110,0.15);
  --white:   #f0ece4;
  --gray:    #8da4bf;
  --gray2:   #5a7a9a;
  --ease:    cubic-bezier(0.22,1,0.36,1);
}
html { scroll-behavior: auto; }
body {
  background: var(--black);
  color: var(--white);
  font-family: 'Noto Sans JP', sans-serif;
  overflow-x: hidden;
  cursor: none;
}
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { text-decoration: none; color: inherit; }

/* =============================================
   CUSTOM CURSOR
============================================= */
.cur { position:fixed; pointer-events:none; z-index:9999; mix-blend-mode:difference; }
.cur-dot { width:8px; height:8px; background:var(--gold); border-radius:50%; transform:translate(-50%,-50%); transition:width .3s,height .3s; }
.cur-ring { width:40px; height:40px; border:1px solid rgba(200,169,110,.45); border-radius:50%; transform:translate(-50%,-50%); transition:width .5s var(--ease),height .5s var(--ease),border-color .4s; }
body:has(a:hover) .cur-dot { width:14px; height:14px; }
body:has(a:hover) .cur-ring { width:60px; height:60px; border-color:rgba(200,169,110,.7); }

/* =============================================
   NOISE OVERLAY
============================================= */
.noise {
  position:fixed; inset:0; pointer-events:none; z-index:9998; opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =============================================
   HEADER
============================================= */
header {
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 5vw;
  height:72px;
  background:transparent;
  transition:background .5s, backdrop-filter .5s;
}
header.scrolled {
  background:rgba(8,8,8,.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(200,169,110,.08);
}
.logo {
  font-family:'Bebas Neue',sans-serif;
  font-size:20px; letter-spacing:.14em; color:var(--white);
  display:flex; align-items:center; gap:10px;
}
.logo-mark {
  width:36px; height:36px; border:1.5px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; letter-spacing:.05em; color:var(--gold);
  font-family:'Oswald',sans-serif; font-weight:600;
}
.logo span { color:var(--gold); }
nav { display:flex; align-items:center; gap:36px; }
nav a {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.22em; color:rgba(240,236,228,.5);
  text-transform:uppercase;
  transition:color .3s;
  position:relative;
}
nav a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease);
}
nav a:hover { color:var(--white); }
nav a:hover::after { transform:scaleX(1); }
.nav-cta {
  background:var(--gold); color:var(--black) !important;
  padding:9px 20px; font-weight:600 !important;
  letter-spacing:.15em !important;
  transition:background .3s, transform .3s !important;
}
.nav-cta:hover { background:var(--gold2); transform:translateY(-1px); }
.nav-cta::after { display:none !important; }
/* ハンバーガーボタン */
.hamburger {
  display:none;
  cursor:pointer; z-index:620; position:relative;
  width:48px; height:48px;
  align-items:center; justify-content:center;
  border:1px solid rgba(200,169,110,.25);
  background:rgba(8,8,8,.6);
  backdrop-filter:blur(8px);
  transition:border-color .3s, background .3s;
  flex-shrink:0;
}
.hamburger:hover { border-color:rgba(200,169,110,.7); }
.hamburger.open  { border-color:var(--gold); background:rgba(200,169,110,.08); }

/* バーを SVG ライクに2本線で構成 */
.hamburger span {
  position:absolute; left:50%; top:50%;
  display:block; width:20px; height:1px;
  background:var(--white);
  transform-origin:center;
  transition:transform .5s var(--ease), opacity .3s, background .3s;
}
.hamburger span:nth-child(1){ transform:translate(-50%, calc(-50% - 5px)); }
.hamburger span:nth-child(2){ transform:translate(-50%, -50%); width:14px; margin-left:-3px; }
.hamburger span:nth-child(3){ transform:translate(-50%, calc(-50% + 5px)); }

/* open 状態 → × */
.hamburger.open span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); background:var(--gold); width:20px; }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:translate(-50%,-50%) rotate(-45deg); background:var(--gold); width:20px; }

/* =============================================
   MOBILE MENU — 右からスライドイン型
============================================= */
.mobile-menu {
  position:fixed; top:0; right:0; bottom:0;
  width:min(400px, 100vw);
  z-index:610;
  background:var(--dark);
  border-left:1px solid rgba(200,169,110,.15);
  display:flex; flex-direction:column;
  justify-content:space-between;
  padding:100px 48px 52px;
  pointer-events:none;
  transform:translateX(100%);
  transition:transform .75s var(--ease);
  overflow:hidden;
}
/* 背景の大文字装飾 */
.mobile-menu::before {
  content:'MENU';
  position:absolute; bottom:-20px; right:-10px;
  font-family:'Bebas Neue',sans-serif;
  font-size:120px; letter-spacing:.02em;
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.05);
  pointer-events:none; line-height:1;
}
/* ゴールドの縦線装飾 */
.mobile-menu::after {
  content:'';
  position:absolute; top:72px; left:48px;
  width:24px; height:1px; background:var(--gold);
  opacity:0; transition:opacity .4s .5s, width .5s .5s var(--ease);
}
.mobile-menu.open::after { opacity:1; width:48px; }

/* オーバーレイ */
.menu-overlay {
  position:fixed; inset:0; z-index:605;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(6px);
  pointer-events:none; opacity:0;
  transition:opacity .5s ease;
}
.menu-overlay.open { pointer-events:all; opacity:1; }

.mobile-menu.open { transform:translateX(0); pointer-events:all; }

/* ナビリンク */
.mobile-menu-inner {
  display:flex; flex-direction:column; gap:0;
}
.mm-link {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(32px,8vw,44px); letter-spacing:.06em;
  color:rgba(240,236,228,.18);
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
  border-bottom:1px solid rgba(200,169,110,.07);
  position:relative; overflow:hidden;
  opacity:0; transform:translateX(24px);
  transition:color .35s, opacity .55s var(--ease), transform .55s var(--ease);
  cursor:pointer;
}
/* ホバーで下線が左から伸びる */
.mm-link::before {
  content:''; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--gold);
  transition:width .4s var(--ease);
}
.mm-link:hover::before { width:100%; }
.mm-link:hover { color:var(--white); }
.mm-link:hover .mm-arrow { opacity:1; transform:translateX(0); color:var(--gold); }

/* 矢印 */
.mm-arrow {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.2em; color:var(--gold); opacity:0;
  transform:translateX(-8px);
  transition:opacity .3s, transform .4s var(--ease), color .3s;
}

/* open 時にアイテム順次表示 */
.mobile-menu.open .mm-link { opacity:1; transform:translateX(0); }
.mobile-menu.open .mm-link:nth-child(1){transition-delay:.18s;}
.mobile-menu.open .mm-link:nth-child(2){transition-delay:.24s;}
.mobile-menu.open .mm-link:nth-child(3){transition-delay:.30s;}
.mobile-menu.open .mm-link:nth-child(4){transition-delay:.36s;}
.mobile-menu.open .mm-link:nth-child(5){transition-delay:.42s;}
.mobile-menu.open .mm-link:nth-child(6){transition-delay:.48s;}

/* フッターエリア */
.mobile-menu-foot {
  display:flex; flex-direction:column; gap:20px;
  opacity:0; transition:opacity .5s .55s;
}
.mobile-menu.open .mobile-menu-foot { opacity:1; }

.mobile-menu-sns {
  display:flex; gap:12px;
}
.mobile-menu-sns a {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.3em; color:var(--gray); text-transform:uppercase;
  padding:8px 14px; border:1px solid rgba(200,169,110,.15);
  transition:color .3s, border-color .3s;
  cursor:pointer;
}
.mobile-menu-sns a:hover { color:var(--gold); border-color:rgba(200,169,110,.5); }

.mobile-menu-copy {
  font-family:'Oswald',sans-serif; font-size:9px;
  letter-spacing:.2em; color:rgba(240,236,228,.2); text-transform:uppercase;
}

/* =============================================
   PAGE TOP BUTTON
============================================= */
.page-top {
  position:fixed; bottom:32px; right:32px; z-index:490;
  width:52px; height:52px;
  background:var(--gold);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  cursor:pointer;
  opacity:0; transform:translateY(16px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s;
  pointer-events:none;
}
.page-top.visible { opacity:1; transform:translateY(0); pointer-events:all; }
.page-top:hover { background:var(--gold2); }
.page-top:hover .pt-arrow { transform:translateY(-3px); }
.pt-arrow {
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.pt-arrow svg { width:16px; color:var(--black); }
.pt-label {
  font-family:'Oswald',sans-serif; font-size:7px;
  letter-spacing:.2em; color:var(--black);
  text-transform:uppercase; line-height:1;
}

@media(max-width:768px){
  .page-top { bottom:24px; right:20px; width:46px; height:46px; }
}
.hero { position:relative; height:500vh; }
.hero-sticky {
  position:sticky; top:0; height:100vh; overflow:hidden;
}

/* 背景画像 (パララックス) */
.hero-bg {
  position:absolute; inset:-20% 0;
  will-change:transform;
}
.hero-bg img, .hero-bg video {
  width:100%; height:100%; object-fit:cover;
  filter:brightness(0.9) saturate(1.1); /* さらに明るく */
  transform:scaleX(-1); /* 左右反転 */
}
.hero-bg-overlay {
  position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(13,26,46,.4) 0%, rgba(13,26,46,.05) 60%, transparent 100%),
    linear-gradient(to top, rgba(13,26,46,.5) 0%, transparent 50%);
}

/* グリッド装飾 */
.hero-grid {
  position:absolute; inset:0; pointer-events:none; opacity:.04;
  background-image:
    linear-gradient(rgba(200,169,110,1) 1px,transparent 1px),
    linear-gradient(90deg,rgba(200,169,110,1) 1px,transparent 1px);
  background-size:88px 88px;
}

/* プログレスバー */
.hero-prog {
  position:absolute; left:0; top:0; width:3px; height:100%;
  background:rgba(200,169,110,.08); z-index:10;
}
.hero-prog-fill {
  width:100%; height:0%;
  background:linear-gradient(to bottom,var(--gold),rgba(200,169,110,.2));
  transition:height .05s linear;
}

/* メインテキスト */
.hero-content {
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:0 8vw; z-index:10;
}
.hero-eyebrow {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.45em; color:var(--gold); text-transform:uppercase;
  display:flex; align-items:center; gap:14px; margin-bottom:24px;
  opacity:0; transform:translateY(16px);
  animation:fadeUp .9s 1s var(--ease) forwards;
}
.hero-eyebrow::before { content:''; width:36px; height:1px; background:var(--gold); }
.hero-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(72px,12vw,168px);
  line-height:.88; letter-spacing:.02em;
  opacity:0; transform:translateY(24px);
  animation:fadeUp 1.1s 1.1s var(--ease) forwards;
  will-change:transform;
}
.hero-title .t-gold { color:var(--gold); }
.hero-title .t-outline {
  -webkit-text-stroke:1.5px rgba(240,236,228,.2);
  color:transparent;
}
.hero-sub {
  margin-top:28px; max-width:420px;
  font-size:clamp(12px,1.2vw,14px); font-weight:300;
  line-height:2.1; letter-spacing:.12em;
  color:rgba(240,236,228,.45);
  opacity:0; transform:translateY(16px);
  animation:fadeUp .9s 1.3s var(--ease) forwards;
}
.hero-btn {
  display:inline-flex; align-items:center; gap:12px;
  margin-top:40px;
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.25em; color:var(--black); text-transform:uppercase;
  background:var(--gold); padding:14px 28px;
  opacity:0; transform:translateY(16px);
  animation:fadeUp .9s 1.5s var(--ease) forwards;
  transition:background .3s, gap .3s;
}
.hero-btn:hover { background:var(--gold2); gap:18px; }
.hero-btn svg { width:14px; height:14px; }

/* 年号 (パララックス) */
.hero-year {
  position:absolute; right:-3vw; top:50%;
  transform:translateY(-50%);
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(160px,24vw,340px);
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.06);
  letter-spacing:-.03em; pointer-events:none; z-index:1;
  will-change:transform;
  opacity:0; animation:fadeIn 1.5s 1.8s ease forwards;
}

/* フェーズコピー */
.hero-phase-copy {
  position:absolute; right:8vw; bottom:18vh;
  text-align:right; z-index:10; pointer-events:none;
  width: max-content;
}
.phase-item {
  position:absolute; right:0; bottom:0;
  width: max-content;
  opacity:0; transform:translateY(12px);
  transition:opacity .6s ease, transform .6s var(--ease);
}
.phase-item.active { opacity:1; transform:translateY(0); }
.phase-item h3 {
  font-family:'Noto Sans JP',sans-serif; font-weight:700;
  font-size:clamp(28px,4vw,56px); letter-spacing:.08em;
  color:var(--white); line-height:1.4;
  white-space: nowrap;
}
.phase-item p {
  font-family:'Oswald',sans-serif; font-size:13px;
  letter-spacing:.3em; color:rgba(200,169,110,.6);
  margin-top:8px; text-transform:uppercase;
  white-space: nowrap;
}

/* ドットナビ */
.hero-dots {
  position:absolute; left:5vw; bottom:12vh; z-index:10;
  display:flex; flex-direction:column; gap:10px;
}
.dot {
  width:5px; height:5px; border-radius:50%;
  background:rgba(240,236,228,.2);
  transition:background .4s, transform .4s, height .4s;
}
.dot.active { background:var(--gold); height:20px; border-radius:3px; }

/* スクロール表示 */
.hero-scroll {
  position:absolute; right:5vw; bottom:12vh; z-index:10;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-txt {
  font-family:'Oswald',sans-serif; font-size:9px;
  letter-spacing:.4em; color:rgba(240,236,228,.3);
  writing-mode:vertical-rl; text-transform:uppercase;
}
.scroll-line {
  width:1px; height:52px;
  background:linear-gradient(to bottom,var(--gold),transparent);
  animation:scrollDown 2s ease-in-out infinite;
}
@keyframes scrollDown {
  0%,100%{transform:scaleY(0);transform-origin:top;opacity:0}
  40%,60%{transform:scaleY(1);opacity:1}
}

/* =============================================
   SECTION COMMONS
============================================= */
.sec-label {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.45em; color:var(--gold); text-transform:uppercase;
  display:flex; align-items:center; gap:14px; margin-bottom:20px;
}
.sec-label::before { content:''; width:28px; height:1px; background:var(--gold); flex-shrink:0; }
.sec-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(48px,7vw,96px); letter-spacing:.03em; line-height:1;
}
.sec-title-en {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(80px,11vw,140px); letter-spacing:.02em; line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.07);
  position:absolute; top:-20px; left:-2vw; pointer-events:none; z-index:0;
}

/* reveal animation */
.reveal {
  opacity:0; transform:translateY(40px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.in { opacity:1; transform:translateY(0); }
.reveal-d1 { transition-delay:.1s; }
.reveal-d2 { transition-delay:.2s; }
.reveal-d3 { transition-delay:.3s; }
.reveal-d4 { transition-delay:.4s; }

/* =============================================
   ABOUT SECTION
============================================= */
.about {
  background:var(--black);
  padding:140px 0;
  position:relative; overflow:hidden;
}
.about::before {
  content:''; position:absolute; inset:0;
  background-image:url('../img/4882746_m.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
  opacity:0.4; /* 見えるように濃くする */
  z-index:0; pointer-events:none;
}
.about::after {
  content:''; position:absolute; inset:0; top:auto; height:100%;
  background:linear-gradient(to top, var(--black) 0%, transparent 30%);
  z-index:1; pointer-events:none;
}
.about-inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
  max-width:1280px; margin:0 auto; padding:0 5vw;
  position:relative; z-index:1;
}
.about-text {}
.about-body {
  font-size:15px; line-height:2.3; font-weight:300;
  color:rgba(240,236,228,.55); margin-top:28px; margin-bottom:40px;
}
.about-stats {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(200,169,110,.12);
  margin-top:48px; border:1px solid rgba(200,169,110,.12);
}
.stat {
  padding:24px 20px; background:var(--black);
  text-align:center;
}
.stat-num {
  font-family:'Bebas Neue',sans-serif; font-size:52px;
  color:var(--gold); letter-spacing:.02em; line-height:1;
}
.stat-unit { font-size:14px; color:var(--gold); opacity:.7; }
.stat-label {
  font-size:10px; letter-spacing:.2em; color:var(--gray);
  margin-top:6px; font-family:'Oswald',sans-serif;
  text-transform:uppercase;
}
.about-img {
  position:relative; aspect-ratio:4/5; overflow:hidden;
}
.about-img img { object-fit:cover; height:100%; filter:brightness(.8) saturate(1.1); }
.about-img-border {
  position:absolute; inset:0;
  border:1px solid rgba(200,169,110,.2);
  pointer-events:none; z-index:2;
}
.about-img-badge {
  position:absolute; bottom:24px; left:-24px; z-index:3;
  background:var(--gold); color:var(--black);
  font-family:'Bebas Neue',sans-serif; font-size:13px;
  letter-spacing:.15em; padding:10px 20px;
}

/* =============================================
   TOURNAMENTS SECTION
============================================= */
.tournaments {
  background:var(--dark);
  padding:140px 0;
  position:relative; overflow:hidden;
}
.tournaments-inner {
  max-width:1280px; margin:0 auto; padding:0 5vw;
}
.tournaments-head {
  margin-bottom:0; position:relative;
}
/* フィルター用スワイプピッカーは共通クラスを流用 */
/* カテゴリーバッジは色分け */
.t-cat-u18  { background:#C8A96E; color:#000; }
.t-cat-u15  { background:#7ba7bc; color:#000; }
.t-cat-u12  { background:#82b97e; color:#000; }
.t-cat-univ { background:#b07eba; color:#fff; }
.t-cat-open { background:#d97b5a; color:#fff; }
.t-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  margin-top:40px;
}
.t-card {
  background:var(--dark2); position:relative; overflow:hidden;
  transition:transform .5s var(--ease);
  cursor:pointer;
}
.t-card:hover { transform:translateY(-6px); }
.t-card:hover .t-card-img img { transform:scale(1.06); filter:brightness(.6) saturate(1.2); }
.t-card-img { aspect-ratio:16/10; overflow:hidden; position:relative; }
.t-card-img img { transition:transform .7s var(--ease), filter .5s; filter:brightness(.5) saturate(1.1); }
.t-card-cat {
  position:absolute; top:16px; left:16px; z-index:2;
  font-family:'Bebas Neue',sans-serif; font-size:13px;
  letter-spacing:.1em; padding:4px 10px;
}
.t-card-body { padding:24px 24px 28px; }
.t-card-year {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.25em; color:var(--gray); margin-bottom:8px;
}
.t-card-name {
  font-family:'Bebas Neue',sans-serif; font-size:26px;
  letter-spacing:.04em; line-height:1.2; margin-bottom:12px;
}
.t-card-meta {
  display:flex; flex-direction:column; gap:4px;
}
.t-card-meta span {
  font-size:11px; color:var(--gray); letter-spacing:.1em;
  display:flex; align-items:center; gap:6px;
}
.t-card-meta span::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.t-card-arrow {
  position:absolute; bottom:24px; right:24px;
  width:36px; height:36px; border:1px solid rgba(200,169,110,.3);
  display:flex; align-items:center; justify-content:center;
  transition:.4s;
}
.t-card:hover .t-card-arrow { background:var(--gold); border-color:var(--gold); }
.t-card-arrow svg { width:14px; color:var(--gold); transition:color .3s; }
.t-card:hover .t-card-arrow svg { color:var(--black); }
/* 非表示カード */
.t-card.hidden { display:none; }

/* =============================================
   TEAMS SECTION
============================================= */
.teams {
  background:var(--black);
  padding:140px 0;
  position:relative; overflow:hidden;
}
.teams::before {
  content:'TEAMS';
  position:absolute; left:-3vw; top:50%; transform:translateY(-50%);
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(100px,16vw,220px);
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.04);
  pointer-events:none; line-height:1;
}
.teams-inner { max-width:1280px; margin:0 auto; padding:0 5vw; }
.teams-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:48px; flex-wrap:wrap; gap:16px;
}
.teams-more {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.25em; color:var(--gold); text-transform:uppercase;
  transition:gap .3s;
}
.teams-more:hover { gap:14px; }
.teams-more svg { width:12px; }

/* チームグリッド：6列 */
.teams-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:2px;
}
@media(max-width:1024px){ .teams-grid{ grid-template-columns:repeat(4,1fr); } }
@media(max-width:768px) { .teams-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:480px) { .teams-grid{ grid-template-columns:repeat(2,1fr); } }

/* チームカード */
.team-card {
  position:relative; overflow:hidden; cursor:pointer;
  background:var(--dark2); aspect-ratio:1/1;
}
.team-card:hover .team-img img { transform:scale(1.08); filter:brightness(.35) saturate(1.2); }
.team-card:hover .team-overlay { opacity:1; }
.team-card:hover .team-name { transform:translateY(0); opacity:1; }
.team-card:hover .team-pref { transform:translateY(0); opacity:1; }

.team-img { width:100%; height:100%; }
.team-img img {
  width:100%; height:100%; object-fit:cover;
  filter:brightness(.55) saturate(1.0);
  transition:transform .6s var(--ease), filter .5s;
}

/* ゴールドオーバーレイ */
.team-overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    to top,
    rgba(13,26,46,.98) 0%,
    rgba(13,26,46,.6) 50%,
    rgba(200,169,110,.06) 100%
  );
  opacity:.7; transition:opacity .4s;
}

/* カード番号 */
.team-num {
  position:absolute; top:10px; left:10px; z-index:2;
  font-family:'Bebas Neue',sans-serif; font-size:11px;
  letter-spacing:.1em; color:rgba(200,169,110,.5);
}

/* チーム情報 */
.team-info {
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:12px 12px 14px;
}
.team-name {
  font-size:11px; font-weight:700; letter-spacing:.04em;
  line-height:1.4; color:var(--white);
  transform:translateY(6px); opacity:.85;
  transition:transform .4s var(--ease), opacity .4s;
}
.team-pref {
  font-family:'Oswald',sans-serif; font-size:9px;
  letter-spacing:.18em; color:var(--gold); margin-top:3px;
  transform:translateY(6px); opacity:0;
  transition:transform .4s .05s var(--ease), opacity .4s .05s;
  text-transform:uppercase;
}

/* 合計チーム数バッジ */
.teams-count {
  margin-top:28px; display:flex; align-items:center; gap:16px;
}
.teams-count-num {
  font-family:'Bebas Neue',sans-serif; font-size:48px;
  color:var(--gold); letter-spacing:.02em; line-height:1;
}
.teams-count-label {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.25em; color:var(--gray); text-transform:uppercase;
  line-height:1.6;
}

/* =============================================
   GK AWARD SECTION
============================================= */
.gk {
  background:var(--dark);
  padding:140px 0;
  position:relative; overflow:hidden;
}
.gk::before {
  content:'GK';
  position:absolute; left:-4vw; bottom:-60px;
  font-family:'Bebas Neue',sans-serif; font-size:clamp(180px,26vw,380px);
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.04);
  pointer-events:none; line-height:1;
}
.gk-inner { max-width:1280px; margin:0 auto; padding:0 5vw; }

/* GKスポンサー表示 */
.gk-sponsor {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.3em; color:var(--gray); text-transform:uppercase;
  display:flex; align-items:center; gap:12px;
  margin-top:8px;
}
.gk-sponsor::before { content:''; width:20px; height:1px; background:var(--gold); flex-shrink:0; }
.gk-sponsor span { color:var(--gold); }

/* カルーセルラッパー — 左右フェードマスク */
.gk-carousel-outer {
  position:relative; margin-top:32px; overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
  mask-image:linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}

/* カルーセルトラック */
.gk-track {
  display:flex; gap:2px;
  transition:transform .55s var(--ease);
  will-change:transform;
}

/* 各カード */
.gk-card {
  flex:0 0 calc((100% - 18px) / 5); /* 5枚表示 */
  position:relative; overflow:hidden;
  cursor:pointer; background:var(--dark2);
}
@media(max-width:1024px){ .gk-card{ flex:0 0 calc((100% - 6px) / 4); } }
@media(max-width:768px) { .gk-card{ flex:0 0 calc((100% - 4px) / 3); } }
@media(max-width:480px) { .gk-card{ flex:0 0 calc((100% - 2px) / 2); } }

.gk-card:hover .gk-img img { transform:scale(1.07); filter:brightness(.45) saturate(1.2); }
.gk-card:hover .gk-card-overlay { opacity:1; }
.gk-card:hover .gk-name { color:var(--gold); }

.gk-img { aspect-ratio:3/4; overflow:hidden; }
.gk-img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .65s var(--ease), filter .5s;
  filter:brightness(.65) saturate(1.1);
}

.gk-card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(200,169,110,.18) 0%, transparent 60%);
  opacity:0; transition:opacity .4s;
}

.gk-badge {
  position:absolute; top:12px; left:12px; z-index:2;
  width:28px; height:28px;
  border:1px solid rgba(200,169,110,.5);
  display:flex; align-items:center; justify-content:center;
  font-family:'Bebas Neue',sans-serif; font-size:12px;
  letter-spacing:.05em; color:var(--gold);
  background:rgba(13,26,46,.75); backdrop-filter:blur(4px);
}

.gk-info {
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:20px 14px 14px;
  background:linear-gradient(to top, rgba(13,26,46,1) 0%, rgba(13,26,46,.8) 50%, transparent 100%);
}
.gk-name {
  font-size:13px; font-weight:700; letter-spacing:.04em;
  line-height:1.35; color:var(--white); transition:color .3s;
}
.gk-team {
  font-family:'Oswald',sans-serif; font-size:9px;
  letter-spacing:.15em; color:var(--gray); margin-top:4px;
}
.gk-div-tag {
  display:inline-block; margin-top:5px;
  font-family:'Bebas Neue',sans-serif; font-size:9px;
  letter-spacing:.1em; color:var(--gold);
  border:1px solid rgba(200,169,110,.3); padding:1px 6px;
}

/* 自動再生プログレスバー */
.gk-auto-bar {
  height:2px; background:rgba(200,169,110,.1);
  margin-top:16px; overflow:hidden;
}
.gk-auto-bar-fill {
  height:100%; width:0%;
  background:var(--gold);
  animation:gkProgress 3s linear infinite;
}
@keyframes gkProgress {
  from { width:0% }
  to   { width:100% }
}
.gk-carousel-outer:hover .gk-auto-bar-fill {
  animation-play-state:paused;
}

/* ページネーションドット */
.gk-pagination {
  display:flex; align-items:center; justify-content:center;
  gap:6px; margin-top:24px;
}
.gk-dot {
  width:5px; height:5px; border-radius:50%;
  background:rgba(200,169,110,.2);
  transition:background .3s, width .35s var(--ease);
  cursor:pointer;
}
.gk-dot.active { background:var(--gold); width:20px; border-radius:3px; }

/* 詳細リンク */
.gk-more-wrap { margin-top:28px; display:flex; justify-content:flex-end; }
.gk-more {
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.25em; color:var(--gold); text-transform:uppercase;
  transition:gap .3s;
}
.gk-more:hover { gap:16px; }
.gk-more svg { width:12px; }

/* =============================================
   SWIPE PICKER — 共通（GK・結果で使い回し）
============================================= */
.swipe-picker {
  position:relative; margin-top:40px;
  display:flex; align-items:center; gap:0;
}
.swipe-picker-prev,
.swipe-picker-next {
  flex-shrink:0; width:40px; height:40px;
  border:1px solid rgba(200,169,110,.2); background:transparent;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .3s, border-color .3s; z-index:2;
}
.swipe-picker-prev:hover,
.swipe-picker-next:hover { background:rgba(200,169,110,.08); border-color:var(--gold); }
.swipe-picker-prev svg,
.swipe-picker-next svg { width:12px; color:var(--gold); }

/* トラック：オーバーフロー隠し＋フェードマスク */
.swipe-picker-track-wrap {
  flex:1; overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
  mask-image:linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
}
.swipe-picker-track {
  display:flex; align-items:center;
  transition:transform .5s var(--ease);
  will-change:transform;
  padding:12px 0;
}

/* 各アイテム */
.swipe-picker-item {
  flex-shrink:0;
  padding:0 20px; cursor:pointer;
  text-align:center;
  transition:opacity .4s, transform .4s var(--ease);
  opacity:.3; transform:scale(.88);
  white-space:nowrap; user-select:none;
}
.swipe-picker-item.active {
  opacity:1; transform:scale(1);
}
.swipe-picker-item:hover:not(.active) { opacity:.55; }

.swipe-picker-name {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(14px,2.2vw,20px);
  letter-spacing:.06em; color:var(--white); line-height:1.2;
}
.swipe-picker-item.active .swipe-picker-name { color:var(--gold); }
.swipe-picker-sub {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.2em; color:var(--gray); margin-top:3px;
  text-transform:uppercase;
}

/* アクティブ下線 */
.swipe-picker-line {
  height:2px; background:var(--gold); margin-top:2px;
  transform:scaleX(0); transition:transform .4s var(--ease);
}
.swipe-picker-item.active .swipe-picker-line { transform:scaleX(1); }

/* =============================================
   RESULTS SECTION
============================================= */
.results {
  background:var(--dark2);
  padding:140px 0;
  position:relative; overflow:hidden;
}
.results::before {
  content:'RESULT';
  position:absolute; right:-4vw; top:50%; transform:translateY(-50%);
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(120px,18vw,260px);
  color:transparent; -webkit-text-stroke:1px rgba(200,169,110,.05);
  pointer-events:none; line-height:1;
}
.results-inner { max-width:1280px; margin:0 auto; padding:0 5vw; }

/* 結果パネル */
.res-panel {
  display:none; margin-top:32px;
  animation:fadeIn .4s ease;
}
.res-panel.active { display:block; }

/* 大会カード */
.res-tournament {
  margin-bottom:40px;
  border:1px solid rgba(200,169,110,.1);
  background:var(--dark);
  overflow:hidden;
}
.res-tournament-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 28px;
  background:rgba(200,169,110,.06);
  border-bottom:1px solid rgba(200,169,110,.1);
  cursor:pointer;
  transition:background .3s;
}
.res-tournament-head:hover { background:rgba(200,169,110,.1); }
.res-tournament-meta {
  display:flex; align-items:center; gap:16px;
}
.res-cat-badge {
  font-family:'Bebas Neue',sans-serif; font-size:12px;
  letter-spacing:.12em; padding:4px 10px;
  background:var(--gold); color:var(--black);
}
.res-tournament-name {
  font-family:'Bebas Neue',sans-serif; font-size:20px;
  letter-spacing:.06em; color:var(--white);
}
.res-tournament-date {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.15em; color:var(--gray);
}
.res-toggle-icon {
  width:32px; height:32px; border:1px solid rgba(200,169,110,.2);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:transform .4s var(--ease), background .3s;
}
.res-tournament.open .res-toggle-icon { transform:rotate(180deg); background:var(--gold); border-color:var(--gold); }
.res-tournament.open .res-toggle-icon svg { color:var(--black); }
.res-toggle-icon svg { width:12px; color:var(--gold); transition:color .3s; }

/* 結果テーブル */
.res-body {
  max-height:0; overflow:hidden;
  transition:max-height .6s var(--ease);
}
.res-tournament.open .res-body { max-height:1000px; }

.res-table-wrap { padding:24px 28px 28px; }
.res-div-label {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.3em; color:var(--gold); text-transform:uppercase;
  margin-bottom:12px; margin-top:20px;
  display:flex; align-items:center; gap:10px;
}
.res-div-label::before { content:''; width:20px; height:1px; background:var(--gold); }
.res-div-label:first-child { margin-top:0; }

.res-table {
  width:100%; border-collapse:collapse;
}
.res-table th {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.2em; color:var(--gray); text-align:left;
  padding:8px 12px; border-bottom:1px solid rgba(200,169,110,.1);
  text-transform:uppercase;
}
.res-table td {
  padding:12px 12px; font-size:13px; letter-spacing:.04em;
  border-bottom:1px solid rgba(200,169,110,.05);
  color:rgba(240,236,228,.8);
  transition:color .2s;
}
.res-table tr:hover td { color:var(--white); background:rgba(200,169,110,.03); }
.res-table tr:last-child td { border-bottom:none; }

/* 順位バッジ */
.rank {
  font-family:'Bebas Neue',sans-serif; font-size:18px;
  color:rgba(240,236,228,.2); letter-spacing:.05em;
  display:inline-block; width:32px; text-align:center;
}
.rank.r1 { color:var(--gold); }
.rank.r2 { color:rgba(200,169,110,.6); }
.rank.r3 { color:rgba(200,169,110,.4); }

/* 優勝クラウンアイコン */
.crown { font-size:14px; margin-left:6px; }

/* 詳細リンク */
.res-detail-link {
  display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.2em; color:var(--gold); text-transform:uppercase;
  transition:gap .3s;
}
.res-detail-link:hover { gap:14px; }
.res-detail-link svg { width:12px; }

/* =============================================
   NEWS SECTION
============================================= */
.news {
  background:var(--dark);
  padding:140px 0;
}
.news-inner { max-width:1280px; margin:0 auto; padding:0 5vw; }
.news-head {
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:48px;
}
.news-more {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.25em; color:var(--gold); text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
  transition:gap .3s;
}
.news-more:hover { gap:14px; }
.news-list { display:flex; flex-direction:column; gap:1px; }
.news-item {
  display:grid; grid-template-columns:160px 1fr auto;
  align-items:center; gap:32px;
  padding:24px 0; border-bottom:1px solid rgba(200,169,110,.08);
  transition:padding-left .3s var(--ease);
  cursor:pointer;
}
.news-item:hover { padding-left:12px; }
.news-date {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.1em; color:var(--gray);
}
.news-title {
  font-size:14px; letter-spacing:.05em; line-height:1.6;
  color:rgba(240,236,228,.8);
  transition:color .3s;
}
.news-item:hover .news-title { color:var(--white); }
.news-arrow {
  width:32px; height:32px; border:1px solid rgba(200,169,110,.2);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:.3s;
}
.news-item:hover .news-arrow { background:var(--gold); border-color:var(--gold); }
.news-item:hover .news-arrow svg { color:var(--black); }
.news-arrow svg { width:12px; color:var(--gold); transition:color .3s; }

/* =============================================
   PARTNERS SECTION — 無限マーキー
============================================= */
.partners {
  background:var(--black);
  padding:100px 0 108px;
  border-top:1px solid rgba(200,169,110,.08);
  overflow:hidden;
}
.partners-inner { max-width:1280px; margin:0 auto; padding:0 5vw; }

/* マーキーラッパー — 左右をグラデーションでフェード */
.marquee-wrap {
  position:relative; margin-top:56px;
  /* 左右フェードマスク */
  -webkit-mask-image:linear-gradient(
    to right,
    transparent 0%,
    black 12%,
    black 88%,
    transparent 100%
  );
  mask-image:linear-gradient(
    to right,
    transparent 0%,
    black 12%,
    black 88%,
    transparent 100%
  );
}

/* 1行目(左流れ)・2行目(右流れ) の共通 */
.marquee-row {
  display:flex; align-items:center;
  gap:0; overflow:hidden;
  border-top:1px solid rgba(200,169,110,.07);
  border-bottom:1px solid rgba(200,169,110,.07);
}
.marquee-row + .marquee-row {
  border-top:none; margin-top:2px;
}

/* アニメーション本体 */
.marquee-track {
  display:flex; align-items:center;
  gap:0; flex-shrink:0;
  /* 1セット分を複製して2セット並べ、1セット分だけ左にスライド */
  animation:marqueeLeft 60s linear infinite;
  will-change:transform;
}
.marquee-row.reverse .marquee-track {
  animation:marqueeRight 70s linear infinite;
}

/* ホバーで一時停止 */
.marquee-wrap:hover .marquee-track { animation-play-state:paused; }

@keyframes marqueeLeft  { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes marqueeRight { from{transform:translateX(-50%)} to{transform:translateX(0)} }

/* 各ロゴアイテム */
.p-item {
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  width:360px; height:160px;
  border-right:1px solid rgba(200,169,110,.07);
  padding:0 32px;
  cursor:pointer;
  transition:background .3s;
  position:relative;
}
.p-item:hover { background:rgba(200,169,110,.04); }

/* ロゴテキスト（実ロゴ画像がない場合の代替） */
.p-logo-txt {
  font-family:'Bebas Neue',sans-serif;
  font-size:32px; letter-spacing:.12em;
  color:rgba(240,236,228,.2);
  text-align:center; line-height:1.3;
  transition:color .3s;
  white-space:nowrap;
}
.p-item:hover .p-logo-txt { color:rgba(200,169,110,.7); }

/* ロゴ画像がある場合 */
.p-logo-img {
  max-width:120px; max-height:44px;
  width:auto; height:auto; object-fit:contain;
  filter:brightness(0) invert(1); opacity:.22;
  transition:opacity .3s, filter .3s;
}
.p-item:hover .p-logo-img { opacity:.7; }

/* 区切りドット */
.p-divider {
  flex-shrink:0; width:4px; height:4px; border-radius:50%;
  background:rgba(200,169,110,.2); margin:0 -2px;
}

/* =============================================
   FOOTER
============================================= */
footer {
  position:relative; overflow:hidden;
  background:var(--dark);
  border-top:1px solid rgba(200,169,110,.1);
  padding:72px 5vw 40px;
}
footer::before {
  content:''; position:absolute; inset:0;
  background-image:url('../img/4882746_m.jpg');
  background-size:cover; background-position:bottom; background-attachment:fixed;
  opacity:0.3; /* 見えるように濃くする */
  z-index:0; pointer-events:none;
}
footer::after {
  content:''; position:absolute; inset:0; top:0; height:100%;
  background:linear-gradient(to bottom, var(--dark) 0%, transparent 30%);
  z-index:1; pointer-events:none;
}
.footer-top {
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr 2fr 1fr;
  gap:64px; padding-bottom:56px;
  border-bottom:1px solid rgba(200,169,110,.08);
}
.footer-bottom {
  position:relative; z-index:2;
}
.footer-logo {
  font-family:'Bebas Neue',sans-serif; font-size:18px;
  letter-spacing:.14em;
}
.footer-logo span { color:var(--gold); }
.footer-tagline {
  font-size:11px; color:var(--gray); margin-top:10px;
  letter-spacing:.1em; line-height:1.8;
}
.footer-nav { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.footer-nav a {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.18em; color:rgba(240,236,228,.4);
  text-transform:uppercase;
  transition:color .3s;
}
.footer-nav a:hover { color:var(--gold); }
.footer-sns { display:flex; gap:12px; }
.sns-btn {
  width:40px; height:40px; border:1px solid rgba(200,169,110,.2);
  display:flex; align-items:center; justify-content:center;
  transition:.3s; cursor:pointer;
}
.sns-btn:hover { background:var(--gold); border-color:var(--gold); }
.sns-btn svg { width:16px; color:var(--gold); transition:color .3s; }
.sns-btn:hover svg { color:var(--black); }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:32px;
}
.footer-copy {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.2em; color:rgba(240,236,228,.25);
  text-transform:uppercase;
}

/* =============================================
   KEYFRAMES
============================================= */
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn { to { opacity:1; } }

/* =============================================
   INNER PAGE — HERO & BREADCRUMB
============================================= */
.inner-hero {
  position:relative; height:400px; overflow:hidden;
  display:flex; align-items:flex-end; padding-bottom:80px;
  margin-top:72px;
}
.inner-hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.06);
  filter:brightness(.28) saturate(.7);
  transition:transform 8s ease;
}
.inner-hero-content {
  position:relative; z-index:2; padding:0 5vw; width:100%;
}
.inner-hero-label {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.28em; color:var(--gold); text-transform:uppercase;
  margin-bottom:10px;
}
.inner-hero-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(56px,9vw,110px);
  letter-spacing:.06em; color:var(--white); line-height:.9;
}
.inner-hero-sub {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.22em; color:var(--gray); margin-top:14px;
  text-transform:uppercase;
}

.breadcrumb {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:14px 5vw;
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.14em; color:var(--gray2); text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.05);
  background:rgba(13,26,46,.9);
}
.breadcrumb a { color:var(--gray); transition:color .3s; }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb-sep { color:rgba(255,255,255,.18); font-size:10px; }
.breadcrumb-current { color:var(--gold); }

.inner-wrap {
  max-width:1200px; margin:0 auto; padding:80px 5vw 120px;
}
.inner-sec { margin-bottom:96px; }
.inner-sec-label {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.28em; color:var(--gold); text-transform:uppercase;
  margin-bottom:12px;
}
.inner-sec-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(36px,5vw,56px);
  letter-spacing:.06em; color:var(--white); line-height:1;
  margin-bottom:48px;
}

/* =============================================
   ANCHOR NAV
============================================= */
.anchor-nav {
  position:sticky; top:72px; z-index:400;
  background:rgba(13,26,46,.95); backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(200,169,110,.1);
  display:flex; align-items:center; overflow-x:auto;
  scrollbar-width:none;
}
.anchor-nav::-webkit-scrollbar { display:none; }
.anchor-nav-item {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.2em; text-transform:uppercase;
  color:rgba(240,236,228,.4); padding:18px 32px;
  position:relative; flex-shrink:0;
  transition:color .3s; cursor:pointer;
}
.anchor-nav-item::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:var(--gold);
  transform:scaleX(0); transition:transform .3s var(--ease);
}
.anchor-nav-item:hover { color:var(--white); }
.anchor-nav-item.active { color:var(--gold); }
.anchor-nav-item.active::after { transform:scaleX(1); }

/* =============================================
   ABOUT PAGE
============================================= */
.philosophy-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  align-items:center;
}
.philosophy-text h2 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(32px,4vw,48px); letter-spacing:.06em;
  color:var(--white); line-height:1.1; margin-bottom:24px;
}
.philosophy-text p {
  font-size:15px; line-height:2; color:rgba(240,236,228,.7);
  margin-bottom:16px;
}
.philosophy-img {
  position:relative; aspect-ratio:4/3; overflow:hidden;
  border:1px solid rgba(200,169,110,.15);
}
.philosophy-img::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg,rgba(200,169,110,.06) 0%,transparent 60%);
}
.philosophy-img img { height:100%; object-fit:cover; }

.timeline {
  position:relative; padding-left:32px;
  border-left:1px solid rgba(200,169,110,.2);
  display:flex; flex-direction:column; gap:48px;
}
.timeline-item { position:relative; }
.timeline-dot {
  position:absolute; left:-38px; top:4px;
  width:12px; height:12px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 12px rgba(200,169,110,.4);
}
.timeline-year {
  font-family:'Bebas Neue',sans-serif; font-size:20px;
  letter-spacing:.1em; color:var(--gold); margin-bottom:6px;
}
.timeline-title {
  font-family:'Oswald',sans-serif; font-size:16px;
  letter-spacing:.1em; color:var(--white); margin-bottom:8px;
}
.timeline-desc {
  font-size:14px; line-height:1.9; color:rgba(240,236,228,.6);
}

.about-stats-row {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.stat-card {
  background:var(--dark); border:1px solid rgba(200,169,110,.1);
  padding:36px 28px; text-align:center;
  transition:border-color .3s, transform .3s;
}
.stat-card:hover { border-color:rgba(200,169,110,.35); transform:translateY(-4px); }
.stat-num {
  font-family:'Bebas Neue',sans-serif; font-size:56px;
  letter-spacing:.04em; color:var(--gold); line-height:1;
}
.stat-unit {
  font-family:'Oswald',sans-serif; font-size:13px;
  letter-spacing:.15em; color:var(--gray); margin-top:4px;
}
.stat-label { font-size:12px; color:rgba(240,236,228,.5); margin-top:12px; }

/* =============================================
   TOURNAMENT DETAIL PAGE
============================================= */
.td-section {
  padding:80px 5vw;
  border-bottom:1px solid rgba(255,255,255,.05);
  max-width:100%;
}
.td-inner { max-width:1200px; margin:0 auto; }
.td-section:last-child { border-bottom:none; }

.spec-table { width:100%; border-collapse:collapse; margin-top:32px; }
.spec-table tr { border-bottom:1px solid rgba(255,255,255,.06); }
.spec-table tr:first-child { border-top:1px solid rgba(255,255,255,.06); }
.spec-table th {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.18em; color:var(--gold); text-transform:uppercase;
  padding:18px 24px 18px 0; width:160px; vertical-align:top;
  white-space:nowrap;
}
.spec-table td {
  font-size:14px; line-height:1.8; color:rgba(240,236,228,.75);
  padding:18px 0;
}

/* =============================================
   TEAMS LIST PAGE
============================================= */
.tournaments-page-inner {
  max-width:1200px; margin:0 auto; padding:64px 5vw 120px;
}
.teams-full-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  margin-top:48px;
}
.team-full-card {
  position:relative; aspect-ratio:4/3; overflow:hidden; cursor:pointer;
}
.team-full-card .tf-img { height:100%; }
.team-full-card .tf-img img { transition:transform .6s var(--ease); }
.team-full-card:hover .tf-img img { transform:scale(1.06); }
.tf-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(13,26,46,.92) 0%,rgba(13,26,46,.1) 60%);
  transition:background .4s;
}
.team-full-card:hover .tf-overlay {
  background:linear-gradient(to top,rgba(13,26,46,.96) 0%,rgba(13,26,46,.35) 60%);
}
.tf-info {
  position:absolute; bottom:0; left:0; right:0; padding:24px 20px 20px;
}
.tf-num {
  font-family:'Bebas Neue',sans-serif; font-size:12px;
  letter-spacing:.2em; color:var(--gold); margin-bottom:4px;
}
.tf-name {
  font-family:'Oswald',sans-serif; font-size:16px;
  letter-spacing:.08em; color:var(--white); margin-bottom:4px;
}
.tf-pref { font-size:11px; letter-spacing:.18em; color:var(--gray); text-transform:uppercase; }
.tf-badge {
  position:absolute; top:16px; right:16px;
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; padding:4px 10px; border:1px solid;
}
.tf-badge.b-u18 { color:var(--gold); border-color:var(--gold); }
.tf-badge.b-u15 { color:#60a5fa; border-color:#60a5fa; }
.tf-badge.b-u12 { color:#4ade80; border-color:#4ade80; }

/* =============================================
   TEAM DETAIL PAGE
============================================= */
.team-detail-header {
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  align-items:start; padding:80px 5vw 64px; max-width:1200px; margin:0 auto;
}
.team-detail-name {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(40px,6vw,72px); letter-spacing:.06em;
  color:var(--white); line-height:.95; margin-bottom:24px;
}
.team-detail-pref {
  font-family:'Oswald',sans-serif; font-size:13px;
  letter-spacing:.22em; color:var(--gray); text-transform:uppercase; margin-bottom:32px;
}
.team-uniform { display:flex; align-items:center; gap:16px; margin-bottom:32px; }
.uniform-swatch {
  width:48px; height:48px; border:1px solid rgba(255,255,255,.15); border-radius:2px;
}
.uniform-label {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.15em; color:var(--gray); text-transform:uppercase;
}
.team-detail-photo { position:relative; aspect-ratio:4/3; overflow:hidden; }
.team-detail-photo img { height:100%; object-fit:cover; }
.team-detail-photo::after {
  content:''; position:absolute; inset:0;
  border:1px solid rgba(200,169,110,.15); pointer-events:none;
}

.team-section { padding:0 5vw 80px; max-width:1200px; margin:0 auto; }
.staff-list {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:16px; margin-top:32px;
}
.staff-card {
  background:var(--dark); padding:20px 24px;
  border:1px solid rgba(255,255,255,.06); transition:border-color .3s;
}
.staff-card:hover { border-color:rgba(200,169,110,.2); }
.staff-role {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:6px;
}
.staff-name { font-size:15px; color:var(--white); }

.player-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px; margin-top:32px;
}
.player-card {
  display:flex; align-items:center; gap:16px;
  background:var(--dark); padding:14px 18px;
  border:1px solid rgba(255,255,255,.06); transition:border-color .3s;
}
.player-card:hover { border-color:rgba(200,169,110,.2); }
.player-num {
  font-family:'Bebas Neue',sans-serif; font-size:24px;
  letter-spacing:.04em; color:var(--gold); min-width:32px;
}
.player-name { font-size:14px; color:var(--white); margin-bottom:3px; }
.player-pos {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.18em; color:var(--gray); text-transform:uppercase;
}

/* =============================================
   RESULTS DETAIL PAGE
============================================= */
.results-detail-wrap {
  max-width:1200px; margin:0 auto; padding:64px 5vw 120px;
}
.results-detail-tabs {
  display:flex; gap:0; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:48px;
}
.rd-tab {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.2em; text-transform:uppercase;
  padding:16px 36px; color:var(--gray2);
  border-bottom:2px solid transparent;
  cursor:pointer; transition:color .3s, border-color .3s; background:transparent;
}
.rd-tab.active { color:var(--gold); border-bottom-color:var(--gold); }
.rd-tab:hover { color:var(--white); }
.rd-panel { display:none; }
.rd-panel.active { display:block; }

.results-img-area {
  background:var(--dark); border:1px solid rgba(255,255,255,.08);
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.results-img-placeholder {
  display:flex; flex-direction:column; align-items:center; gap:16px; color:var(--gray2);
}
.results-img-placeholder svg { width:48px; height:48px; opacity:.4; }
.results-img-placeholder p {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.18em; text-transform:uppercase;
}
.results-iframe-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; }
.results-iframe-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:none; }

/* =============================================
   GK AWARD DETAIL PAGE
============================================= */
.gk-detail-wrap { max-width:1200px; margin:0 auto; padding:64px 5vw 120px; }
.gk-div-section { margin-bottom:64px; }
.gk-div-heading {
  font-family:'Bebas Neue',sans-serif; font-size:28px;
  letter-spacing:.1em; color:var(--gold);
  padding:0 0 16px; border-bottom:1px solid rgba(200,169,110,.2); margin-bottom:24px;
}
.gk-detail-grid {
  display:grid; grid-template-columns:repeat(5,1fr); gap:2px;
}
.gk-detail-card {
  position:relative; aspect-ratio:2/3; overflow:hidden; cursor:pointer;
}
.gk-detail-card .gk-d-img { height:100%; }
.gk-detail-card .gk-d-img img { transition:transform .5s var(--ease); }
.gk-detail-card:hover .gk-d-img img { transform:scale(1.06); }
.gk-detail-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(13,26,46,.95) 0%,transparent 50%);
}
.gk-detail-badge {
  position:absolute; top:12px; left:12px;
  font-family:'Bebas Neue',sans-serif; font-size:13px;
  letter-spacing:.08em; color:var(--black);
  background:var(--gold); padding:3px 10px;
}
.gk-detail-info { position:absolute; bottom:0; left:0; right:0; padding:20px 16px 16px; }
.gk-detail-name {
  font-family:'Oswald',sans-serif; font-size:15px;
  letter-spacing:.08em; color:var(--white); margin-bottom:4px;
}
.gk-detail-team { font-size:11px; color:var(--gray); letter-spacing:.04em; }
.gk-detail-div {
  display:inline-block; font-family:'Oswald',sans-serif;
  font-size:9px; letter-spacing:.18em; text-transform:uppercase;
  border:1px solid; padding:2px 8px; margin-top:6px;
}
.gk-detail-div.d1 { color:var(--gold); border-color:var(--gold); }
.gk-detail-div.d2 { color:var(--gray); border-color:var(--gray2); }

/* =============================================
   PARTNERS PAGE
============================================= */
.partner-detail-section { max-width:1200px; margin:0 auto; padding:0 5vw 120px; }
.partner-cards-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:32px; margin-top:48px;
}
.partner-detail-card {
  background:var(--dark); border:1px solid rgba(255,255,255,.06);
  overflow:hidden; transition:border-color .4s;
}
.partner-detail-card:hover { border-color:rgba(200,169,110,.25); }
.partner-video-thumb {
  aspect-ratio:16/9; overflow:hidden;
  background:rgba(255,255,255,.03);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.partner-video-thumb img { width:100%; height:100%; object-fit:cover; }
.partner-play-icon {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(13,26,46,.4);
}
.partner-play-icon svg { width:56px; height:56px; color:var(--gold); opacity:.8; }
.partner-card-body { padding:28px; }
.partner-logo-txt {
  font-family:'Bebas Neue',sans-serif; font-size:24px;
  letter-spacing:.08em; color:var(--white); margin-bottom:16px;
}
.partner-card-name {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:10px;
}
.partner-card-desc {
  font-size:13px; line-height:1.8; color:rgba(240,236,228,.6); margin-bottom:20px;
}
.partner-card-link {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.2em; color:var(--gray); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:8px; transition:color .3s;
}
.partner-card-link:hover { color:var(--gold); }

/* =============================================
   NEWS PAGE
============================================= */
.news-page-wrap { max-width:1200px; margin:0 auto; padding:64px 5vw 120px; }
.news-category-filter { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px; }
.news-cat-btn {
  font-family:'Oswald',sans-serif; font-size:11px;
  letter-spacing:.2em; text-transform:uppercase;
  padding:8px 20px; border:1px solid rgba(255,255,255,.12);
  color:var(--gray2); background:transparent; cursor:pointer; transition:all .3s;
}
.news-cat-btn:hover,
.news-cat-btn.active { border-color:var(--gold); color:var(--gold); }

.news-list-full .news-item {
  display:grid; grid-template-columns:120px 1fr 32px;
  align-items:center; gap:24px;
  padding:20px 0; border-bottom:1px solid rgba(255,255,255,.06); cursor:pointer;
  transition:background .2s;
}
.news-list-full .news-item:hover { background:rgba(200,169,110,.03); }
.news-cat-tag {
  font-family:'Oswald',sans-serif; font-size:9px;
  letter-spacing:.2em; text-transform:uppercase;
  padding:3px 10px; border:1px solid var(--gold); color:var(--gold);
  display:inline-block; margin-top:8px;
}

.pagination {
  display:flex; align-items:center; justify-content:center; gap:4px; margin-top:64px;
}
.page-btn {
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.1em;
  border:1px solid rgba(255,255,255,.1); color:var(--gray);
  cursor:pointer; transition:all .3s; background:transparent;
}
.page-btn:hover { border-color:var(--gold); color:var(--gold); }
.page-btn.active { background:var(--gold); color:var(--black); border-color:var(--gold); }

/* =============================================
   NEWS ARTICLE
============================================= */
.article-wrap { max-width:800px; margin:0 auto; padding:80px 5vw 120px; }
.article-meta {
  display:flex; align-items:center; gap:20px;
  margin-bottom:40px; padding-bottom:24px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.article-date {
  font-family:'Oswald',sans-serif; font-size:12px;
  letter-spacing:.18em; color:var(--gray);
}
.article-title {
  font-size:clamp(20px,3vw,28px); line-height:1.6;
  color:var(--white); margin-bottom:48px; font-weight:700;
}
.article-body {
  font-size:15px; line-height:2; color:rgba(240,236,228,.75);
}
.article-body h2 {
  font-family:'Oswald',sans-serif; font-size:20px;
  letter-spacing:.1em; color:var(--gold); margin:48px 0 20px;
  padding-bottom:12px; border-bottom:1px solid rgba(200,169,110,.2);
}
.article-body h3 {
  font-family:'Oswald',sans-serif; font-size:16px;
  letter-spacing:.08em; color:var(--white); margin:32px 0 12px;
}
.article-body p { margin-bottom:20px; }
.article-body ul, .article-body ol { margin:0 0 20px 24px; }
.article-body li { margin-bottom:8px; }
.article-img-block { margin:40px 0; aspect-ratio:16/9; overflow:hidden; }
.article-img-block img { width:100%; height:100%; object-fit:cover; }

.article-nav {
  display:flex; justify-content:space-between; gap:24px;
  padding:48px 0; border-top:1px solid rgba(255,255,255,.08); margin-top:64px;
}
.article-nav-link { display:flex; flex-direction:column; gap:8px; max-width:45%; }
.article-nav-link .nav-label {
  font-family:'Oswald',sans-serif; font-size:10px;
  letter-spacing:.24em; color:var(--gold); text-transform:uppercase;
}
.article-nav-link .nav-title {
  font-size:13px; line-height:1.6; color:var(--gray); transition:color .3s;
}
.article-nav-link:hover .nav-title { color:var(--white); }
.article-nav-link.next { text-align:right; margin-left:auto; }

/* =============================================
   RESPONSIVE — INNER PAGES
============================================= */
@media (max-width:1024px) {
  .philosophy-grid { grid-template-columns:1fr; gap:40px; }
  .about-stats-row { grid-template-columns:repeat(2,1fr); }
  .teams-full-grid { grid-template-columns:repeat(2,1fr); }
  .gk-detail-grid { grid-template-columns:repeat(3,1fr); }
  .partner-cards-grid { grid-template-columns:1fr; }
  .team-detail-header { grid-template-columns:1fr; gap:40px; }
}
@media (max-width:768px) {
  .inner-hero { height:280px; padding-bottom:56px; }
  .inner-hero-title { font-size:clamp(44px,12vw,80px); }
  .about-stats-row { grid-template-columns:repeat(2,1fr); gap:16px; }
  .stat-num { font-size:40px; }
  .teams-full-grid { grid-template-columns:1fr 1fr; }
  .gk-detail-grid { grid-template-columns:repeat(2,1fr); }
  .anchor-nav-item { padding:14px 20px; font-size:11px; }
  .spec-table th { width:100px; font-size:10px; }
  .player-grid { grid-template-columns:1fr 1fr; }
  .news-list-full .news-item { grid-template-columns:1fr; }
  .td-section { padding:56px 5vw; }
}

/* =============================================
   RESPONSIVE
============================================= */
@media (max-width:1024px) {
  .gk-grid { grid-template-columns:repeat(4,1fr); }
  .t-grid { grid-template-columns:repeat(2,1fr); }
  .about-inner { grid-template-columns:1fr; gap:56px; }
  .about-img { max-width:560px; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-nav { grid-column:1/-1; }
}
@media (max-width:768px) {
  nav { display:none; }
  .hamburger { display:flex; }
  body.menu-open { overflow:hidden; }
  .gk-grid { grid-template-columns:repeat(2,1fr); }
  .t-grid { grid-template-columns:1fr; }
  .partners-grid { grid-template-columns:repeat(3,1fr); }
  .news-item { grid-template-columns:1fr; gap:8px; }
  .news-date { font-size:11px; }
  .footer-top { grid-template-columns:1fr; gap:40px; }
  .hero-year { display:none; }
  .about-stats { grid-template-columns:repeat(3,1fr); }
  body { cursor:auto; }
  .cur { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}