/* ============================================================
   Gaming Foundry — gamingfoundry.io
   Blueprint design system. Do not restyle without approval.
   ============================================================ */

:root{
  --bg:#13243a;
  --panel:#182c46;
  --ink:#e9eef5;
  --body:#aec0d9;
  --mut:#9db4d2;
  --dim:#7b93b5;
  --chip-ink:#c8d6ea;
  --blue:#1475e1;
  --blue-2:#4391f0;
  --ok:#67e08b;
  --warn:#f7b32b;
  --red:#ff6b6b;
  --rule:rgba(133,170,215,.18);
  --hl-20:rgba(103,155,220,.2);
  --hl-25:rgba(103,155,220,.25);
  --hl-30:rgba(103,155,220,.3);
  --hl-35:rgba(103,155,220,.35);
  --dimline:rgba(123,147,181,.5);
  --mono:'IBM Plex Mono',monospace;
  --sans:'Archivo',sans-serif;
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;min-height:100vh;
  background-image:linear-gradient(rgba(103,155,220,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(103,155,220,.055) 1px,transparent 1px);
  background-size:36px 36px;
}
a{color:var(--blue-2);text-decoration:none}
a:hover{color:#7db3f5}
input::placeholder,textarea::placeholder{color:var(--dim)}
@keyframes gf-blink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes gf-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* utilities */
.m{font-family:var(--mono)}
.c-blue{color:var(--blue-2)}
.c-ok{color:var(--ok)}
.c-warn{color:var(--warn)}
.c-mut{color:var(--mut)}
.c-w{color:#fff}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(19,36,58,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.nav-inner{max-width:1220px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:18px 40px}
.nav-logo{display:flex;align-items:center;gap:14px;color:var(--ink)}
.nav-logo:hover{color:var(--ink)}
.logo-name{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.12em}
.nav-links{display:flex;gap:28px;align-items:center;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em}
.nav-links a{color:var(--mut)}
.nav-links a:hover{color:#fff}
.nav-links a.nav-contact{color:#fff;background:rgba(67,145,240,.22);border:1px solid rgba(67,145,240,.4);padding:8px 16px;border-radius:99px}
.nav-links a.nav-contact:hover{background:rgba(67,145,240,.35)}
.nav-toggle{display:none;background:none;border:1px solid var(--hl-35);border-radius:8px;color:var(--ink);width:40px;height:34px;align-items:center;justify-content:center;cursor:pointer;padding:0}

/* ---------- shared type ---------- */
.fig{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--blue-2);margin-bottom:18px}
.h2{margin:0;font-weight:700;font-size:38px;line-height:1.1;letter-spacing:-.02em}
.sec-p{margin:18px 0 0;font-size:15px;line-height:1.7;color:var(--body)}
.lbl{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.15em}

/* ---------- hero ---------- */
.hero{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:1fr 1.05fr;padding:64px 40px 56px;align-items:center}
.hero-copy{padding-right:44px}
.hero-copy .fig{margin-bottom:24px}
.hero h1{margin:0;font-weight:700;font-size:58px;line-height:1.04;letter-spacing:-.025em}
.u-line{border-bottom:3px solid var(--blue-2)}
.hero-lead{margin:24px 0 0;font-size:15.5px;line-height:1.7;color:var(--body);max-width:460px}
.hero-cta{display:flex;gap:14px;margin-top:34px;align-items:center}
.btn{background:var(--blue);color:#fff;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.1em;padding:14px 26px;border-radius:12px;box-shadow:0 10px 24px -12px rgba(20,117,225,.6);display:inline-block;border:none;cursor:pointer}
.btn:hover{background:#2b84e8;color:#fff}
.rev{font-family:var(--mono);font-size:11.5px;color:var(--mut);letter-spacing:.08em}

/* dimension-line frame around hero widget */
.fig-frame{position:relative;padding:26px 30px 30px 26px}
.dim-top{position:absolute;top:0;left:26px;right:30px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;color:var(--dim)}
.dim-left{position:absolute;top:26px;bottom:30px;left:0;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;color:var(--dim)}
.dim-top .ln{flex:1;height:1px;background:var(--dimline)}
.dim-left .ln{flex:1;width:1px;background:var(--dimline)}
.dim-left .vert{writing-mode:vertical-rl}
.dim-note{position:absolute;right:30px;bottom:-4px;font-family:var(--mono);font-size:10px;color:var(--dim);display:flex;align-items:center;gap:8px}
.dim-note .ln{width:40px;height:1px;background:var(--dimline)}

/* ---------- product widget shell ---------- */
.widget{border:1px solid var(--hl-35);background:var(--panel);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.widget-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--hl-20)}
.wb-brand{display:flex;align-items:center;gap:10px}
.wb-dot{width:18px;height:18px;background:var(--blue-2);border-radius:5px}
.wb-name{font-weight:700;font-size:12px;letter-spacing:.06em}
.wb-menu{display:flex;gap:14px;font-family:var(--mono);font-size:10px;color:var(--mut)}
.wb-menu .on{color:#fff}
.wg-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;padding:14px 16px}
.vcol{display:flex;flex-direction:column;gap:8px}
.panel-blue{border:1px solid var(--hl-30);background:rgba(20,117,225,.07);border-radius:12px;padding:12px}
.panel-blue.col{display:flex;flex-direction:column}
.panel-blue.vgap9{display:flex;flex-direction:column;gap:9px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.kv{display:flex;justify-content:space-between;font-size:11.5px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.kv.end{border-bottom:none}
.kv.sm{font-size:11px}
.kv.tight{padding:5px 0}
.kv .k{color:var(--mut)}
.wcta{margin-top:10px;background:var(--blue);color:#fff;text-align:center;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;padding:10px;border-radius:9px}

/* live dots */
.dot{width:6px;height:6px;border-radius:50%;background:var(--red);animation:gf-blink 1.4s infinite;flex:none}
.dot.g{background:var(--ok);animation:gf-blink 2s infinite}
.dot.lg{width:7px;height:7px}
.dot.sm{width:5px;height:5px}
.dot.still{animation:none}
.live-tag{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;color:var(--ok)}
.live-r{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9px;color:var(--red)}

/* ---------- sportsbook widget ---------- */
.match{border:1px solid var(--hl-25);border-radius:10px;padding:11px 12px;display:flex;justify-content:space-between;align-items:center}
.match-info{font-size:12px}
.match-sub{color:var(--mut);font-size:10.5px;margin-top:3px}
.odds{display:flex;gap:6px;font-family:var(--mono);font-size:11px}
.odd{border:1px solid var(--hl-25);border-radius:7px;padding:6px 10px}
.odd.hot{border-color:rgba(67,145,240,.55);background:rgba(20,117,225,.12);color:var(--blue-2)}
.sb-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:2px}
.sb-tiles span{height:44px;border-radius:8px}
.t-g1{background:linear-gradient(135deg,#24476e,#1b3a5e)}
.t-g2{background:linear-gradient(135deg,#1d3b5c,#0f4a72)}
.t-g3{background:linear-gradient(135deg,#28395e,#2b3a67)}
.t-g4{background:linear-gradient(135deg,#164064,#155799)}

/* ---------- capability strip / chips ---------- */
.cap-strip{max-width:1220px;margin:0 auto;display:flex;gap:12px;padding:0 40px 56px;font-family:var(--mono);flex-wrap:wrap}
.chip-lg{border:1px solid var(--hl-30);background:rgba(20,117,225,.08);border-radius:99px;padding:10px 20px;font-size:11px;letter-spacing:.12em;color:var(--chip-ink)}
.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;font-family:var(--mono)}
.chip{border:1px solid var(--hl-30);border-radius:99px;padding:8px 16px;font-size:10.5px;letter-spacing:.1em;color:var(--chip-ink)}

/* ---------- sections ---------- */
.sec{border-top:1px solid var(--rule)}
.tint{background:rgba(11,22,38,.45)}
.sec-inner{max-width:1220px;margin:0 auto;padding:72px 40px}
.sec-head{max-width:720px;margin-bottom:44px}
.center{text-align:center}
.center .sec-p{margin-left:auto;margin-right:auto;max-width:640px}

.split{display:grid;gap:48px;align-items:center}
.split.c-foundry{grid-template-columns:.9fr 1.1fr;align-items:start}
.split.c-casino{grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}
.split.c-pay{grid-template-columns:1.15fr 1fr}
.split.c-bo{grid-template-columns:1fr 1.25fr}
.split.c-lot{grid-template-columns:1fr 1.15fr}
.split.c-contact{grid-template-columns:.9fr 1.1fr;align-items:start}

/* ---------- cards ---------- */
.cards2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card{border:1px solid var(--hl-30);background:var(--panel);border-radius:14px;padding:22px}
.card:hover{border-color:rgba(67,145,240,.6)}
.card-t{font-weight:600;font-size:16px;margin:0 0 7px}
.card-p{font-size:13px;line-height:1.6;color:var(--mut)}
.minis{display:grid;gap:10px;margin-top:24px}
.minis.g2{grid-template-columns:1fr 1fr}
.minis.g3{grid-template-columns:1fr 1fr 1fr}
.mini{border:1px solid var(--hl-30);border-radius:12px;padding:14px 16px}
.mini b{font-weight:600;font-size:13.5px;display:block}
.mini span{font-size:11.5px;color:var(--mut);margin-top:4px;display:block}
.b-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:40px;text-align:left}

/* ---------- casino widget ---------- */
.jack{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(90deg,rgba(20,117,225,.22),rgba(20,117,225,.05));border-bottom:1px solid var(--hl-20)}
.jack-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--mut)}
.jack-val{font-family:var(--mono);font-size:18px;font-weight:600;color:#fff;letter-spacing:.06em}
.games{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.game{height:64px;border-radius:10px;position:relative}
.game span{position:absolute;left:8px;bottom:6px;font-family:var(--mono);font-size:8.5px;color:var(--chip-ink)}
.game.more{display:grid;place-items:center}
.game.more span{position:static;font-size:9px;color:var(--blue-2)}
.g-1{background:linear-gradient(150deg,#2b4a72,#182c46)}
.g-2{background:linear-gradient(150deg,#3d3b6e,#182c46)}
.g-3{background:linear-gradient(150deg,#1c5b73,#182c46)}
.g-4{background:linear-gradient(150deg,#245577,#182c46)}
.g-5{background:linear-gradient(150deg,#4a3a63,#182c46)}
.g-6{background:linear-gradient(150deg,#1f4f66,#182c46)}
.rou-row{display:flex;gap:6px;margin-bottom:12px}
.rou{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:600}
.rou.r{background:#c0392b}
.rou.k{background:#1b1e24;border:1px solid rgba(255,255,255,.2)}
.rou.z{background:#1e7d46}

/* blackjack card */
.bj-felt{position:relative;height:140px;background:radial-gradient(ellipse 120% 100% at 50% 120%,#1e7d46 0%,#14532f 55%,#0f2c1e 100%)}
.bj-tag{position:absolute;top:12px;left:14px;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;color:#fff;background:rgba(0,0,0,.4);border-radius:99px;padding:5px 12px}
.bj-watch{position:absolute;top:12px;right:14px;font-family:var(--mono);font-size:9.5px;color:var(--chip-ink);background:rgba(0,0,0,.4);border-radius:99px;padding:5px 12px}
.bj-cards{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.pcard{width:36px;height:50px;background:#f7f5f0;border-radius:6px;display:grid;place-items:center;font-weight:700;font-size:14px;color:#1a1a1a}
.pcard.r{color:#c0392b}
.pcard.brand{background:linear-gradient(135deg,#1475e1,#0c5cc0);font-family:var(--mono);font-size:8.5px;color:#fff}
.rot-l{transform:rotate(-6deg)}
.rot-m{transform:rotate(3deg)}
.rot-r{transform:rotate(9deg)}
.bj-meta{padding:13px 16px}
.bj-title-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.bj-title{font-weight:700;font-size:14px}
.bj-sub{font-family:var(--mono);font-size:10px;color:var(--mut)}
.spec-chips{display:flex;gap:8px;font-family:var(--mono);font-size:9.5px;flex-wrap:wrap}
.spec{border:1px solid var(--hl-30);border-radius:7px;padding:5px 10px;color:var(--chip-ink)}
.spec.ok{color:var(--ok)}
.col-gap20{display:flex;flex-direction:column;gap:20px}
.also{border:1px solid var(--hl-30);background:rgba(20,117,225,.07);border-radius:14px;padding:20px}
.also-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--dim);margin-bottom:12px}
.also-list{display:flex;flex-direction:column;gap:9px;font-size:13px;color:var(--chip-ink)}
.also-list div{display:flex;gap:10px}
.also-list .sl{color:var(--blue-2);font-family:var(--mono);font-size:11px}

/* ---------- payments widget ---------- */
.wallets{display:flex;gap:8px;padding:14px 16px 0;font-family:var(--mono);font-size:10.5px;flex-wrap:wrap}
.wallet{border:1px solid var(--hl-30);border-radius:99px;padding:7px 14px;color:var(--mut)}
.wallet.on{background:rgba(20,117,225,.22);border-color:rgba(67,145,240,.5);color:#fff}
.wallet.add{color:var(--blue-2)}
.pay-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px}
.method{display:flex;align-items:center;gap:10px;border:1px solid var(--hl-30);border-radius:10px;padding:10px 12px}
.method.hot{border-color:rgba(67,145,240,.55);background:rgba(20,117,225,.1)}
.pm-ic{width:26px;height:18px;border-radius:4px;flex:none}
.pm-ic.pm-card{background:linear-gradient(135deg,#2b4a72,#4391f0)}
.pm-ic.pm-bank{background:linear-gradient(135deg,#3d3b6e,#6b5ce7)}
.pm-ic.pm-crypto{background:linear-gradient(135deg,#e8842c,#f7b32b)}
.pm-name{font-size:12px;flex:1}
.pm-tag{font-family:var(--mono);font-size:9px}
.pm-note{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.1em}
.qr{align-self:center;width:84px;height:84px;border-radius:10px;background:repeating-conic-gradient(#dfe6f0 0% 25%,#13243a 0% 50%);background-size:11px 11px;border:5px solid #dfe6f0}
.addr{font-family:var(--mono);font-size:9.5px;color:var(--chip-ink);background:rgba(0,0,0,.25);border-radius:7px;padding:7px 9px;text-align:center}
.kv-plain{display:flex;justify-content:space-between;font-size:11px}

/* ---------- backoffice widget ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 16px 0;font-family:var(--mono)}
.kpi{border:1px solid var(--hl-30);border-radius:10px;padding:10px 12px}
.kpi-k{font-size:8.5px;letter-spacing:.15em;color:var(--dim)}
.kpi-v{font-size:14px;margin-top:5px;color:#fff}
.kpi-d{font-size:8.5px;margin-top:3px}
.bo-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;padding:14px 16px}
.camp{border:1px solid var(--hl-30);border-radius:10px;padding:10px 12px}
.camp.live{border-color:rgba(67,145,240,.55);background:rgba(20,117,225,.1)}
.camp-head{display:flex;justify-content:space-between;align-items:center}
.camp-name{font-size:12px;font-weight:600}
.camp-live{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:8.5px;color:var(--ok)}
.tags{display:flex;gap:6px;margin-top:7px;font-family:var(--mono);font-size:8.5px;color:var(--mut)}
.tag{border:1px solid var(--hl-30);border-radius:5px;padding:3px 7px}
.tags .end{margin-left:auto}
.appr-note{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:8.5px;color:var(--dim);letter-spacing:.1em}
.gap4{margin-top:4px}

/* ---------- lottery widget ---------- */
.live-draw{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;color:#fff}
.draw-body{padding:20px 16px;display:flex;flex-direction:column;gap:14px}
.balls{display:flex;gap:10px;justify-content:center}
.ball{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d8dee8);color:#13243a;display:grid;place-items:center;font-weight:700;font-size:17px;box-shadow:inset -3px -4px 8px rgba(0,0,0,.18)}
.ball.next{background:radial-gradient(circle at 35% 30%,#4c96f3,#0c5cc0);color:#fff;box-shadow:inset -3px -4px 8px rgba(0,0,0,.3);animation:gf-blink 2.4s infinite}
.draw-note{display:flex;justify-content:center;font-family:var(--mono);font-size:10px;color:var(--mut)}
.draw-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;font-family:var(--mono)}
.draw-stats .kpi-v{font-size:13px}
.retail-head{display:flex;justify-content:space-between;margin-bottom:8px}

/* ---------- ticker ---------- */
.ticker{border-top:1px solid var(--rule);overflow:hidden;background:var(--blue)}
.ticker-track{display:flex;width:max-content;animation:gf-marquee 20s linear infinite;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.18em;color:#fff;padding:12px 0}
.ticker-track span{white-space:pre}

/* ---------- contact form ---------- */
.mail-link{display:inline-block;margin-top:20px;font-family:var(--mono);font-size:13px;color:var(--blue-2)}
.form{border:1px solid var(--hl-35);background:var(--panel);border-radius:16px;padding:28px;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.form label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.15em;color:var(--dim);margin-bottom:14px}
.form label.msg{margin-bottom:18px}
.form input,.form textarea{display:block;width:100%;box-sizing:border-box;margin-top:7px;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--bg);border:1px solid var(--hl-35);border-radius:10px;padding:12px 14px}
.form textarea{resize:vertical}
.form-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form input.hp{display:none !important}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--rule)}
.footer-inner{max-width:1220px;margin:0 auto;padding:36px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.f-brand{display:flex;align-items:center;gap:14px}
.f-copy{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--mut)}
.f-links{display:flex;gap:22px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;flex-wrap:wrap}
.f-links a{color:var(--mut)}
.f-links a:hover{color:#fff}
.f-links a.mail{color:var(--blue-2)}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:900px){
  .nav-inner{padding:16px 24px}
  .hero{grid-template-columns:1fr;gap:44px;padding:48px 24px 44px}
  .hero-copy{padding-right:0}
  .hero h1{font-size:44px}
  .cap-strip{padding:0 24px 48px}
  .sec-inner{padding:56px 24px}
  .split.c-foundry,.split.c-casino,.split.c-pay,.split.c-bo,.split.c-lot,.split.c-contact{grid-template-columns:1fr;gap:32px}
  .b-cards{grid-template-columns:1fr}
  .footer-inner{padding:32px 24px}
}
@media (max-width:700px){
  .nav-toggle{display:flex}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;align-items:flex-start;gap:18px;position:absolute;top:100%;left:0;right:0;background:rgba(19,36,58,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);padding:20px 24px}
}
@media (max-width:640px){
  .hero h1{font-size:36px}
  .h2{font-size:30px}
  .hero-cta{flex-wrap:wrap}
  .cards2,.minis.g2,.minis.g3{grid-template-columns:1fr}
  .wg-cols,.pay-cols,.bo-cols,.form-2{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .fig-frame{padding:26px 0 30px 0}
  .dim-top{left:0;right:0}
  .dim-left,.dim-note{display:none}

  /* widget headers: let brand and menu wrap instead of colliding */
  .widget-bar{flex-wrap:wrap;column-gap:12px;row-gap:8px}
  .wb-brand{width:100%}
  .wb-menu{flex-wrap:wrap;row-gap:6px}
  .wb-name{white-space:nowrap}

  /* casino jackpot band: label + status on top row, value full width below */
  .jack{flex-wrap:wrap;row-gap:5px}
  .jack-lbl{order:1}
  .jack .live-tag{order:2;margin-left:auto}
  .jack-val{order:3;flex-basis:100%;font-size:16px;white-space:nowrap}
}
