/* Çubuklu Tenis — 6-25 numaralı ziyaretçi düzenleri.
   Bu dosya yalnızca bu düzenlerden biri seçildiğinde yüklenir. */

html.tennis-ui-root { scroll-snap-type: none; height: auto; overflow-y: auto; }
body.tennis-ui-ready {
  --tennis-lime: #dff238;
  --tennis-court: #176b4a;
  --tennis-clay: #c85d32;
  --tennis-navy: #102a43;
  --tennis-cream: #f7f3e8;
  overflow-x: hidden;
}
body.tennis-ui-ready .site-header,
body.tennis-ui-ready .hero,
body.tennis-ui-ready .card,
body.tennis-ui-ready .btn { transition: border-radius .35s ease, background .35s ease, box-shadow .35s ease, transform .35s ease; }
body.tennis-ui-ready .hero { isolation: isolate; }
body.tennis-ui-ready .hero::before {
  content: ''; position: absolute; inset: 18px; z-index: -1; pointer-events: none;
  border: 1px solid rgba(255,255,255,.2); border-radius: inherit;
  background: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.18) 50%, transparent 50.2%);
}
.tennis-atmosphere { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.tennis-atmosphere::before,
.tennis-atmosphere::after { content: ''; position: absolute; border: 1px solid color-mix(in srgb, var(--primary) 13%, transparent); }
.tennis-atmosphere::before { width: 58vw; height: 78vh; left: -18vw; top: 16vh; transform: rotate(-12deg); }
.tennis-atmosphere::after { width: 46vw; height: 62vh; right: -13vw; bottom: -10vh; transform: rotate(14deg); }
.tennis-ball-orbit { position: absolute; width: 28px; height: 28px; border-radius: 50%; background: var(--tennis-lime); box-shadow: inset -5px -5px 0 rgba(71,88,0,.16), 0 10px 30px rgba(113,140,0,.25); animation: tennisFloat 8s ease-in-out infinite; }
.tennis-ball-orbit::before { content: ''; position: absolute; inset: 3px -2px; border: 2px solid rgba(255,255,255,.85); border-left-color: transparent; border-right-color: transparent; border-radius: 50%; transform: rotate(42deg); }
.tennis-ball-orbit:nth-child(1) { left: 8vw; top: 22vh; }
.tennis-ball-orbit:nth-child(2) { right: 9vw; top: 54vh; width: 18px; height: 18px; animation-delay: -3s; }
.tennis-reveal { opacity: 0; transform: translateY(24px); }
.tennis-reveal.is-visible { opacity: 1; transform: none; transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
@keyframes tennisFloat { 0%,100% { transform: translate3d(0,0,0) rotate(0); } 50% { transform: translate3d(34px,-44px,0) rotate(180deg); } }
@keyframes tennisRally { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes tennisPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(223,242,56,.22); } 50% { box-shadow: 0 0 0 16px rgba(223,242,56,0); } }
@keyframes tennisCourtSweep { 0%,100% { transform: translateY(0) scale(1); opacity: .82; } 50% { transform: translateY(-14px) scale(1.018); opacity: 1; } }
@keyframes tennisSpotlight { 0%,100% { transform: translate3d(0,0,0) scale(1); opacity: .55; } 50% { transform: translate3d(-8vw,-5vh,0) scale(1.18); opacity: .86; } }
@keyframes tennisServePath {
  0% { transform: translate3d(0,0,0) scale(.82) rotate(0deg); opacity: 0; }
  8% { opacity: 1; }
  45% { transform: translate3d(42vw,-44vh,0) scale(1.22) rotate(460deg); }
  78% { opacity: 1; }
  100% { transform: translate3d(82vw,-18vh,0) scale(.72) rotate(860deg); opacity: 0; }
}
@keyframes tennisReturnPath {
  0% { transform: translate3d(0,0,0) scale(.75) rotate(0deg); opacity: 0; }
  12% { opacity: .85; }
  52% { transform: translate3d(-38vw,46vh,0) scale(1.1) rotate(-520deg); }
  100% { transform: translate3d(-74vw,28vh,0) scale(.68) rotate(-900deg); opacity: 0; }
}
@keyframes tennisPhotoFlash { 0%,42% { transform: translateX(-42%); opacity: 0; } 52% { opacity: 1; } 72%,100% { transform: translateX(42%); opacity: 0; } }
@keyframes tennisScorePulse { 0%,100% { opacity: .54; transform: scaleX(.96); } 50% { opacity: 1; transform: scaleX(1); } }
@keyframes tennisScoreFlip { 0%,49% { filter: brightness(1); } 50%,100% { filter: brightness(1.18); } }
@keyframes tennisMagazineRun { from { transform: translateX(0); } to { transform: translateX(-48%); } }
@keyframes tennisMagazineBall { 0%,100% { transform: translate3d(0,0,0) rotate(0); } 50% { transform: translate3d(-7vw,18px,0) rotate(180deg); } }
@keyframes tennisSetDot { 0%,100% { background: rgba(255,255,255,.24); transform: scaleY(.75); } 50% { background: var(--tennis-lime); transform: scaleY(1.18); } }
@keyframes tennisSetGlow { 0%,100% { transform: translate3d(0,0,0) scale(1); opacity: .45; } 50% { transform: translate3d(-7vw,-5vh,0) scale(1.18); opacity: .88; } }
@keyframes tennisRallyTrail { 0% { transform: translateX(0) rotate(var(--trail-rotate, 0deg)); opacity: 0; } 12% { opacity: 1; } 72% { opacity: 1; } 100% { transform: translateX(125vw) rotate(var(--trail-rotate, 0deg)); opacity: 0; } }
@keyframes tennisRallyGlow { 0%,100% { transform: scale(1); opacity: .55; } 50% { transform: scale(1.18); opacity: .9; } }
@keyframes tennisCommandGrid { 0%,100% { transform: translateY(0); opacity: .8; } 50% { transform: translateY(-24px); opacity: 1; } }
@keyframes tennisCommandBall { 0%,100% { transform: translate3d(0,0,0) scale(.8); opacity: .45; } 50% { transform: translate3d(7vw,-6vh,0) scale(1.12); opacity: 1; } }
@keyframes tennisCommandPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(223,242,56,.18); } 50% { box-shadow: 0 0 0 12px rgba(223,242,56,0); } }
@keyframes tennisCommandEnter { from { opacity: 0; transform: translateY(-12px) scale(.98); } to { opacity: 1; transform: none; } }

/* 6 — Kort Kulübü App Shell */
@media (min-width: 961px) {
  body.layout-sidebar { display: grid; grid-template-columns: 250px minmax(0,1fr); grid-template-rows: 100vh; height: auto; overflow: visible; background: #edf4ef; }
  body.layout-sidebar .site-header { position: sticky; inset: 0 auto 0 0; width: 250px; height: 100vh; background: var(--tennis-navy); border: 0; box-shadow: 14px 0 40px rgba(16,42,67,.14); }
  body.layout-sidebar .site-header .container { height: 100%; padding: 28px 18px; flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
  body.layout-sidebar .brand { color: #fff; flex-direction: column; text-align: center; }
  body.layout-sidebar .brand img { width: 70px; height: 70px; border-radius: 50%; }
  body.layout-sidebar .main-nav { position: static; width: auto; height: auto; padding: 10px 0; margin: 0; background: transparent; border: 0; align-items: stretch; overflow-x: hidden; overflow-y: auto; }
  body.layout-sidebar .main-nav a { color: rgba(255,255,255,.82); border-left: 3px solid transparent; }
  body.layout-sidebar .main-nav a:hover, body.layout-sidebar .main-nav a.active { color: #fff; background: rgba(255,255,255,.1); border-left-color: var(--tennis-lime); }
  body.layout-sidebar main { margin: 0; width: auto; height: 100vh; overflow-y: auto; }
  body.layout-sidebar .site-footer { display: none; }
}

/* 7 — Maç Puanı Kompakt */
body.layout-compact { background: #07151f; color: #e8f3ec; font-size: 14px; }
body.layout-compact .site-header { background: #0b2532; border-bottom: 3px solid var(--tennis-lime); }
body.layout-compact .brand, body.layout-compact .main-nav a { color: #f4fff8; }
body.layout-compact .main-nav a.active { color: #07151f; background: var(--tennis-lime); }
body.layout-compact .hero { background: linear-gradient(110deg,#0b3829,#0a1e2c); padding: 46px 0; }
body.layout-compact .hero h1 { font-family: Consolas, monospace; text-transform: uppercase; letter-spacing: -.04em; }
body.layout-compact .card { background: #0c2834; color: #fff; border: 1px solid #24505b; border-top: 4px solid var(--tennis-lime); box-shadow: none; }
body.layout-compact .card h3, body.layout-compact .muted { color: #e9f6ef; }
body.layout-compact .section.alt { background: #0a202b; border-color: #24505b; }

/* 8 — Grand Slam Ferah */
body.layout-spacious { background: var(--tennis-cream); font-family: Georgia, 'Times New Roman', serif; }
body.layout-spacious .site-header { background: rgba(247,243,232,.9); box-shadow: none; backdrop-filter: blur(16px); }
body.layout-spacious .hero { min-height: 76vh; display: grid; align-items: center; padding: 120px 0; background: linear-gradient(125deg,#123c2e 0%,#1c7354 72%,#dff238 72.2%,#dff238 73%,#1c7354 73.2%); }
body.layout-spacious .hero h1 { font-size: clamp(3rem,6vw,5.8rem); font-weight: 500; letter-spacing: -.055em; }
body.layout-spacious .section { padding: 110px 0; }
body.layout-spacious .card { padding: 42px; border: 0; box-shadow: 0 24px 60px rgba(23,64,48,.1); }

/* 9 — Tenis Topu Oval */
body.layout-rounded { --radius: 36px; background: #f1f8df; }
body.layout-rounded .site-header { margin: 14px; border: 0; border-radius: 999px; background: rgba(255,255,255,.88); backdrop-filter: blur(18px); }
body.layout-rounded .hero { margin: 14px; border-radius: 54px; background: radial-gradient(circle at 86% 20%,#e8f63f 0 16%,transparent 16.3%),linear-gradient(130deg,#16563e,#23845d); }
body.layout-rounded .card { border-radius: 36px 36px 36px 8px; border: 0; box-shadow: 0 18px 44px rgba(28,103,73,.12); }
body.layout-rounded .btn, body.layout-rounded .main-nav a { border-radius: 999px; }
body.layout-rounded .hero-logo img { border-radius: 50%; animation: tennisPulse 3s infinite; }

/* 10 — Baseline Keskin */
body.layout-sharp { --radius: 0; background: #f7f7f2; }
body.layout-sharp .site-header { border-bottom: 5px solid var(--tennis-navy); box-shadow: none; }
body.layout-sharp .hero { background: linear-gradient(90deg,#0e4c36 0 7%,#fff 7% 7.4%,#0e4c36 7.4% 92.6%,#fff 92.6% 93%,#0e4c36 93%); }
body.layout-sharp .card { border: 0; border-left: 6px solid var(--tennis-clay); box-shadow: 10px 10px 0 #dfe7df; }
body.layout-sharp .btn { text-transform: uppercase; letter-spacing: .08em; }

/* 11 — Turnuva Bento Panosu */
body.layout-bento { background: #e8eee9; }
body.layout-bento .site-header { margin: 18px; border-radius: 24px; background: rgba(255,255,255,.92); }
body.layout-bento .hero { margin: 18px; border-radius: 32px; background: linear-gradient(135deg,#163e30,#2d8764); }
body.layout-bento .grid { gap: 16px; }
body.layout-bento .card { min-height: 180px; border: 0; border-radius: 28px; box-shadow: 0 16px 35px rgba(21,70,51,.08); background: linear-gradient(145deg,#fff,#f4f7f4); }
body.layout-bento .grid .card:nth-child(2n) { background: var(--tennis-navy); color: #fff; }
body.layout-bento .grid .card:nth-child(2n) h3, body.layout-bento .grid .card:nth-child(2n) .muted { color: #fff; }

/* 12 — Centre Court Cam */
body.layout-glass { background: radial-gradient(circle at 15% 10%,#49a77c 0,transparent 34%),radial-gradient(circle at 90% 80%,#dff23855 0,transparent 28%),#0e382d; background-attachment: fixed; }
body.layout-glass .site-header { margin: 14px; border-radius: 22px; background: rgba(8,37,28,.56)!important; border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(22px); }
body.layout-glass .brand, body.layout-glass .main-nav a { color: #fff; }
body.layout-glass .hero { margin: 14px; border-radius: 30px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(20px); }
body.layout-glass .card, body.layout-glass .section.alt { background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.5); backdrop-filter: blur(24px); }

/* 13 — Toprak Kort Soft UI */
body.layout-neumorphism { background: #d99a76; --surface: #d99a76; --text: #40251d; --muted: #704638; --primary: #5a3326; --accent: #7b4632; }
body.layout-neumorphism .site-header, body.layout-neumorphism .card, body.layout-neumorphism .hero { background: #d99a76; color: #40251d; border: 0; box-shadow: 12px 12px 28px #b67d5d,-12px -12px 28px #fcb78f; }
body.layout-neumorphism .hero { margin: 24px; border-radius: 30px; }
body.layout-neumorphism .hero h1, body.layout-neumorphism .hero p { color: #40251d; }
body.layout-neumorphism .btn { background: #d99a76; color: #40251d; box-shadow: 7px 7px 14px #b67d5d,-7px -7px 14px #fcb78f; }

/* 14 — Pop Art Tenis */
body.layout-neubrutalism { background: #f4ee56; color: #101010; }
body.layout-neubrutalism * { border-radius: 0!important; }
body.layout-neubrutalism .site-header { background: #fff; border: 4px solid #111; margin: 12px; box-shadow: 8px 8px 0 #ef4f91; }
body.layout-neubrutalism .hero { margin: 12px; background: #2366db; border: 5px solid #111; box-shadow: 12px 12px 0 #ef4f91; }
body.layout-neubrutalism .card { border: 4px solid #111; box-shadow: 7px 7px 0 #111; background: #fff; }
body.layout-neubrutalism .card:nth-child(2n) { background: #ff8e37; }
body.layout-neubrutalism .btn { border: 3px solid #111; box-shadow: 4px 4px 0 #111; }

/* 15 — Club Pro İstatistik */
body.layout-fintech { background: #edf3f0; --primary: #0f3541; --accent: #13865f; }
body.layout-fintech .site-header { background: #0f3541; border-bottom: 1px solid #1e5360; }
body.layout-fintech .brand, body.layout-fintech .main-nav a { color: #fff; }
body.layout-fintech .main-nav a.active { background: var(--tennis-lime); color: #0f3541; }
body.layout-fintech .hero { background: linear-gradient(120deg,#0f3541,#116046); clip-path: polygon(0 0,100% 0,100% 86%,64% 93%,0 84%); }
body.layout-fintech .card { border: 1px solid #d4e2dc; border-top: 4px solid #13865f; box-shadow: 0 16px 34px rgba(15,53,65,.08); }

/* 16 — Oyuncu Tüneli Menü */
body.layout-offcanvas .site-header { position: absolute; inset: 0 0 auto; background: transparent; box-shadow: none; }
body.layout-offcanvas .brand { color: #fff; }
body.layout-offcanvas .nav-toggle { display: block; position: fixed; right: 24px; top: 20px; z-index: 1002; background: var(--tennis-lime); border: 0; border-radius: 50%; width: 52px; height: 52px; }
body.layout-offcanvas .main-nav { position: fixed; inset: 0; width: 100%; height: 100vh; z-index: 1001; display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 8px; padding: 86px 20px 36px; overflow-y: auto; background: linear-gradient(115deg,#07151f,#165f44); clip-path: circle(0 at calc(100% - 48px) 48px); transition: clip-path .6s cubic-bezier(.7,0,.2,1); }
body.layout-offcanvas .main-nav.open { left: 0; clip-path: circle(150% at calc(100% - 48px) 48px); }
body.layout-offcanvas .main-nav a { color: #fff; font-size: clamp(1.35rem,3vw,2.2rem); }
body.layout-offcanvas .hero { min-height: 82vh; padding-top: 150px; background: linear-gradient(90deg,rgba(5,20,14,.96),rgba(20,95,66,.82)); }

/* 17 — Şampiyona Kort Dock */
body.layout-dock { padding-bottom: 110px; background: #eef5ef; }
body.layout-dock .site-header { position: fixed; inset: auto auto 22px 50%; transform: translateX(-50%); width: min(1120px,calc(100% - 32px)); max-width: none; padding: 0; border: 1px solid rgba(255,255,255,.6); border-radius: 24px; background: rgba(12,44,34,.92); backdrop-filter: blur(20px); }
body.layout-dock .site-header .container { flex-wrap: nowrap; min-height: 72px; }
body.layout-dock .brand span { display: none; }
body.layout-dock .main-nav { flex-wrap: nowrap; overflow-x: auto; }
body.layout-dock .main-nav a { color: #fff; white-space: nowrap; }
body.layout-dock .main-nav a.active { background: var(--tennis-lime); color: #123528; }

/* 18 — Canlı Ralli Zemin */
body.layout-split { color: #fff; background: linear-gradient(-45deg,#071c2a,#0d6347,#78a91d,#113d63); background-size: 400% 400%; animation: tennisRally 14s ease infinite; }
body.layout-split .site-header { background: rgba(4,20,27,.54); backdrop-filter: blur(16px); }
body.layout-split .hero { background: transparent!important; min-height: 74vh; display: grid; align-items: center; }
body.layout-split .card, body.layout-split .section.alt { background: rgba(255,255,255,.11); color: #fff; border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(18px); }
body.layout-split .card h3, body.layout-split .muted { color: #fff; }

/* 19 — Turnuva Mozaik */
body.layout-masonry { background: #f2f0e7; }
body.layout-masonry .hero { margin: 18px; border-radius: 26px; background: linear-gradient(120deg,#183c31,#ac512f); }
@media (min-width: 900px) {
  body.layout-masonry .grid, body.layout-masonry .grid-3, body.layout-masonry .grid-4 { display: grid; grid-template-columns: repeat(12,1fr); column-count: auto; }
  body.layout-masonry .card { grid-column: span 4; width: auto; min-height: 180px; }
  body.layout-masonry .card:nth-child(3n+1) { grid-column: span 7; }
  body.layout-masonry .card:nth-child(3n+2) { grid-column: span 5; background: #173c31; }
  body.layout-masonry .card:nth-child(3n+2) h3, body.layout-masonry .card:nth-child(3n+2) .muted { color: #fff; }
}

/* 20 — Kulüp Fotoğraf Kortu */
body.layout-dual-sidebar {
  background-color: #071914;
  background-blend-mode: multiply;
  color: #f5fff8;
}
body.layout-dual-sidebar::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 16%, rgba(223,242,56,.32), transparent 20%),
    radial-gradient(circle at 82% 12%, rgba(80,205,148,.22), transparent 24%),
    linear-gradient(125deg, rgba(5,21,16,.92), rgba(7,25,20,.64) 45%, rgba(5,18,15,.94));
}
body.layout-dual-sidebar .tennis-atmosphere {
  z-index: -1;
  background:
    linear-gradient(90deg, transparent 49.7%, rgba(255,255,255,.16) 49.85% 50.15%, transparent 50.3%),
    linear-gradient(0deg, transparent 14%, rgba(255,255,255,.12) 14.2% 14.45%, transparent 14.7%, transparent 84%, rgba(255,255,255,.12) 84.2% 84.45%, transparent 84.7%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 9vw);
  transform-origin: center bottom;
  animation: tennisCourtSweep 12s ease-in-out infinite;
}
body.layout-dual-sidebar .tennis-atmosphere::before {
  width: min(72vw, 980px);
  height: min(62vh, 560px);
  left: 50%;
  top: 18vh;
  border: 2px solid rgba(255,255,255,.24);
  border-radius: 28px;
  background:
    linear-gradient(90deg, transparent 49.6%, rgba(255,255,255,.22) 49.8% 50.2%, transparent 50.4%),
    radial-gradient(ellipse at 50% 0, rgba(223,242,56,.2), transparent 48%);
  transform: translateX(-50%) perspective(760px) rotateX(62deg);
  box-shadow: 0 0 70px rgba(223,242,56,.14), inset 0 0 70px rgba(255,255,255,.05);
}
body.layout-dual-sidebar .tennis-atmosphere::after {
  width: 36vw;
  height: 36vw;
  right: -12vw;
  bottom: -16vw;
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(223,242,56,.3), transparent 58%);
  animation: tennisSpotlight 7s ease-in-out infinite;
}
body.layout-dual-sidebar .tennis-ball-orbit:nth-child(1) {
  width: 34px;
  height: 34px;
  left: 7vw;
  top: 68vh;
  animation: tennisServePath 5.8s cubic-bezier(.35,.02,.22,1) infinite;
}
body.layout-dual-sidebar .tennis-ball-orbit:nth-child(2) {
  width: 18px;
  height: 18px;
  right: 11vw;
  top: 22vh;
  opacity: .78;
  animation: tennisReturnPath 7.2s cubic-bezier(.4,0,.2,1) infinite;
}
body.layout-dual-sidebar .site-header {
  margin: 16px auto 0;
  width: min(1180px, calc(100% - 32px));
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 22px;
  background: rgba(5,24,18,.74);
  box-shadow: 0 24px 70px rgba(0,0,0,.2);
  backdrop-filter: blur(18px);
}
body.layout-dual-sidebar .brand,
body.layout-dual-sidebar .main-nav a { color: #f5fff8; }
body.layout-dual-sidebar .main-nav a.active,
body.layout-dual-sidebar .main-nav a:hover {
  color: #071914;
  background: var(--tennis-lime);
}
body.layout-dual-sidebar main {
  min-height: 100vh;
  padding-top: 22px;
  background: linear-gradient(rgba(6,23,17,.18),rgba(6,23,17,.76));
}
body.layout-dual-sidebar .hero {
  position: relative;
  margin: 28px auto;
  width: min(1180px, calc(100% - 32px));
  min-height: 72vh;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 32px;
  background:
    linear-gradient(120deg, rgba(8,35,26,.88), rgba(11,72,50,.54)),
    radial-gradient(circle at 78% 26%, rgba(223,242,56,.26), transparent 28%);
  box-shadow: 0 34px 110px rgba(0,0,0,.34);
  backdrop-filter: blur(10px);
}
body.layout-dual-sidebar .hero::after {
  content: '';
  position: absolute;
  inset: -40% -20%;
  z-index: -1;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.16) 48%, transparent 61%);
  transform: translateX(-40%);
  animation: tennisPhotoFlash 6.5s ease-in-out infinite;
}
body.layout-dual-sidebar .hero h1 { text-shadow: 0 14px 34px rgba(0,0,0,.32); }
body.layout-dual-sidebar .card,
body.layout-dual-sidebar .section.alt {
  background: rgba(255,255,255,.13);
  color: #fff;
  border: 1px solid rgba(255,255,255,.24);
  box-shadow: 0 18px 52px rgba(0,0,0,.18);
  backdrop-filter: blur(18px);
}
body.layout-dual-sidebar .card h3,
body.layout-dual-sidebar .muted { color: #f4fff7; }
body.layout-dual-sidebar .card:hover {
  transform: translateY(-10px);
  border-color: rgba(223,242,56,.54);
  box-shadow: 0 28px 74px rgba(0,0,0,.28);
}

/* 21 — Mobil Skor Tabelası */
body.layout-bottom { padding-bottom: 90px; background: #eaf0eb; }
body.layout-bottom .site-header { position: fixed; inset: auto 0 0; background: #092431; border-top: 3px solid var(--tennis-lime); }
body.layout-bottom .site-header .container { min-height: 76px; flex-wrap: nowrap; }
body.layout-bottom .brand { display: none; }
body.layout-bottom .main-nav { display: flex; width: 100%; flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; }
body.layout-bottom .main-nav a { color: #fff; white-space: nowrap; font-size: .78rem; text-align: center; }
body.layout-bottom .main-nav a.active { background: var(--tennis-lime); color: #092431; }
body.layout-bottom .hero { background: linear-gradient(125deg,#092431,#176b4a); }

/* 22 — Tenis Dergisi */
body.layout-horizontal { background: #f6f0e4; color: #191919; font-family: Georgia,'Times New Roman',serif; }
body.layout-horizontal .site-header { background: #f6f0e4; border-bottom: 1px solid #191919; box-shadow: none; }
body.layout-horizontal .brand { letter-spacing: .06em; text-transform: uppercase; }
body.layout-horizontal .hero { background: transparent; color: #191919; border-bottom: 12px solid var(--tennis-clay); }
body.layout-horizontal .hero h1 { font-size: clamp(3rem,7vw,6.4rem); line-height: .95; }
body.layout-horizontal .hero::after { display: block; width: 340px; height: 340px; right: 4vw; top: 12%; background: radial-gradient(circle,var(--tennis-lime) 0 48%,transparent 49%); }
body.layout-horizontal .card { border: 0; border-top: 3px solid #191919; border-radius: 0; background: transparent; box-shadow: none; }

/* 23 — Set Set Tam Ekran */
html.tennis-ui-root:has(body.layout-snap) { scroll-snap-type: y mandatory; }
body.layout-snap .site-header { position: fixed; background: rgba(255,255,255,.88); backdrop-filter: blur(16px); }
body.layout-snap .hero, body.layout-snap .section { min-height: 100vh; scroll-snap-align: start; display: flex; align-items: center; }
body.layout-snap .hero { background: linear-gradient(125deg,#112f26,#1f805c); }
body.layout-snap .section:nth-of-type(odd) { background: #e9f1e9; }

/* 24 — Hareketli Ralli */
body.layout-right { background: linear-gradient(135deg,#f3f7f2,#e3efe8); }
body.layout-right .site-header { background: rgba(255,255,255,.78); backdrop-filter: blur(18px); }
body.layout-right .hero { min-height: 74vh; background: radial-gradient(circle at 78% 22%,var(--tennis-lime) 0 9%,transparent 9.3%),linear-gradient(120deg,#102d24,#268260); }
body.layout-right .hero-logo img { animation: tennisFloat 7s ease-in-out infinite; }
body.layout-right .card { border: 0; box-shadow: 0 18px 46px rgba(18,70,50,.1); }
body.layout-right .card:hover { transform: translateY(-12px) rotate(-.5deg); box-shadow: 0 28px 60px rgba(18,70,50,.17); }
body.layout-right .main-nav a:hover { transform: translateY(-3px); }

/* 25 — Hızlı Servis Komut Menüsü */
body.layout-command { background: #08141d; color: #ecf7f1; }
body.layout-command .site-header { background: #0c2530; border-bottom: 1px solid #23444e; }
body.layout-command .site-header .container { justify-content: space-between; }
body.layout-command .brand { color: #fff; }
body.layout-command .main-nav { display: none; }
body.layout-command .site-header::after { display: none; }
body.layout-command .hero { background: linear-gradient(130deg,#0c2530,#155a43); }
body.layout-command .card { background: #102e39; color: #fff; border: 1px solid #28505b; }
body.layout-command .card h3, body.layout-command .muted { color: #fff; }
.tennis-command-trigger { margin-left: auto; padding: 11px 18px; border: 1px solid rgba(255,255,255,.25); border-radius: 12px; color: #fff; background: rgba(255,255,255,.08); cursor: pointer; font: inherit; }
.tennis-command { position: fixed; inset: 0; z-index: 2000; display: none; place-items: start center; padding: 12vh 20px 20px; background: rgba(2,12,17,.75); backdrop-filter: blur(12px); }
.tennis-command.open { display: grid; }
.tennis-command__panel { width: min(680px,100%); max-height: 72vh; overflow: auto; padding: 18px; border: 1px solid #31525d; border-radius: 20px; background: #0d222c; box-shadow: 0 30px 100px rgba(0,0,0,.5); }
.tennis-command input { width: 100%; padding: 16px 18px; border: 1px solid #365b66; border-radius: 12px; background: #071820; color: #fff; font-size: 1rem; }
.tennis-command__links { display: grid; gap: 8px; margin-top: 14px; }
.tennis-command__links a { padding: 12px 14px; border-radius: 10px; color: #eaf8f1; background: rgba(255,255,255,.04); }
.tennis-command__links a:hover { background: var(--tennis-lime); color: #10211a; text-decoration: none; }

/* 21-25 premium motion pass */
body.layout-bottom {
  padding-bottom: 116px;
  background: #eef5ef;
  color: #11231c;
}
body.layout-bottom .score-dock-scene {
  position: fixed;
  left: 50%;
  bottom: 92px;
  z-index: 998;
  display: grid;
  grid-template-columns: auto auto auto auto;
  gap: 8px;
  align-items: center;
  width: min(760px, calc(100% - 24px));
  padding: 10px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 22px;
  color: #eefbf4;
  background: rgba(6,25,35,.82);
  box-shadow: 0 18px 54px rgba(7,26,32,.22);
  transform: translateX(-50%);
  backdrop-filter: blur(16px);
}
body.layout-bottom .score-dock-scene::before {
  content: '';
  position: absolute;
  inset: 5px;
  z-index: -1;
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(223,242,56,.18), transparent 35%, rgba(45,210,140,.2));
  animation: tennisScorePulse 3.2s ease-in-out infinite;
}
body.layout-bottom .score-dock-scene span,
body.layout-bottom .score-dock-scene strong,
body.layout-bottom .score-dock-scene em {
  min-width: 0;
  padding: 9px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  white-space: nowrap;
  text-align: center;
  font-style: normal;
}
body.layout-bottom .score-dock-scene strong {
  color: #10231a;
  background: var(--tennis-lime);
  animation: tennisScoreFlip 4s steps(1,end) infinite;
}
body.layout-bottom .site-header {
  position: fixed;
  inset: auto 0 0;
  background: #071d27;
  border-top: 3px solid var(--tennis-lime);
  box-shadow: 0 -18px 50px rgba(3,18,23,.18);
}
body.layout-bottom .site-header .container { min-height: 82px; flex-wrap: nowrap; }
body.layout-bottom .main-nav { scrollbar-width: none; }
body.layout-bottom .main-nav::-webkit-scrollbar { display: none; }
body.layout-bottom .main-nav a { border: 1px solid transparent; }
body.layout-bottom .main-nav a:hover { border-color: rgba(223,242,56,.5); transform: translateY(-3px); }
body.layout-bottom .hero {
  min-height: 78vh;
  background:
    radial-gradient(circle at 72% 18%, rgba(223,242,56,.28), transparent 18%),
    linear-gradient(125deg,#092431,#176b4a);
}
body.layout-bottom .card { border: 0; box-shadow: 0 22px 52px rgba(12,62,46,.12); }
body.layout-bottom .card:hover { transform: translateY(-9px); }

body.layout-horizontal .magazine-scene {
  position: fixed;
  left: 0;
  right: 0;
  top: 118px;
  z-index: -1;
  display: flex;
  gap: 5vw;
  width: max-content;
  min-width: 220vw;
  color: rgba(25,25,25,.055);
  font: 900 clamp(4rem,13vw,12rem)/1 Arial, sans-serif;
  letter-spacing: .04em;
  white-space: nowrap;
  animation: tennisMagazineRun 22s linear infinite;
}
body.layout-horizontal .site-header {
  background: rgba(246,240,228,.88);
  backdrop-filter: blur(14px);
}
body.layout-horizontal .hero {
  position: relative;
  min-height: 78vh;
  overflow: hidden;
}
body.layout-horizontal .hero::after { animation: tennisMagazineBall 8s ease-in-out infinite; }
body.layout-horizontal .hero::before {
  border-color: rgba(25,25,25,.18);
  background: linear-gradient(90deg, transparent 49.8%, rgba(25,25,25,.16) 50%, transparent 50.2%);
}
body.layout-horizontal .card:hover { transform: translateY(-8px); background: rgba(255,255,255,.35); }

body.layout-snap { background: #071914; }
body.layout-snap .set-scroll-scene {
  position: fixed;
  right: 24px;
  top: 50%;
  z-index: 120;
  display: grid;
  gap: 12px;
  transform: translateY(-50%);
}
body.layout-snap .set-scroll-scene i {
  width: 10px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255,255,255,.28);
  box-shadow: 0 0 0 1px rgba(255,255,255,.1);
  animation: tennisSetDot 4s ease-in-out infinite;
}
body.layout-snap .set-scroll-scene i:nth-child(2) { animation-delay: .3s; }
body.layout-snap .set-scroll-scene i:nth-child(3) { animation-delay: .6s; }
body.layout-snap .set-scroll-scene i:nth-child(4) { animation-delay: .9s; }
body.layout-snap .hero {
  background:
    radial-gradient(circle at 78% 20%, rgba(223,242,56,.22), transparent 18%),
    linear-gradient(125deg,#112f26,#1f805c);
}
body.layout-snap .section { position: relative; overflow: hidden; }
body.layout-snap .section::before {
  content: '';
  position: absolute;
  inset: auto 8% 10% auto;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(223,242,56,.24), transparent 60%);
  animation: tennisSetGlow 7s ease-in-out infinite;
}
body.layout-snap .section:nth-of-type(even) { background: #f7f3e8; }
body.layout-snap .card:hover { transform: translateY(-12px) scale(1.01); }

body.layout-right .rally-scene {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
body.layout-right .rally-scene span {
  position: absolute;
  left: -15vw;
  width: 42vw;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(23,107,74,.55), rgba(223,242,56,.75), transparent);
  animation: tennisRallyTrail 5.8s ease-in-out infinite;
}
body.layout-right .rally-scene span:nth-child(1) { top: 18vh; --trail-rotate: -9deg; }
body.layout-right .rally-scene span:nth-child(2) { top: 38vh; animation-delay: -1.2s; --trail-rotate: 8deg; }
body.layout-right .rally-scene span:nth-child(3) { top: 62vh; animation-delay: -2.4s; --trail-rotate: -6deg; }
body.layout-right .rally-scene span:nth-child(4) { top: 78vh; animation-delay: -3.6s; --trail-rotate: 11deg; }
body.layout-right .hero {
  min-height: 78vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 22%,var(--tennis-lime) 0 9%,transparent 9.3%),
    linear-gradient(120deg,#102d24,#268260);
}
body.layout-right .hero::after {
  content: '';
  position: absolute;
  right: -8vw;
  bottom: -12vw;
  width: 34vw;
  height: 34vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(223,242,56,.3), transparent 60%);
  animation: tennisRallyGlow 5s ease-in-out infinite;
}

body.layout-command .command-court-scene {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent 49.8%, rgba(223,242,56,.18) 50%, transparent 50.2%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 72px);
  animation: tennisCommandGrid 9s ease-in-out infinite;
}
body.layout-command .command-court-scene span {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--tennis-lime);
  box-shadow: 0 0 28px rgba(223,242,56,.45);
  animation: tennisCommandBall 6s ease-in-out infinite;
}
body.layout-command .command-court-scene span:nth-child(1) { left: 18vw; top: 24vh; }
body.layout-command .command-court-scene span:nth-child(2) { right: 20vw; top: 52vh; animation-delay: -2s; }
body.layout-command .command-court-scene span:nth-child(3) { left: 48vw; bottom: 14vh; animation-delay: -4s; }
body.layout-command .site-header { box-shadow: 0 16px 60px rgba(0,0,0,.18); }
body.layout-command .hero {
  min-height: 76vh;
  background:
    radial-gradient(circle at 75% 20%, rgba(223,242,56,.2), transparent 18%),
    linear-gradient(130deg,#0c2530,#155a43);
}
.tennis-command-trigger { animation: tennisCommandPulse 3.5s ease-in-out infinite; }
.tennis-command__panel {
  width: min(720px,100%);
  background: linear-gradient(145deg,#0d222c,#0a1922);
  transform-origin: top center;
  animation: tennisCommandEnter .24s ease both;
}
.tennis-command__links a { transition: transform .2s ease, background .2s ease; }
.tennis-command__links a:hover { transform: translateX(6px); }

@media (max-width: 960px) {
  body.tennis-ui-ready .site-header { max-width: none; }
  body.tennis-ui-ready .hero { margin-left: 0; margin-right: 0; border-radius: 0; }
  body.tennis-ui-ready .hero .container { grid-template-columns: 1fr; }
  body.tennis-ui-ready .hero-logo { display: none; }
  body.layout-spacious { font-size: 16px; }
  body.layout-spacious .section, body.layout-spacious .hero { padding: 72px 0; }
  body.layout-bento .site-header, body.layout-glass .site-header, body.layout-neubrutalism .site-header { margin: 8px; border-radius: 18px!important; }
  body.layout-dock .nav-toggle { display: block; color: #fff; }
  body.layout-dock .main-nav { display: none; position: fixed; inset: auto 16px 104px; padding: 14px; flex-direction: column; background: #0c2c22; border-radius: 18px; }
  body.layout-dock .main-nav.open { display: flex; }
  body.layout-snap .hero, body.layout-snap .section { min-height: auto; scroll-snap-align: none; }
  html.tennis-ui-root:has(body.layout-snap) { scroll-snap-type: none; }
  body.layout-bottom .score-dock-scene { bottom: 86px; grid-template-columns: 1fr 1fr; font-size: .78rem; border-radius: 18px; }
  body.layout-horizontal .magazine-scene { top: 96px; font-size: clamp(3.2rem,24vw,7rem); }
  body.layout-snap .set-scroll-scene { right: 12px; gap: 8px; }
  body.layout-snap .set-scroll-scene i { width: 8px; height: 24px; }
  body.layout-right .rally-scene span { width: 72vw; }
  body.layout-command .command-court-scene span { width: 12px; height: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  body.tennis-ui-ready *, body.tennis-ui-ready *::before, body.tennis-ui-ready *::after { animation-duration: .01ms!important; animation-iteration-count: 1!important; scroll-behavior: auto!important; transition-duration: .01ms!important; }
  .tennis-reveal { opacity: 1; transform: none; }
}
