:root{
  --cst-paper:#fbf9f0;
  --cst-paper-deep:#f3f0e4;
  --cst-paper-shadow:#ebe7d6;
  --cst-olive:#6b7a3a;
  --cst-olive-dark:#556330;
  --cst-sage:#9aa878;
  --cst-sage-soft:#c4ccab;
  --cst-rose:#b06a5c;
  --cst-rose-dark:#985548;
  --cst-moss:#2e3a1e;
  --cst-moss-soft:#3d4a28;
  --cst-muted:#6a7458;
  --cst-shadow:0 16px 38px rgba(72, 67, 44, 0.08);
  --cst-shadow-soft:0 10px 24px rgba(72, 67, 44, 0.06);
  --cst-radius:8px;
  --cst-max:1180px;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'Inter', Arial, sans-serif;
  color:var(--cst-moss);
  background:
    radial-gradient(circle at 1px 1px, rgba(90,110,60,0.04) 1px, transparent 0),
    linear-gradient(180deg, #f3f0e4 0%, #ebe7d6 100%);
  background-size:5px 5px, auto;
}

body::before,
body::after{
  content:'';
  position:fixed;
  inset:auto;
  pointer-events:none;
  z-index:0;
}

body::before{
  top:0;
  right:0;
  width:34vw;
  height:28vw;
  background:radial-gradient(circle, rgba(154,168,120,0.12) 0%, rgba(154,168,120,0) 70%);
}

body::after{
  bottom:0;
  left:0;
  width:30vw;
  height:30vw;
  background:radial-gradient(circle, rgba(176,106,92,0.09) 0%, rgba(176,106,92,0) 72%);
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  max-width:100%;
}

.cst-page{
  position:relative;
  z-index:1;
}

.cst-page > main,
.cst-page > footer{
  position:relative;
  z-index:1;
}

.cst-progress{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:4px;
  z-index:250;
  background:rgba(196,204,171,0.35);
}

.cst-progress-bar{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg, var(--cst-olive) 0%, var(--cst-rose) 100%);
}

.cst-header{
  position:sticky;
  top:0;
  z-index:200;
  border-bottom:1px solid rgba(196,204,171,0.9);
  background:rgba(243,240,228,0.94);
}

.cst-header.cst-header-scrolled{
  background:rgba(251,249,240,0.98);
  box-shadow:0 8px 24px rgba(72, 67, 44, 0.08);
}

.cst-header-inner,
.cst-section,
.cst-footer-inner{
  width:min(calc(100% - 2rem), var(--cst-max));
  margin:0 auto;
}

.cst-header-inner{
  position:relative;
  overflow:visible;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:78px;
}

.cst-brand{
  display:flex;
  align-items:center;
  gap:0.9rem;
  min-width:0;
}

.cst-brand-mark{
  width:32px;
  height:32px;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:var(--cst-olive);
  color:var(--cst-paper);
  font-family:'Spectral', Georgia, serif;
  font-size:1rem;
  font-weight:700;
}

.cst-brand-copy{
  min-width:0;
}

.cst-brand-copy strong{
  display:block;
  font-family:'Spectral', Georgia, serif;
  font-size:1.28rem;
  line-height:1;
}

.cst-brand-copy span{
  display:block;
  color:var(--cst-muted);
  font-size:0.78rem;
  font-style:italic;
  letter-spacing:0.08em;
  margin-top:0.18rem;
}

.cst-burger{
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  width:48px;
  height:48px;
  border:1px solid var(--cst-sage-soft);
  border-radius:10px;
  background:var(--cst-paper);
  cursor:pointer;
}

.cst-burger span{
  width:18px;
  height:2px;
  background:var(--cst-moss);
}

.cst-nav{
  border-bottom:1px solid rgba(196,204,171,0.75);
  background:rgba(243,240,228,0.9);
}

.cst-nav ul{
  width:min(calc(100% - 2rem), var(--cst-max));
  margin:0 auto;
  padding:0.9rem 0;
  list-style:none;
  display:flex;
  align-items:center;
  gap:1.4rem;
}

.cst-nav a{
  font-weight:500;
  color:var(--cst-moss);
  border-bottom:1px solid transparent;
  padding-bottom:0.18rem;
}

.cst-nav a:hover,
.cst-nav a:focus-visible{
  color:var(--cst-olive);
  border-bottom-color:var(--cst-olive);
}

.cst-nav-current::before{
  content:'❧ ';
  color:var(--cst-olive);
}

.cst-nav-backdrop{}

.cst-section{
  padding:4.4rem 0;
}

.cst-section + .cst-section{
  border-top:1px solid rgba(196,204,171,0.4);
}

.cst-kicker{
  display:block;
  margin-bottom:0.9rem;
  color:var(--cst-olive);
  text-transform:uppercase;
  font-size:0.82rem;
  letter-spacing:0.14em;
  font-weight:600;
}

.cst-section h1,
.cst-section h2,
.cst-section h3{
  font-family:'Spectral', Georgia, serif;
  margin:0 0 1rem;
  color:var(--cst-moss);
}

.cst-section h2{
  font-size:clamp(2rem, 4vw, 3.2rem);
}

.cst-section p{
  margin:0 0 1rem;
  font-size:1rem;
  line-height:1.75;
  color:var(--cst-moss);
}

.cst-muted{
  color:var(--cst-muted);
}

.cst-grid{
  display:grid;
  gap:1.25rem;
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.cst-grid-3{
  display:grid;
  gap:1.25rem;
  grid-template-columns:repeat(3, minmax(0,1fr));
}

.cst-note-card,
.cst-feature-card,
.cst-metric,
.cst-glossary-card,
.cst-method-card,
.cst-about-card,
.cst-rg-card{
  min-width:0;
  background:var(--cst-paper);
  border:1px solid var(--cst-sage-soft);
  border-left:3px solid var(--cst-olive);
  border-radius:var(--cst-radius);
  box-shadow:var(--cst-shadow-soft);
  padding:1.35rem;
}

.cst-note-card h3,
.cst-feature-card h3,
.cst-glossary-card h3,
.cst-method-card h3,
.cst-about-card h3,
.cst-rg-card h3{
  margin-bottom:0.6rem;
  font-size:1.34rem;
}

.cst-research-intro{
  display:grid;
  gap:1.5rem;
  grid-template-columns:minmax(0,1.3fr) minmax(0,0.9fr);
  align-items:start;
}

.cst-metric-list{
  display:grid;
  gap:1rem;
}

.cst-metric strong{
  display:block;
  font-family:'Spectral', Georgia, serif;
  font-size:2rem;
}

.cst-metric span{
  color:var(--cst-muted);
  font-size:0.95rem;
}

.cst-expert-layout,
.cst-method-layout,
.cst-about-layout,
.cst-rg-layout{
  display:grid;
  gap:1.4rem;
  grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);
  align-items:start;
}

.cst-score-list{
  list-style:none;
  margin:1.25rem 0 0;
  padding:0;
  display:grid;
  gap:0.8rem;
}

.cst-score-list li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:0.6rem;
  border-bottom:1px solid rgba(196,204,171,0.55);
}

.cst-score-list strong{
  font-family:'Spectral', Georgia, serif;
  font-size:1.05rem;
}

.cst-game-grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.cst-feature-card small,
.cst-note-card small{
  color:var(--cst-muted);
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.74rem;
}

.cst-hero{
  text-align:center;
  position:relative;
  overflow:hidden;
}

.cst-hero h1{
  font-size:clamp(42px,7vw,96px);
  font-weight:700;
  line-height:0.98;
}

.cst-hero h1 em{
  color:var(--cst-olive);
  font-style:italic;
}

.cst-hero-subline{
  max-width:760px;
  margin:0 auto 1.2rem;
  color:var(--cst-muted);
  font-size:1.08rem;
}

.cst-hero-line{
  width:80px;
  height:1px;
  margin:1.6rem auto;
  background:var(--cst-olive);
}

.cst-hero-branches{
  pointer-events:none;
}

.cst-hero-branch{
  position:absolute;
  width:160px;
  height:160px;
  opacity:0.35;
  stroke:var(--cst-olive);
  fill:none;
  stroke-width:1.5;
}

.cst-hero-branch-left{
  top:2rem;
  left:-1rem;
}

.cst-hero-branch-right{
  right:-1rem;
  bottom:1rem;
}

.cst-top-picks{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(3, minmax(0,1fr));
  margin-top:2rem;
}

.cst-top-card{
  min-width:0;
  text-align:left;
  background:var(--cst-paper);
  border:1px solid var(--cst-sage-soft);
  border-left:3px solid var(--cst-olive);
  border-radius:var(--cst-radius);
  box-shadow:var(--cst-shadow-soft);
  padding:1.1rem;
}

.cst-top-card strong{
  display:block;
  font-family:'Spectral', Georgia, serif;
  font-size:1.35rem;
}

.cst-top-card span{
  color:var(--cst-muted);
  font-size:0.95rem;
}

.cst-casino-list{
  display:grid;
  gap:1rem;
}

.cst-card{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:1.2rem;
  align-items:start;
  min-width:0;
  background:var(--cst-paper);
  border:1px solid var(--cst-sage-soft);
  border-left:3px solid var(--cst-olive);
  border-radius:8px;
  box-shadow:var(--cst-shadow-soft);
  padding:1.15rem;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, border-left-color .22s ease;
}

.cst-card:hover,
.cst-card.cst-card-active{
  transform:translateY(-2px) scale(1.01);
  border-color:var(--cst-sage);
  border-left-color:var(--cst-olive-dark);
  box-shadow:0 18px 34px rgba(72, 67, 44, 0.12);
}

.cst-logo-wrap{display:flex;align-items:center;height:40px;flex-shrink:0;min-width:0;max-width:200px;}
.cst-logo-wrap img{height:100%;width:auto;max-width:100%;object-fit:contain;}

.cst-card-main{
  min-width:0;
  display:grid;
  gap:0.9rem;
}

.cst-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.cst-card-title{
  min-width:0;
}

.cst-card-title h3{
  margin-bottom:0.25rem;
  font-size:1.6rem;
}

.cst-badge{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  padding:0.35rem 0.65rem;
  border:1px solid var(--cst-rose);
  border-radius:999px;
  background:var(--cst-paper);
  font-family:'Spectral', Georgia, serif;
  font-weight:600;
  font-size:0.82rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}

.cst-signature{
  display:block;
  margin-top:0.4rem;
  color:var(--cst-muted);
  font-size:10px;
  font-style:italic;
}

.cst-rating{
  text-align:right;
  flex-shrink:0;
}

.cst-rating strong{
  display:block;
  font-family:'Spectral', Georgia, serif;
  font-size:1.45rem;
}

.cst-leaf-rating{
  display:flex;
  justify-content:flex-end;
  gap:0.35rem;
  margin-top:0.25rem;
}

.cst-leaf{
  width:10px;
  height:10px;
  border-radius:50%;
  border:1.5px solid var(--cst-sage);
  background:transparent;
}

.cst-leaf.is-full{
  border-color:var(--cst-olive);
  background:var(--cst-olive);
}

.cst-bonus{
  font-family:'Spectral', Georgia, serif;
  font-weight:600;
  font-size:1.35rem;
  display:inline-block;
  padding-bottom:0.35rem;
  border-bottom:1px solid rgba(107,122,58,0.7);
}

.cst-bonus-text{
  color:var(--cst-muted);
}

.cst-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:0.55rem;
}

.cst-pill{
  display:inline-flex;
  align-items:center;
  padding:0.34rem 0.7rem;
  border:1px solid rgba(107,122,58,0.42);
  border-radius:999px;
  background:rgba(154,168,120,0.2);
  color:var(--cst-moss);
  font-size:0.84rem;
}

.cst-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}

.cst-disclaimer{
  color:var(--cst-muted);
  font-size:0.85rem;
}

.cst-cta-btn,
.cst-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  min-height:46px;
  padding:0.8rem 1.25rem;
  border-radius:6px;
  border:1.5px solid var(--cst-olive);
  background:var(--cst-olive);
  color:var(--cst-paper);
  font-family:'Spectral', Georgia, serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:1px;
  box-shadow:0 10px 22px rgba(107,122,58,0.16);
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}

.cst-cta-btn:hover,
.cst-button:hover,
.cst-cta-btn:focus-visible,
.cst-button:focus-visible{
  background:var(--cst-moss);
  border-color:var(--cst-moss);
  transform:translateY(-1px);
}

.cst-button-secondary{
  background:transparent;
  color:var(--cst-moss);
  border-color:var(--cst-moss);
  box-shadow:none;
}

.cst-glossary{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(3, minmax(0,1fr));
}

.cst-glossary-card p:last-child,
.cst-note-card p:last-child,
.cst-feature-card p:last-child,
.cst-about-card p:last-child,
.cst-rg-card p:last-child{
  margin-bottom:0;
}

.cst-rg-links,
.cst-footer-links,
.cst-legal-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:0.75rem;
}

.cst-rg-links a,
.cst-footer-links a,
.cst-legal-list a,
.cst-inline-link{
  color:var(--cst-olive-dark);
  text-decoration:underline;
  text-decoration-color:rgba(107,122,58,0.45);
}

.cst-rg-badge,
.cst-footer-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  padding:0.45rem 0.8rem;
  border-radius:999px;
  background:var(--cst-moss);
  color:var(--cst-paper);
  font-weight:700;
}

.cst-footer{
  border-top:1px solid rgba(196,204,171,0.9);
  background:rgba(243,240,228,0.9);
  padding:2.4rem 0 3rem;
}

.cst-footer-inner{
  display:grid;
  gap:1.4rem;
}

.cst-footer-top{
  display:grid;
  gap:1.4rem;
  grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr);
}

.cst-footer-meta{
  display:flex;
  align-items:center;
  gap:0.9rem;
  flex-wrap:wrap;
  color:var(--cst-muted);
  font-size:0.95rem;
}

.cst-footer small{
  color:var(--cst-muted);
  line-height:1.7;
}

.cst-cookie-banner{
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:2147483645;
  background:rgba(46,58,30,0.97);
  color:var(--cst-paper);
  border:1px solid rgba(196,204,171,0.4);
  border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,0.28);
  padding:1rem 1.1rem;
}

.cst-cookie-banner[data-cst-cookie-state='hidden'],
.cst-age-overlay[data-cst-age-state='confirmed']{
  display:none;
}

.cst-cookie-banner p{
  color:var(--cst-paper);
  margin-bottom:0.8rem;
}

.cst-cookie-actions{
  display:flex;
  align-items:center;
  gap:0.75rem;
  flex-wrap:wrap;
}

.cst-cookie-accept,
.cst-cookie-decline,
.cst-age-confirm,
.cst-age-leave{
  min-height:44px;
  border-radius:6px;
  border:1px solid var(--cst-sage-soft);
  padding:0.7rem 1rem;
  font-family:'Inter', Arial, sans-serif;
  font-weight:600;
  cursor:pointer;
}

.cst-cookie-accept,
.cst-age-confirm{
  background:var(--cst-olive);
  color:var(--cst-paper);
  border-color:var(--cst-olive);
}

.cst-cookie-decline,
.cst-age-leave{
  background:transparent;
  color:var(--cst-paper);
}

.cst-age-box p{
  color:var(--cst-moss);
}

.cst-age-box{
  display:grid;
  gap:0.8rem;
}

.cst-legal-hero{
  padding-top:3.4rem;
}

.cst-legal-hero p{
  max-width:820px;
}

.cst-legal-content{
  display:grid;
  gap:1rem;
}

.cst-legal-content section{
  background:var(--cst-paper);
  border:1px solid var(--cst-sage-soft);
  border-left:3px solid var(--cst-olive);
  border-radius:var(--cst-radius);
  box-shadow:var(--cst-shadow-soft);
  padding:1.35rem;
}

.cst-legal-content h2{
  font-size:1.85rem;
}

.cst-legal-content h3{
  font-size:1.24rem;
}

.cst-legal-table{
  width:100%;
  border-collapse:collapse;
}

.cst-legal-table th,
.cst-legal-table td{
  text-align:left;
  padding:0.8rem;
  border-bottom:1px solid rgba(196,204,171,0.55);
  vertical-align:top;
}

.cst-table-wrap{
  overflow-x:auto;
}

@media (max-width:900px){
  .cst-burger{
    display:flex;
  }

  .cst-nav{
    position:fixed;
    top:0;
    right:0;
    width:min(320px,85vw);
    height:100dvh;
    z-index:201;
    background:#ffffff;
    transform:translateX(calc(100% + 16px));
    opacity:0;
    visibility:hidden;
    transition:transform .3s ease,opacity .3s ease,visibility 0s linear .3s;
    overflow-y:auto;
    padding:1.5rem 1rem;
  }

  .cst-nav ul{
    width:100%;
    padding-top:4rem;
    flex-direction:column;
    align-items:flex-start;
  }

  .cst-nav-backdrop{
    position:fixed;
    inset:0;
    z-index:199;
    background:rgba(0,0,0,.5);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }

  body.cst-nav-open .cst-nav{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    transition:transform .3s ease,opacity .3s ease,visibility 0s linear 0s;
  }

  body.cst-nav-open .cst-nav-backdrop{
    opacity:1;
    pointer-events:auto;
  }

  body.cst-nav-open{
    overflow:hidden;
  }

  .cst-grid,
  .cst-grid-3,
  .cst-top-picks,
  .cst-glossary,
  .cst-game-grid,
  .cst-research-intro,
  .cst-expert-layout,
  .cst-method-layout,
  .cst-about-layout,
  .cst-rg-layout,
  .cst-footer-top{
    grid-template-columns:1fr;
  }
}

@media (max-width:720px){
  .cst-card{
    grid-template-columns:1fr;
  }

  .cst-rating{
    text-align:left;
  }

  .cst-leaf-rating{
    justify-content:flex-start;
  }
}

@media (max-width:550px){
  html,body{ overflow-x:hidden; max-width:100%; }
  .cst-page *{ max-width:100%; }
  .cst-casino-list, .cst-grid{ grid-template-columns:1fr !important; }
  .cst-card{ flex-direction:column !important; min-width:0; }
  .cst-card *{ min-width:0; max-width:100%; }
  .cst-card-top{ flex-wrap:wrap; gap:8px; }
  .cst-logo-wrap{ max-width:120px; height:36px; }
  .cst-cta-btn, .cst-button{ width:100% !important; max-width:100%; white-space:normal; word-break:break-word; overflow-wrap:anywhere; }
  h1,h2{ font-size:clamp(1.25rem,6vw,2rem) !important; }
  .cst-card:hover{ transform:none !important; }
  .cst-nav{ max-width:min(320px,85vw) !important; }
  table{ table-layout:auto; width:max-content; min-width:100%; }
  .cst-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  thead th{ white-space:nowrap; }
  td{ word-break:normal; overflow-wrap:break-word; hyphens:none; }
}
@media (max-width:380px){
  h1{ font-size:clamp(1.1rem,7vw,1.5rem) !important; }
  .cst-logo-wrap{ max-width:90px; height:30px; }
  .cst-bonus-text{ font-size:0.85rem; }
}
