:root{--navy:#050d24;--blue:#2f6bff;--ink:#0d1b3d;--mute:#5a6783;--bg:#f4f7fd;--line:#e1e7f3}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#fff;line-height:1.55}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.hero{background:radial-gradient(circle at 78% 55%,#1b4fd0 0,#0a2260 28%,var(--navy) 62%);color:#fff;padding-bottom:64px}
.nav{display:flex;align-items:center;gap:32px;padding-top:22px;padding-bottom:22px}
.hero > header.nav{max-width:none;padding-left:max(24px,calc((100% - 1112px)/2));padding-right:max(24px,calc((100% - 1112px)/2));background:var(--navy);color:#fff}
.logo{font-weight:800;font-size:1.3rem;letter-spacing:.04em}
.nav nav{display:flex;gap:24px;flex:1;font-size:.9rem}
.nav nav a{opacity:.8;padding-bottom:4px}
.nav nav a.active{opacity:1;border-bottom:2px solid var(--blue)}
.company-menu{position:relative;align-self:flex-start}
.company-menu summary{cursor:pointer;list-style:none;opacity:.8;padding-bottom:4px}
.company-menu summary::-webkit-details-marker{display:none}
.company-menu summary::after{content:"▾";font-size:.7em;margin-left:6px}
.company-menu[open] summary{opacity:1}
.company-menu .submenu{position:absolute;top:100%;left:-12px;z-index:10;min-width:150px;padding:8px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #0d1b3d22;display:grid;gap:2px}
.company-menu .submenu a{display:block;padding:8px 10px;border-radius:4px;opacity:1;white-space:nowrap}
.company-menu .submenu a:hover,.company-menu .submenu a:focus-visible{background:var(--bg)}
.btn{display:inline-block;background:var(--blue);color:#fff;padding:12px 22px;border-radius:6px;font-weight:600;border:1px solid var(--blue)}
.btn.small{padding:8px 16px;font-size:.85rem}
.btn.ghost{background:transparent;border-color:#ffffff66}
.btn.ghost.light{color:var(--blue);border-color:var(--blue)}
a:focus-visible{outline:3px solid #9bb8ff;outline-offset:2px}
.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;padding-top:48px}
.kicker{font-size:.8rem;color:#b8c6ee;margin:0 0 16px}
h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.1;margin:0 0 20px}
h1 span{color:#4d86ff}
.lead{max-width:520px;color:#c9d4f3}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.hero-cards{list-style:none;margin:0;padding:0;display:grid;gap:10px;justify-self:end;width:min(100%,260px)}
.hero-cards li{background:#0b1a4acc;border:1px solid #2a4590;border-radius:6px;padding:12px 14px;font-size:.85rem}
.values{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding-top:28px;padding-bottom:28px;text-align:center}
.values h3{font-size:.95rem;margin:0 0 4px}
.values p{font-size:.78rem;color:var(--mute);margin:0}
.block{padding-top:48px;padding-bottom:48px}
h2{font-size:1.7rem;margin:0 0 6px}
.sub{color:var(--mute);margin:0 0 24px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 2px 10px #0d1b3d0d}
.card h3{margin:0 0 8px}
.card p{font-size:.85rem;color:var(--mute)}
.tags span{display:inline-block;background:var(--bg);border-radius:4px;padding:2px 8px;margin:0 6px 6px 0;font-size:.72rem;color:var(--blue)}
.stars{margin-bottom:0}
.how{background:var(--bg)}
.steps{list-style:none;padding:0;margin:0 0 24px}
.steps li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:4px;font-size:.85rem}
.steps span{color:var(--mute)}
.arch{background:var(--navy);color:#fff;border-radius:8px;padding:28px;display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:center}
.arch h3{margin:0 0 8px}
.arch p{color:#b8c6ee;font-size:.85rem;margin:0}
.flow{display:flex;gap:10px;flex-wrap:wrap}
.flow span{border:1px solid #2a4590;border-radius:6px;padding:10px 14px;font-size:.78rem;text-align:center;flex:1}
.flow .hl{background:#12307f;border-color:var(--blue)}
.row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.card.plain{box-shadow:none}
footer{background:var(--navy);color:#b8c6ee}
.foot{display:flex;justify-content:space-between;gap:24px;padding-top:32px;padding-bottom:32px;font-size:.8rem;flex-wrap:wrap}
.foot .logo{color:#fff}
@media(max-width:900px){
  .hero-grid,.arch{grid-template-columns:1fr}
  .hero-cards{justify-self:start}
  .values,.grid4{grid-template-columns:repeat(2,1fr)}
  .nav nav{display:none}
  .nav{justify-content:space-between}
}

.logo{display:inline-flex;align-items:center}
.logo img{display:block;width:auto;max-width:100%}
.logo img.site-logo{display:none}
html:not([data-theme]) .logo img.logo-light,
html[data-theme="light"] .logo img.logo-light,
html[data-theme="dark"] .logo img.logo-dark{display:block}

@media(max-width:560px){.grid4,.values{grid-template-columns:1fr}}

/* theme toggle button (sits on the dark hero in both themes) */
.theme-toggle{background:transparent;border:1px solid #ffffff66;color:#fff;width:38px;height:38px;border-radius:6px;cursor:pointer;font-size:1.05rem;line-height:1}
.theme-toggle:focus-visible{outline:3px solid #9bb8ff;outline-offset:2px}
.theme-toggle .moon{display:none}
[data-theme="dark"] .theme-toggle .sun{display:none}
[data-theme="dark"] .theme-toggle .moon{display:inline}

/* Light theme hero */
[data-theme="light"] .hero{background:radial-gradient(circle at 78% 55%,#eaf0ff 0,#f5f8ff 32%,#fff 68%);color:var(--ink)}
[data-theme="light"] .hero > header.nav{background:#cbd6ec;color:var(--ink)}
[data-theme="light"] footer{background:#cbd6ec;color:var(--mute)}
[data-theme="light"] .foot .logo{color:var(--ink)}
[data-theme="light"] .hero .kicker,
[data-theme="light"] .hero .lead{color:var(--mute)}
[data-theme="light"] .hero .hero-cards li{background:#fff;border-color:var(--line);color:var(--ink)}
[data-theme="light"] .hero .btn.ghost{border-color:#2f6bff66;color:var(--blue)}
[data-theme="light"] .hero .theme-toggle{border-color:#0d1b3d66;color:var(--ink)}
[data-theme="light"] .hero > header.nav .theme-toggle{border-color:#0d1b3d66;color:var(--ink)}

/* dark theme */
[data-theme="dark"]{--ink:#e8eeff;--mute:#9fb0d6;--bg:#0a1330;--line:#1f2f5c;color-scheme:dark}
[data-theme="dark"] body{background:#070f26}
[data-theme="dark"] .card,
[data-theme="dark"] .steps li{background:#0d1a3d}
[data-theme="dark"] .card{box-shadow:none}
[data-theme="dark"] .tags span{background:#14234f;color:#7ea6ff}
[data-theme="dark"] .btn.ghost.light{color:#6f9bff;border-color:#6f9bff}
[data-theme="dark"] .arch{border:1px solid var(--line)}
[data-theme="dark"] .company-menu .submenu{background:#0d1a3d;color:var(--ink);border-color:var(--line)}

.about-hero{padding-bottom:48px}
.about-intro{padding-top:32px}
.about-body{max-width:760px}
.about-body h2{margin-top:32px}
.about-body p{color:var(--mute);max-width:70ch}
.contact-body{max-width:760px}
.contact-card{display:grid;gap:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;box-shadow:0 2px 10px #0d1b3d0d}
.contact-card h2{margin:0 0 8px}
.contact-card label{font-weight:600}
.contact-card input,.contact-card select,.contact-card textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.contact-card textarea{resize:vertical}
.contact-card .btn{justify-self:start;cursor:pointer}
.form-error{margin:0;padding:10px 12px;color:#8b1c1c;background:#fff0f0;border:1px solid #edb5b5;border-radius:6px}
[data-theme="dark"] .contact-card{background:#0d1a3d;box-shadow:none}
[data-theme="dark"] .contact-card input,[data-theme="dark"] .contact-card select,[data-theme="dark"] .contact-card textarea{background:#070f26;color:var(--ink);border-color:var(--line)}

/* Sub-brand links (Tech Tools / Games) */
.subbrands{display:flex;gap:18px;font-size:.8rem}
.subbrands a{opacity:.8;padding-bottom:4px}
.subbrands a.active,.subbrands a:hover{opacity:1}
.subbrands a.active{border-bottom:2px solid var(--blue)}

/* Tech Tools page */
.tt{--accent:#0891b2;--violet:#7c3aed;--ok:#059669}
[data-theme="dark"] .tt{--accent:#22d3ee;--violet:#a78bfa;--ok:#34d399}
.tt code{font-family:"Cascadia Code",Consolas,monospace;font-size:.85em;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--blue)}
[data-theme="dark"] .tt code{color:#7ea6ff}
.tt-hero{text-align:center;padding-top:56px;padding-bottom:16px}
.tt-hero .lead{margin:0 auto}
.tt-hero h1{font-size:clamp(2.3rem,5.5vw,3.8rem);margin:24px 0 18px}
.tt-hero h1 span{background:linear-gradient(90deg,#4d86ff,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.tt-hero .actions{justify-content:center}
.tt-pill{display:inline-flex;gap:10px;align-items:center;font-size:.82rem;padding:5px 12px 5px 5px;border:1px solid #3550a8;border-radius:999px;background:#0b1a4acc}
.tt-pill b{background:var(--blue);color:#fff;padding:2px 10px;border-radius:999px}
[data-theme="light"] .tt-pill{background:#fff;border-color:var(--line);color:var(--ink)}
.tt-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:16px 48px;margin:44px 0 0}
.tt-stats dt{font-size:1.35rem;font-weight:700}
.tt-stats dd{margin:0;font-size:.85rem;opacity:.7}
.tt-eyebrow{color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin:0 0 6px}
.tt-products{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}
.tt .card{position:relative;padding:24px}
.tt-tag{position:absolute;top:20px;right:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:var(--bg);color:var(--mute)}
.tt-tag.live{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}
.tt-icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800;font-family:Consolas,monospace;margin-bottom:12px}
.tt-icon.cyan{background:#0e7490}
.tt-icon.violet{background:var(--violet)}
.tt-feature{border-color:var(--blue);background:linear-gradient(135deg,#eaf0ff,#fff 60%)}
[data-theme="dark"] .tt-feature{background:linear-gradient(135deg,#13246b,#0d1a3d 60%)}
.tt-feature .tags{margin:4px 0 16px}
.tt-soon{border-style:dashed;opacity:.75}
.tt-spot{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.tt-checks{list-style:none;padding:0;margin:20px 0 28px}
.tt-checks li{position:relative;padding:6px 0 6px 30px}
.tt-checks li::before{content:"✓";position:absolute;left:0;top:7px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}
.tt-term{background:#050a1c;color:#cfd8ff;border:1px solid #1f2f5c;border-radius:12px;overflow:hidden;box-shadow:0 24px 60px #0d1b3d40}
.tt-term-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#0b1433;border-bottom:1px solid #1f2f5c;font-size:.75rem;color:#9fb0d6}
.tt-term-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.tt-term-bar i:nth-child(2){background:#febc2e}
.tt-term-bar i:nth-child(3){background:#28c840}
.tt-term-bar span{margin-left:8px}
.tt-term pre{margin:0;padding:20px;font-family:"Cascadia Code",Consolas,monospace;font-size:.82rem;line-height:1.75;overflow-x:auto}
.tt-term .g{color:#34d399}.tt-term .y{color:#fcd34d}.tt-term .c{color:#22d3ee}.tt-term .p{color:#f0abfc}.tt-term .m{color:#6b7aab}
.tt-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tt-grid3 .card code{display:inline-block;margin-top:6px}
.tt-num{font-family:Consolas,monospace;color:var(--blue);font-size:.8rem}
.tt-center{text-align:center}
.tt-center .sub{margin-left:auto;margin-right:auto;max-width:620px}
.tt-providers{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.tt-providers li{padding:10px 20px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:600}
[data-theme="dark"] .tt-providers li{background:#0d1a3d}
.tt-code{margin:12px 0 0;padding:12px;border-radius:8px;background:#050a1c;color:#cfd8ff;border:1px solid #1f2f5c;font-family:"Cascadia Code",Consolas,monospace;font-size:.78rem;white-space:pre-wrap;word-break:break-all}
.tt-ready{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}
.tt-ready small{float:right;color:var(--blue);font-size:.7rem;font-weight:700;margin-top:6px}
.tt-center-actions{justify-content:center}
.tt-req{text-align:center;color:var(--mute);font-size:.85rem;margin:16px 0 0}
.tt-contrib-wrap{padding-bottom:64px}
.tt-contrib{text-align:center;color:#fff;border-radius:18px;padding:52px 32px;background:linear-gradient(120deg,#1739a8,#2f6bff 55%,#0891b2)}
.tt-contrib p{color:#e2e9ff;max-width:560px;margin:8px auto 0}
.tt-contrib .actions{justify-content:center}
.tt-contrib .btn.tt-white{background:#fff;color:#0b1a55;border-color:#fff}
.tt-contrib .btn.ghost{border-color:#ffffffaa}

/* Games page */
.gm-hero{min-height:calc(100vh - 140px);display:flex;flex-direction:column}
.gm-hero > header.nav{width:100%}
.gm-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:48px}
.gm-body .lead{margin:0 auto 28px}
.gm-badge{font-size:4rem}
.gm-logo{display:block;width:auto;height:84px;border-radius:10px}
footer .gm-logo{height:68px}
[data-theme="light"] .gm-logo{box-shadow:0 4px 14px #0d1b3d33}
.gm-loading{width:min(420px,85%);margin-bottom:28px}
.gm-bar{position:relative;height:12px;border-radius:999px;background:#ffffff22;overflow:hidden}
[data-theme="light"] .gm-bar{background:var(--line)}
.gm-bar div{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,#2f6bff,#22d3ee,#d946ef);background-size:200% 100%;box-shadow:0 0 14px #22d3ee88;animation:gm-fill 3.2s ease-in-out infinite,gm-shift 1.6s linear infinite}
.gm-bar div::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,#ffffff33 0 8px,transparent 8px 16px);background-size:22px 22px;animation:gm-stripes .6s linear infinite}
.gm-loading-text{display:block;margin-top:10px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.gm-loading-text i{font-style:normal;animation:gm-dot 1.2s infinite}
.gm-loading-text i:nth-child(2){animation-delay:.2s}
.gm-loading-text i:nth-child(3){animation-delay:.4s}
@keyframes gm-fill{0%{width:0}60%{width:85%}85%,100%{width:100%;opacity:0}}
@keyframes gm-shift{to{background-position:-200% 0}}
@keyframes gm-stripes{to{background-position:22px 0}}
@keyframes gm-dot{0%,100%{opacity:.2}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.gm-bar div,.gm-bar div::after,.gm-loading-text i{animation:none}.gm-bar div{width:60%}}

@media(max-width:900px){
  .tt-products,.tt-grid3,.tt-spot{grid-template-columns:1fr}
}
