:root{
  --vf-red:#8E1B2E; --vf-red-deep:#6E1322; --vf-red-bright:#B82A40;
  --vf-gold:#C9A24B; --vf-gold-bright:#E6C766; --vf-gold-deep:#9A7B2E;
  --vf-felt:#1E5C44; --vf-felt-deep:#143F2F;
  --vf-ink:#1A1410; --vf-ink-soft:#4A423B; --vf-ink-muted:#7A7068;
  --vf-cream:#FBF7EF; --vf-panel:#FFFFFF; --vf-sand:#F2EADA;
  --vf-line:#E3D9C6; --vf-charcoal:#16110D;
  --grad-red:linear-gradient(160deg,#A02234 0%,#8E1B2E 45%,#6E1322 100%);
  --grad-gold:linear-gradient(160deg,#E6C766 0%,#C9A24B 50%,#9A7B2E 100%);
  --grad-felt:radial-gradient(120% 120% at 50% 0%,#1E5C44 0%,#143F2F 100%);
  --grad-hero:linear-gradient(150deg,#6E1322 0%,#8E1B2E 55%,#3A0E18 100%);
  --shadow-sm:0 1px 2px rgba(26,20,16,.08); --shadow-md:0 6px 20px rgba(26,20,16,.12);
  --shadow-lg:0 18px 50px rgba(26,20,16,.20); --shadow-red:0 10px 30px rgba(142,27,46,.35);
  --ring:0 0 0 3px rgba(201,162,75,.45);
  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-pill:999px;
  --container:1200px; --gutter:clamp(16px,4vw,32px); --header-h:72px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-display:"Marcellus",Georgia,serif;
  --font-body:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  --t-xs:.75rem; --t-sm:.875rem; --t-base:1rem; --t-md:1.125rem;
  --t-lg:1.45rem; --t-xl:2rem;
  --t-2xl:2.75rem; --t-3xl:4rem;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{font-family:var(--font-body);font-size:var(--t-base);line-height:1.6;color:var(--vf-ink);background:var(--vf-cream);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.1;letter-spacing:0}
h1{font-size:var(--t-3xl)}h2{font-size:var(--t-2xl)}h3{font-size:var(--t-lg)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-weight:700;font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--vf-gold-deep)}
.eyebrow.gold{color:var(--vf-gold-bright)}
.lead{font-size:var(--t-md);color:var(--vf-ink-soft);line-height:1.55}
.lead.light{color:rgba(255,255,255,.85)}
.muted{color:var(--vf-ink-muted)}
.micro{font-size:var(--t-xs);color:var(--vf-ink-muted);margin-top:.75rem}
.section-title{font-size:var(--t-2xl);margin-bottom:.4em;position:relative}
.section-title::after{content:"";display:block;width:64px;height:3px;border-radius:2px;background:var(--grad-gold);margin-top:.35em}
section{padding:clamp(48px,7vw,96px) 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;height:48px;padding:0 1.5rem;border-radius:var(--r-pill);font-family:var(--font-body);font-weight:700;font-size:var(--t-base);cursor:pointer;border:0;transition:.18s var(--ease)}
.btn:focus-visible{outline:0;box-shadow:var(--ring)}
.btn-lg{height:56px;padding:0 2rem;font-size:var(--t-md)}.btn-sm{height:40px;font-size:var(--t-sm);padding:0 1.1rem}
.btn-primary{background:var(--grad-red);color:#fff;box-shadow:var(--shadow-red)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-gold{background:var(--grad-gold);color:#3A2A08;box-shadow:0 8px 24px rgba(201,162,75,.4);text-shadow:0 1px 0 rgba(255,255,255,.3)}
.btn-gold:hover{transform:translateY(-2px);filter:brightness(1.05)}
.btn-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1.5px var(--vf-gold)}
.btn-secondary{background:var(--vf-panel);color:var(--vf-red);box-shadow:inset 0 0 0 1.5px var(--vf-line),var(--shadow-sm)}
.btn-secondary:hover{box-shadow:inset 0 0 0 1.5px var(--vf-gold),var(--shadow-md)}

/* header */
.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:rgba(251,247,239,.85);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--vf-line)}
.site-header .nav{height:var(--header-h);display:flex;align-items:center;gap:1.5rem}
.brand{font-family:var(--font-display);font-size:1.4rem;color:var(--vf-red);display:flex;align-items:center;gap:.4rem;font-weight:400}
.crest{color:var(--vf-gold);font-size:1.1em}
.nav-links{display:flex;gap:1.5rem;margin-left:auto;font-weight:600;font-size:var(--t-sm)}
.nav-links a{color:var(--vf-ink-soft)}.nav-links a:hover{color:var(--vf-red)}
.nav-burger{display:none}
.nav-right{display:flex;align-items:center;gap:.8rem}
.lang-switch{font-weight:800;font-size:var(--t-sm);color:var(--vf-ink-soft);border:1.5px solid var(--vf-line);border-radius:var(--r-pill);padding:.35rem .7rem}
.lang-switch:hover{border-color:var(--vf-gold);color:var(--vf-red)}

/* hero */
.hero{background:var(--grad-hero);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 80% 10%,rgba(201,162,75,.18),transparent)}
/* subtle film-grain over the velvet (SVG feTurbulence data-URI, CSP img-src data: safe) */
.hero::before{content:"";position:absolute;inset:0;opacity:.05;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;position:relative;z-index:1}
.hero h1{color:#fff;margin:.3em 0}
.hero .lead{color:rgba(255,255,255,.9);max-width:42ch}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0 1.2rem}
/* above-the-fold trust row: free + no-download + live social proof */
.hero-trust{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center;margin:0 0 1rem;font-size:var(--t-sm);color:rgba(255,255,255,.82)}
.hero-trust .pill{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.3rem .7rem;line-height:1;white-space:nowrap}
.hero-trust .dot{width:8px;height:8px;border-radius:50%;background:#3ad07e;box-shadow:0 0 0 0 rgba(58,208,126,.6);animation:pulse-live 2s infinite}
@keyframes pulse-live{0%{box-shadow:0 0 0 0 rgba(58,208,126,.55)}70%{box-shadow:0 0 0 7px rgba(58,208,126,0)}100%{box-shadow:0 0 0 0 rgba(58,208,126,0)}}
.btn-gold.btn-cta{position:relative}
.btn-gold.btn-cta::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(201,162,75,.5);animation:pulse-cta 2.4s infinite}
@keyframes pulse-cta{0%{box-shadow:0 0 0 0 rgba(201,162,75,.5)}70%{box-shadow:0 0 0 14px rgba(201,162,75,0)}100%{box-shadow:0 0 0 0 rgba(201,162,75,0)}}
@media (prefers-reduced-motion:reduce){.hero-trust .dot,.btn-gold.btn-cta::after{animation:none}}
.store-row{display:flex;gap:.8rem;flex-wrap:wrap}.store-row.center{justify-content:center}
.store-badge{display:inline-flex;align-items:center;gap:.6rem;background:#000;color:#fff;border-radius:12px;padding:.55rem 1rem;box-shadow:var(--shadow-md);border:1px solid rgba(255,255,255,.18)}
.store-badge:hover{transform:translateY(-2px)}
.store-badge .sb-logo{width:26px;height:26px;flex:none;color:#fff}
.store-badge small{display:block;font-size:.62rem;opacity:.85;line-height:1}
.store-badge b{font-size:.95rem;font-weight:700}
.store-badge.is-soon{opacity:.6;cursor:default;position:relative}
.store-badge.is-soon:hover{transform:none}
.store-badge .sb-soon{display:block;font-size:.6rem;color:var(--vf-gold,#C9A24B);font-weight:600;letter-spacing:.02em;line-height:1.1;margin-top:.1rem}
.hero-art{display:grid;place-items:center}
.hero-shot{width:auto;max-width:100%;max-height:560px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:block}
.phone-shell{position:relative;padding:12px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.2),rgba(255,255,255,.06));box-shadow:0 28px 70px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.18)}
.phone-shell::before{content:"";position:absolute;inset:6px;border-radius:18px;border:1px solid rgba(255,255,255,.12);pointer-events:none}
.live-badge{position:absolute;left:24px;top:24px;z-index:4;background:rgba(20,63,47,.92);color:#fff;border:1px solid rgba(230,199,102,.65);border-radius:999px;padding:.38rem .75rem;font-size:var(--t-xs);font-weight:800;letter-spacing:.08em}
/* hero screenshot slider — pure-CSS crossfade carousel of the Play Store shots */
.shot-slider{position:relative;height:clamp(380px,56vh,560px);aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:#1a0e10;box-shadow:var(--shadow-lg)}
.shot-slider .shot{position:absolute;inset:0;margin:0;opacity:0;animation:shotFade 16s linear infinite;will-change:opacity,transform}
.shot-slider .shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot-slider .s2{animation-delay:4s}.shot-slider .s3{animation-delay:8s}.shot-slider .s4{animation-delay:12s}
@keyframes shotFade{0%{opacity:0;transform:scale(1.06)}6.25%{opacity:1}25%{opacity:1;transform:scale(1)}31.25%{opacity:0}100%{opacity:0}}
.shot-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;gap:7px;justify-content:center;z-index:4}
.shot-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);box-shadow:0 1px 3px rgba(0,0,0,.45);animation:dotOn 16s linear infinite}
.shot-dots .s2{animation-delay:4s}.shot-dots .s3{animation-delay:8s}.shot-dots .s4{animation-delay:12s}
@keyframes dotOn{0%,31.25%,100%{background:rgba(255,255,255,.5);transform:scale(1)}6.25%,25%{background:var(--vf-gold-bright);transform:scale(1.35)}}
@media (prefers-reduced-motion:reduce){.shot-slider .shot{animation:none}.shot-slider .s1{opacity:1}.shot-dots span{animation:none}}
/* a11y: visible keyboard focus on every interactive element (WCAG 2.4.7) */
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--vf-gold-bright);outline-offset:2px;border-radius:4px}
.hero-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:1.1rem 0}
.hero-proof div{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);border-radius:var(--r-sm);padding:.72rem .75rem}
.hero-proof strong{display:block;color:var(--vf-gold-bright);font-size:1.25rem;line-height:1;font-family:var(--font-display);font-weight:400}
.hero-proof span{display:block;color:rgba(255,255,255,.76);font-size:var(--t-xs);line-height:1.25;margin-top:.3rem}
.felt-card{width:min(420px,90%);aspect-ratio:4/3;border-radius:var(--r-lg);background:var(--grad-felt);box-shadow:var(--shadow-lg),inset 0 0 0 8px rgba(201,162,75,.25);position:relative;overflow:hidden}
.felt-card .rack{position:absolute;left:8%;right:8%;bottom:8%;height:26%;border-radius:10px;background:linear-gradient(180deg,#6b4a2a,#3c2a17);box-shadow:inset 0 2px 8px rgba(0,0,0,.4)}

.brand-strip{padding:0;background:#fff;border-bottom:1px solid var(--vf-line)}
.strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding-block:0}
.strip-grid span{display:flex;align-items:center;justify-content:center;min-height:62px;text-align:center;padding:.8rem;color:var(--vf-ink-soft);font-size:var(--t-sm);font-weight:800;background:linear-gradient(180deg,#fff,var(--vf-cream))}

/* crawlable, user-facing topic shortcuts */
.traffic-links{background:#fff;padding:clamp(34px,5vw,68px) 0;border-bottom:1px solid var(--vf-line)}
.traffic-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,48px)}
.intent-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.intent-links-block{align-content:flex-start}
.intent-links a{display:inline-flex;align-items:center;min-height:38px;padding:.45rem .9rem;border-radius:999px;background:var(--vf-cream);border:1px solid var(--vf-line);color:var(--vf-ink-soft);font-size:var(--t-sm);font-weight:800;box-shadow:var(--shadow-sm);transition:.16s var(--ease)}
.intent-links a:hover{border-color:var(--vf-gold);color:var(--vf-red);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.games-head .intent-links a{background:#fff}
.games-directory .game-card{min-height:178px}

/* features */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
.card{background:var(--vf-panel);border:1px solid var(--vf-line);border-radius:var(--r-lg);padding:1.5rem;box-shadow:var(--shadow-sm);transition:.2s var(--ease)}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--vf-gold)}
.card-feature .icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.6rem;background:var(--grad-red);box-shadow:var(--shadow-red);margin-bottom:1rem}
.card-feature h3{margin-bottom:.3rem}.card-feature p{color:var(--vf-ink-soft);font-size:var(--t-sm)}

/* richer homepage content */
.experience{background:linear-gradient(180deg,var(--vf-cream),#fff)}
.experience-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,5vw,64px);align-items:center}
.experience-copy .lead{max-width:58ch}
.journey{display:grid;gap:.9rem;margin-top:1.6rem}
.journey-step{display:grid;grid-template-columns:48px 1fr;gap:.9rem;align-items:start;background:#fff;border:1px solid var(--vf-line);border-radius:var(--r-sm);padding:1rem;box-shadow:var(--shadow-sm)}
.journey-step > span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--grad-gold);color:#3A2A08;font-weight:900}
.journey-step h3{font-family:var(--font-body);font-size:var(--t-base);font-weight:800;margin-bottom:.15rem}
.journey-step p{font-size:var(--t-sm);color:var(--vf-ink-soft);line-height:1.45}
.table-card{background:linear-gradient(160deg,#223b30,#10271f);border:1px solid rgba(201,162,75,.45);border-radius:var(--r-lg);padding:clamp(14px,2.5vw,26px);box-shadow:var(--shadow-lg)}
.table-top{position:relative;aspect-ratio:4/3;border-radius:var(--r-sm);background:radial-gradient(circle at 50% 45%,#2f7c5d 0%,#1e5c44 52%,#143f2f 100%);box-shadow:inset 0 0 0 8px rgba(201,162,75,.22),inset 0 0 60px rgba(0,0,0,.34);overflow:hidden}
.seat{position:absolute;width:90px;height:52px;border-radius:var(--r-sm);background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2)}
.seat-top{top:9%;left:50%;transform:translateX(-50%)}
.seat-left{left:8%;top:44%;transform:rotate(90deg)}
.seat-right{right:8%;top:44%;transform:rotate(-90deg)}
.deck-stack{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:86px;height:112px;border-radius:var(--r-sm);background:linear-gradient(180deg,#f6efe0,#d8c58e);display:grid;place-items:center;color:var(--vf-red);font-size:2.6rem;box-shadow:0 16px 30px rgba(0,0,0,.25)}
.rack-row{position:absolute;left:7%;right:7%;bottom:8%;display:grid;grid-template-columns:repeat(10,1fr);gap:4px;padding:10px;border-radius:var(--r-sm);background:rgba(0,0,0,.28)}
.rack-row span{display:grid;place-items:center;aspect-ratio:2/3;border-radius:6px;background:#fff6df;color:#28180f;font-weight:900;font-size:var(--t-sm);box-shadow:0 4px 10px rgba(0,0,0,.22)}
/* game library */
.games-band{background:#fff}
.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.game-card{display:flex;gap:1rem;align-items:flex-start;background:linear-gradient(180deg,#fff,var(--vf-cream));border:1px solid var(--vf-line);border-radius:var(--r-md);padding:1.15rem;box-shadow:var(--shadow-sm);transition:.2s var(--ease)}
.game-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--vf-gold)}
.game-card.is-live{border-color:rgba(201,162,75,.65);background:linear-gradient(180deg,#fffdf6,var(--vf-cream));box-shadow:var(--shadow-md)}
.game-icon{flex:none;width:64px;height:64px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--grad-felt);box-shadow:inset 0 0 0 2px rgba(201,162,75,.4),var(--shadow-sm)}
.game-icon svg{width:44px;height:44px}
.gi-glyph{font-size:2rem;line-height:1;color:#FDF6E3}
.gi-satranc .gi-glyph{color:#FDF6E3}
.mini-tile{position:relative;width:34px;height:46px;border-radius:6px;background:linear-gradient(180deg,#FDF6E3,#EFE3C4);box-shadow:0 3px 8px rgba(0,0,0,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.mini-tile b{font-family:var(--font-body);font-weight:900;font-size:1.05rem;color:#B02234;line-height:1}
.mini-tile.is-101 b{font-size:.78rem}
.mini-tile i{width:7px;height:7px;border-radius:50%;background:#B02234}
.game-body h3{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-family:var(--font-body);font-weight:800;font-size:var(--t-md);color:var(--vf-ink);margin-bottom:.3rem}
.game-body p{font-size:var(--t-sm);color:var(--vf-ink-soft);line-height:1.5}
.game-body .read{display:inline-block;margin-top:.45rem}
.chip{display:inline-flex;align-items:center;gap:.35em;padding:.18em .6em;border-radius:var(--r-pill);font-size:.66rem;font-weight:800;letter-spacing:.08em}
.chip-live{background:#E4F1EA;color:#1E7A4E;box-shadow:inset 0 0 0 1px rgba(30,122,78,.35)}
.chip-live::before{content:"";width:6px;height:6px;border-radius:50%;background:#2E8B57;animation:pulse-live 2s infinite}
.chip-soon{background:rgba(201,162,75,.14);color:var(--vf-gold-deep);box-shadow:inset 0 0 0 1px rgba(201,162,75,.4)}
@media (prefers-reduced-motion:reduce){.chip-live::before{animation:none}}
.trust-band{background:linear-gradient(150deg,#10271f,#1e5c44 58%,#0d2019);color:#fff}
.trust-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:start}
.trust-grid h2{color:#fff}
.trust-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.trust-list div{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:var(--r-sm);padding:1.1rem;min-height:136px}
.trust-list strong{display:block;color:var(--vf-gold-bright);font-size:1rem;margin-bottom:.4rem}
.trust-list span{color:rgba(255,255,255,.78);font-size:var(--t-sm);line-height:1.45}
/* about page reuses the pillar grid on a LIGHT background */
.about-pillars{margin:1.2rem 0 2rem}
.about-pillars div{background:#fff;border:1px solid var(--vf-line);box-shadow:var(--shadow-sm);min-height:0}
.about-pillars strong{color:var(--vf-red)}
.about-pillars span{color:var(--vf-ink-soft)}

/* live */
.live{background:var(--grad-felt);color:#fff}
.live-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.live h2{color:#fff}
.live-frame{aspect-ratio:16/10;border-radius:var(--r-lg);background:rgba(0,0,0,.25);box-shadow:var(--shadow-lg),inset 0 0 0 6px rgba(201,162,75,.3);display:grid;place-items:center}
.live-felt{font-size:5rem;color:var(--vf-gold-bright);opacity:.6}

/* hub / articles */
.hub-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}
.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.article-card{display:flex;flex-direction:column;gap:.5rem}
.article-card h3{font-size:var(--t-md);line-height:1.25}
.article-card p{color:var(--vf-ink-soft);font-size:var(--t-sm);flex:1}
.cat{font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--vf-gold-deep)}
.read{color:var(--vf-red);font-weight:700;font-size:var(--t-sm)}
.page-head{background:var(--vf-sand);border-bottom:1px solid var(--vf-line);padding-block:clamp(36px,5vw,64px)}

/* article body */
.article-wrap{max-width:760px}
.crumbs{font-size:var(--t-sm);color:var(--vf-ink-muted);margin-bottom:1rem}
.crumbs a:hover{color:var(--vf-red)}
.article h1{margin:.3em 0}
.article-body{font-size:var(--t-md);line-height:1.7;margin-top:1.5rem}
.article-body h2{font-size:var(--t-xl);margin:1.6em 0 .5em;padding-bottom:.2em;border-bottom:2px solid var(--vf-gold)}
.article-body h3{font-size:var(--t-lg);margin:1.2em 0 .4em}
.article-body p{margin:0 0 1.1em}
.article-body ul,.article-body ol{margin:0 0 1.1em 1.4em}.article-body li{margin:.3em 0}
.article-body strong{color:var(--vf-ink)}
.article-faq{margin-top:2.5rem}
.article-cta{margin-top:2.5rem;text-align:center;background:var(--vf-sand);border-color:var(--vf-gold)}
.article-cta h3{margin-bottom:1rem}
.article-meta{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--vf-line);color:var(--vf-ink-muted);font-size:var(--t-sm)}
.article-related{margin-top:3rem}
.article-related h2{font-size:var(--t-xl);margin-bottom:1.2rem;padding-bottom:.25em;border-bottom:2px solid var(--vf-gold)}
.article-related .article-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
/* gold reading-progress bar — CSS scroll-driven animation (no JS; older browsers simply don't show it) */
@supports (animation-timeline: scroll()) {
  .read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:var(--grad-gold);transform-origin:0 50%;transform:scaleX(0);animation:read-grow linear both;animation-timeline:scroll(root)}
  @keyframes read-grow{to{transform:scaleX(1)}}
}

/* faq */
.faq-list{display:flex;flex-direction:column;gap:.7rem;max-width:760px;margin:1.5rem auto 0}
.faq-item{background:var(--vf-panel);border:1px solid var(--vf-line);border-radius:var(--r-md);padding:1rem 1.2rem}
.faq-item summary{font-weight:700;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;color:var(--vf-gold-deep);font-weight:800}
.faq-item[open] summary::after{content:"–"}
.faq-item p{margin-top:.7rem;color:var(--vf-ink-soft)}

/* play */
.play-stage{background:var(--grad-felt);min-height:70vh}
.play-frame{aspect-ratio:16/9;border-radius:var(--r-lg);background:rgba(0,0,0,.3);box-shadow:var(--shadow-lg),inset 0 0 0 6px rgba(201,162,75,.3);display:grid;place-items:center;overflow:hidden}
.play-coming{text-align:center;color:#fff;padding:2rem}
.crest-big,.crest-big{font-size:4rem;color:var(--vf-gold-bright)}
.play-coming h2{color:#fff;margin:.5rem 0}
.play-coming p{color:rgba(255,255,255,.8);margin-bottom:1.5rem}

/* footer */
.site-footer{background:var(--vf-charcoal);color:rgba(255,255,255,.7);padding:3.5rem 0 1.5rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-about{max-width:34ch}
.foot-brand{color:#fff;font-size:1.3rem;margin-bottom:.5rem}
.foot-note{font-size:var(--t-sm);line-height:1.55}
.foot-col{display:flex;flex-direction:column;gap:.55rem;align-items:flex-start}
.foot-col h4{font-family:var(--font-body);font-weight:700;color:#fff;font-size:var(--t-sm);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}
.foot-col a{color:rgba(255,255,255,.7);font-size:var(--t-sm)}.foot-col a:hover{color:var(--vf-gold-bright)}
.foot-soon{color:rgba(255,255,255,.4);font-size:var(--t-sm)}
.foot-bottom{padding-top:1.2rem;font-size:var(--t-xs);color:rgba(255,255,255,.5);display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.foot-compliance{color:rgba(233,201,106,.75)}
.foot-social{display:flex;gap:.6rem;margin-top:1rem}
.foot-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--vf-gold-bright);background:rgba(255,255,255,.06);border:1px solid rgba(233,201,106,.28);transition:transform .15s ease,background .15s ease,color .15s ease}
.foot-social a:hover{color:#1a0e10;background:var(--vf-gold-bright);border-color:var(--vf-gold-bright);transform:translateY(-2px)}

@media(max-width:860px){
  :root{--t-xl:1.8rem;--t-2xl:2.25rem;--t-3xl:3rem}
  .hero-grid,.live-grid{grid-template-columns:1fr}
  .hero-art{order:-1}.felt-card{width:min(340px,80%)}
  .feat-grid,.article-grid,.game-grid{grid-template-columns:1fr 1fr}
  .experience-grid,.trust-grid{grid-template-columns:1fr}
  .strip-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  /* CSS-only hamburger: brand left, burger + lang + play right; nav-links drop down when toggled */
  .nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-left:auto;cursor:pointer;border:1.5px solid var(--vf-line);border-radius:11px;padding:11px;box-sizing:border-box}
  .nav-burger span{display:block;height:2px;width:100%;background:var(--vf-ink-soft);border-radius:2px;transition:transform .25s,opacity .2s}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-links{display:none;position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;gap:0;margin:0;padding:.4rem 0;background:rgba(251,247,239,.98);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--vf-line);box-shadow:var(--shadow-lg)}
  .nav-toggle:checked ~ .nav-links{display:flex}
  .nav-links a{padding:.9rem var(--gutter);width:100%}
}
@media(max-width:560px){
  :root{--t-xl:1.55rem;--t-2xl:1.95rem;--t-3xl:2.45rem}
  .feat-grid,.article-grid,.game-grid,.trust-list{grid-template-columns:1fr}
  .traffic-grid{grid-template-columns:1fr}
  .hero-proof{grid-template-columns:1fr 1fr}
  .strip-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
}
/* narrow phones: compact header so brand + burger + lang + CTA always fit on one row */
@media(max-width:430px){
  .site-header .nav{gap:.7rem}
  .brand{font-size:1.12rem}
  .nav-right{gap:.5rem}
  .lang-switch{padding:.3rem .55rem}
  .btn-sm{padding:0 .85rem}
  .hero-shot{max-height:430px}
  .btn-lg{width:100%}
}
/* hub topic-cluster nav + category sections */
.hub-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hub-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-pill);background:var(--vf-sand);border:1px solid var(--vf-gold);color:var(--vf-ink);font-weight:600;font-size:.92rem;text-decoration:none;transition:background .15s,color .15s}
.hub-nav a:hover{background:var(--vf-gold);color:var(--vf-charcoal)}
.hub-nav a span{display:inline-flex;min-width:22px;height:20px;align-items:center;justify-content:center;padding:0 6px;border-radius:var(--r-pill);background:var(--vf-red);color:#fff;font-size:.76rem;font-weight:700}
.hub-cat-title{margin:46px 0 18px;padding-bottom:10px;border-bottom:2px solid var(--vf-line);font-size:clamp(1.3rem,2.4vw,1.7rem);color:var(--vf-red);scroll-margin-top:calc(var(--header-h) + 18px)}
.hub-cat-title a:hover{color:var(--vf-gold-deep)}
.hub-cat-title:first-of-type{margin-top:10px}
.hub-cat-count{font-size:.82rem;color:var(--vf-ink-muted);font-weight:500;margin-left:6px}
/* live browser Okey (/play) */
.play-title{color:#fff;text-align:center;margin:0 0 .4rem;font-size:clamp(1.6rem,3.4vw,2.4rem)}
.play-sub{color:rgba(255,255,255,.82);text-align:center;max-width:680px;margin:0 auto 1.5rem}
.play-frame{position:relative;aspect-ratio:16/9;max-width:1100px;margin:0 auto;border-radius:var(--r-lg);overflow:hidden;background:#0d0d0d;box-shadow:var(--shadow-lg),inset 0 0 0 4px rgba(201,162,75,.35)}
.okey-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.play-foot{text-align:center;margin-top:1.4rem;color:rgba(255,255,255,.8)}
.play-foot .store-row{margin-top:.8rem}
.ad-policy-note{max-width:980px;margin:1.15rem auto 0;padding-top:.9rem;border-top:1px solid rgba(201,162,75,.35);font-size:.78rem;line-height:1.6;color:var(--muted);text-align:center}
.ad-policy-note a{color:var(--gold-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.landing-hero .ad-policy-note{color:rgba(255,255,255,.74)}
.landing-hero .ad-policy-note a{color:var(--gold-light)}
@media(max-width:560px){.play-frame{aspect-ratio:3/4}}

/* === Okey hand calculator === */
.okc-section{padding-top:clamp(20px,3vw,32px)}
.okc{display:grid;gap:1.2rem}
.okc-mode{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.okc-panel{background:var(--vf-panel);border:1px solid var(--vf-line);border-radius:var(--r-md);padding:1.2rem;box-shadow:var(--shadow-sm)}
.okc-panel h2{font-family:var(--font-body);font-weight:800;font-size:var(--t-md);margin-bottom:.6rem}
.okc-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.5rem}
.okc-head h2{margin:0}
.okc-ind{display:inline-flex;gap:.35rem;min-height:44px;align-items:center}
.okc-rack{display:flex;flex-wrap:wrap;gap:5px;min-height:56px;padding:.5rem;background:linear-gradient(180deg,#6b4a2a,#3c2a17);border-radius:var(--r-sm);box-shadow:inset 0 2px 8px rgba(0,0,0,.35)}
.okc-palette{display:flex;flex-direction:column;gap:6px}
.okc-row{display:grid;grid-template-columns:repeat(13,1fr);gap:4px}
.okc-tile{position:relative;aspect-ratio:2/3;min-width:0;border:0;border-radius:6px;background:linear-gradient(180deg,#FDF6E3,#EFE3C4);box-shadow:0 2px 5px rgba(0,0,0,.25);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;transition:transform .1s}
.okc-tile:hover{transform:translateY(-2px)}
.okc-tile b{font-family:var(--font-body);font-weight:900;font-size:clamp(.7rem,2.6vw,1rem);line-height:1}
.okc-tile i{width:5px;height:5px;border-radius:50%}
.okc-tile.is-ind{outline:3px solid var(--vf-red);outline-offset:1px}
.okc-tile.is-okey{outline:3px solid var(--vf-gold);outline-offset:1px}
.okc-tile.is-max{opacity:.35;pointer-events:none}
.okc-tile.okc-fake b{color:#8a5a1a;font-size:1.05rem}
.okc-fakerow{display:flex;align-items:center;gap:.6rem;margin-top:2px}
.okc-fakerow .okc-tile{width:34px;aspect-ratio:2/3;flex:none}
.okc-fakelbl{font-size:var(--t-xs);color:var(--vf-ink-muted);font-weight:700}
.okc-rack .okc-tile{width:34px;aspect-ratio:2/3;flex:none}
.okc-ind .okc-tile{width:34px;aspect-ratio:2/3;flex:none}
.okc-actions{margin-top:.7rem}
/* indicator -> okey finder */
.okf-palette{display:flex;flex-direction:column;gap:6px}
.okf-result-panel{display:flex;flex-direction:column;justify-content:center}
.okf-cards{display:flex;align-items:flex-end;justify-content:center;gap:1rem;flex-wrap:wrap}
.okf-card{display:flex;flex-direction:column;align-items:center;gap:.4rem}
.okf-card .okc-tile{width:52px;aspect-ratio:2/3;flex:none;cursor:default}
.okf-lbl{font-size:var(--t-xs);color:var(--vf-ink-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.okf-arrow{font-size:1.6rem;color:var(--vf-gold-deep);padding-bottom:1.1rem}
.okf-note{margin-top:1rem;color:var(--vf-ink-muted);font-size:var(--t-sm);text-align:center}
.okc-hint{font-size:var(--t-xs);margin-bottom:.6rem}
.okc-result-wrap{background:var(--grad-felt);color:#fff;border-radius:var(--r-md);padding:1.2rem 1.4rem;box-shadow:var(--shadow-md)}
.okc-result-wrap h2{color:#fff;font-family:var(--font-body);font-weight:800;font-size:var(--t-md);margin-bottom:.5rem}
.okc-result .muted{color:rgba(255,255,255,.7)}
.okc-win{font-size:1.15rem;font-weight:800;color:var(--vf-gold-bright)}
.okc-dist{font-size:1.05rem;color:#fff}.okc-dist strong{color:var(--vf-gold-bright);font-size:1.6rem;font-family:var(--font-display)}
.okc-melds{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.okc-meld{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.25rem .7rem;font-weight:700;font-size:var(--t-sm)}
.okc-cta{text-align:center;margin-top:1.4rem}
.okc-how{background:linear-gradient(180deg,var(--vf-cream),#fff)}
@media(max-width:720px){.okc-mode{grid-template-columns:1fr}.okc-row{gap:3px}.okc-tile b{font-size:.72rem}}

/* === Q&A long-tail === */
.qa-hub{padding-top:clamp(20px,3vw,32px)}
.qa-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.6rem;margin:0 0 1rem}
.qa-list li{position:relative;padding-left:1.1rem}
.qa-list li::before{content:"›";position:absolute;left:0;color:var(--vf-gold-deep);font-weight:800}
.qa-list a{color:var(--vf-ink-soft);text-decoration:none;line-height:1.5}
.qa-list a:hover{color:var(--vf-red);text-decoration:underline;text-decoration-color:var(--vf-gold)}
.qa-list-wide{grid-template-columns:1fr 1fr}
.qa-page .qa-answer{font-size:var(--t-md);line-height:1.7}
.qa-pillar{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--vf-line);color:var(--vf-ink-muted);font-size:var(--t-sm)}
.qa-page .article-related .qa-list{grid-template-columns:1fr}
@media(max-width:640px){.qa-list{grid-template-columns:1fr}}

/* === "okey oyna" playable landing === */
.landing-hero{background:var(--grad-felt);color:#fff;padding-top:clamp(28px,4vw,48px)}
.crumbs.light{color:rgba(255,255,255,.65)}.crumbs.light a:hover{color:var(--vf-gold-bright)}
.play-poster{position:absolute;inset:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:radial-gradient(circle at 50% 40%,#2f7c5d 0%,#1e5c44 55%,#143f2f 100%);border:0;cursor:pointer}
.play-poster .poster-felt{font-size:4.5rem;color:var(--vf-gold-bright);opacity:.75;line-height:1}
.play-poster .poster-note{color:rgba(255,255,255,.7);font-size:var(--t-xs)}
.play-poster:hover .btn{transform:translateY(-2px)}
.landing-play-actions{display:flex;justify-content:center;align-items:center;gap:.8rem;flex-wrap:wrap;margin:1.1rem 0}
.room-share{max-width:820px;margin:0 auto 1rem;padding:1rem 1.1rem;border:1px solid rgba(232,200,122,.55);border-radius:14px;background:rgba(9,42,31,.76);display:grid;gap:.65rem;text-align:center}
.room-share[hidden]{display:none}
.room-share>a{color:#fff;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.room-share-actions{display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap}
.room-share #gf-share-status{min-height:1.2em;color:#bde9c9;font-weight:700}
.landing-why{background:#fff}
.landing-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1023px){.landing-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.landing-grid{grid-template-columns:1fr}}
.landing-journey{max-width:760px}
.landing-guides{margin-top:1.6rem}
/* cross-links to the other games on each play landing */
.games-cross{padding:2.2rem 0;background:var(--vf-cream)}
.cross-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.4rem}
.cross-chip{display:inline-block;padding:.55rem 1.05rem;border-radius:999px;background:#fff;border:1px solid var(--vf-line);color:var(--vf-ink);font-weight:700;font-size:var(--t-sm);text-decoration:none;box-shadow:var(--shadow-sm);transition:.18s var(--ease)}
.cross-chip:hover{transform:translateY(-2px);border-color:var(--vf-gold);color:var(--vf-red);box-shadow:var(--shadow-md)}
.inline-link{color:var(--vf-red);font-weight:700;text-decoration:underline;text-decoration-color:var(--vf-gold);text-underline-offset:3px}
.live-more{margin-top:.9rem}.live-more a{color:rgba(255,255,255,.85);font-size:var(--t-sm);text-decoration:underline;text-decoration-color:rgba(230,199,102,.6);text-underline-offset:3px}
.live-more a:hover{color:var(--vf-gold-bright)}

/* === room invite landing (/oda/{code}) === */
.oda-stage{background:var(--grad-felt);min-height:calc(100vh - var(--header-h));display:flex;align-items:center}
.oda-stage>.container{width:100%;min-width:0}
.oda-card{max-width:560px;margin:clamp(28px,6vw,72px) auto;background:rgba(20,63,47,.55);border:1px solid rgba(201,162,75,.45);border-radius:var(--r-lg);box-shadow:var(--shadow-lg),inset 0 0 0 6px rgba(201,162,75,.18);padding:clamp(28px,5vw,48px) clamp(22px,5vw,44px);text-align:center;color:#fff;backdrop-filter:saturate(130%) blur(4px)}
.oda-crest{font-size:3rem;color:var(--vf-gold-bright);line-height:1;margin-bottom:.4rem}
.oda-eyebrow{font-weight:700;font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--vf-gold-bright);margin-bottom:.6rem}
.oda-card h1{color:#fff;font-size:clamp(1.5rem,2.6vw+1rem,2.3rem);margin:0 0 .5rem}
.oda-sub{color:rgba(255,255,255,.85);font-size:var(--t-md);max-width:40ch;margin:0 auto 1.6rem}
.oda-code{display:inline-flex;align-items:center;gap:.55rem;background:rgba(0,0,0,.28);border:1px dashed rgba(201,162,75,.6);border-radius:var(--r-pill);padding:.5rem 1.1rem;margin:.2rem 0 1.4rem;font-family:var(--font-display);letter-spacing:.18em;font-size:1.35rem;color:var(--vf-gold-bright)}
.oda-code small{font-family:var(--font-body);letter-spacing:.04em;font-size:var(--t-xs);text-transform:uppercase;color:rgba(255,255,255,.65);font-weight:700}
.oda-actions{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:.4rem}
.oda-actions .btn{width:100%;max-width:360px}
.oda-actions .btn[hidden],.oda-terminal[hidden]{display:none}
.oda-terminal{width:100%;max-width:360px;margin:0;padding:.8rem 1rem;border:1px solid rgba(255,214,125,.55);border-radius:var(--r-md);background:rgba(70,20,20,.55);color:#fff4dc;font-weight:800;font-size:var(--t-md)}
.oda-note{color:rgba(255,255,255,.78);font-size:var(--t-sm);max-width:38ch;margin:.2rem auto 0;line-height:1.5}
.oda-webgl{position:relative;width:min(1100px,100%);min-height:320px;aspect-ratio:16/9;margin:clamp(18px,4vw,42px) auto;border-radius:var(--r-lg);overflow:hidden;background:#0d0d0d;box-shadow:var(--shadow-lg),inset 0 0 0 4px rgba(201,162,75,.35)}
.oda-webgl[hidden]{display:none}
.oda-webgl .okey-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:560px){.landing-play-actions .btn{width:100%}.oda-webgl{aspect-ratio:3/4}}
.oda-store{margin-top:1rem;display:flex;justify-content:center}
.oda-fine{margin-top:1.6rem;font-size:var(--t-xs);color:rgba(255,255,255,.55)}
