/* Great Games Network: one stylesheet for every page. */
@font-face{font-family:"Albert Sans";src:url(/assets/fonts/albert-sans-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --ink:#10142e;--ink-2:#1b2146;--paper:#f6f4ef;--white:#fff;--line:#e2ddd2;--line-dark:rgba(255,255,255,.14);
  --muted:#5a5e72;--muted-dark:rgba(255,255,255,.68);--accent:#3346d3;--signal:#b8461f;
  --wrap:1200px;--pad:clamp(20px,4vw,40px);--radius:18px;
  --f:"Albert Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--f);font-size:18px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--white);padding:8px 14px;border-radius:8px;z-index:10}
.skip:focus{left:8px}

/* Header */
.top{position:sticky;top:0;z-index:5;background:rgba(246,244,239,.9);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.top.dark{background:rgba(16,20,46,.88);color:var(--white)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;letter-spacing:-.01em;font-size:17px;white-space:nowrap}
/* The GGN logo is a one-colour glyph: a mask painted in the text colour of whatever it sits on. No plate, ring or rounding. */
.brand .mark{width:36px;height:36px;flex:none;background:currentColor;-webkit-mask:url(/assets/ggn-mark.webp) center/contain no-repeat;mask:url(/assets/ggn-mark.webp) center/contain no-repeat}
.nav{display:flex;align-items:center;gap:4px}
.nav a{text-decoration:none;font-size:15px;font-weight:500;padding:8px 14px;border-radius:999px;opacity:.82}
.nav a:hover{opacity:1;background:rgba(16,20,46,.06)}
.top.dark .nav a:hover{background:rgba(255,255,255,.08)}
.nav a[aria-current=page]{opacity:1;font-weight:650}
.nav .cta{opacity:1;background:var(--ink);color:var(--white);margin-left:8px}
.nav .cta:hover{background:var(--ink-2)}
.top.dark .nav .cta{background:var(--white);color:var(--ink)}
.menu{display:none}
@media (max-width:820px){
  .menu{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:15px;font-weight:600;color:inherit;background:none;border:1px solid currentColor;border-radius:999px;padding:7px 14px;cursor:pointer;opacity:.9}
  .nav{display:none;position:absolute;left:0;right:0;top:72px;flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 20px;background:var(--paper);border-bottom:1px solid var(--line)}
  .top.dark .nav{background:var(--ink);border-color:var(--line-dark)}
  .nav.open{display:flex}
  .nav a{font-size:18px;padding:14px 4px;border-radius:0;border-bottom:1px solid var(--line)}
  .top.dark .nav a{border-color:var(--line-dark)}
  .nav .cta{margin:16px 0 0;text-align:center;border-radius:999px;border:0}
}

/* Type */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.eyebrow b{color:var(--signal);font-weight:700}
.dark{--signal:#e8603c}
.dark .eyebrow{color:var(--muted-dark)}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.05}
h1{font-size:clamp(42px,7.2vw,88px);letter-spacing:-.04em}
h2{font-size:clamp(32px,4.6vw,56px)}
h3{font-size:22px;letter-spacing:-.015em;line-height:1.25}
.lede{font-size:clamp(19px,2vw,23px);line-height:1.5;color:var(--muted);max-width:40em}
.dark .lede{color:var(--muted-dark)}
p+p{margin-top:1em}

/* Sections */
section{padding:clamp(72px,10vw,128px) 0}
.dark{background:var(--ink);color:var(--white)}
.head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px 64px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.head .eyebrow{grid-column:1/-1}
.head .lede{justify-self:end}
@media (max-width:900px){.head{grid-template-columns:minmax(0,1fr)}.head .lede{justify-self:start}}

/* Hero */
.hero{padding:clamp(56px,9vw,120px) 0 clamp(64px,9vw,112px);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 20%,rgba(51,70,211,.35),transparent 70%),radial-gradient(40% 60% at 10% 110%,rgba(232,96,60,.18),transparent 70%);pointer-events:none}
.hero .lead{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:center}
.hero h1{margin:24px 0 28px}
.hero h1 em{font-style:normal;color:#aab4ff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:650;font-size:16px;padding:14px 22px;border-radius:999px;background:var(--ink);color:var(--white);border:1px solid var(--ink);transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;color:inherit;border-color:currentColor}
.dark .btn{background:var(--white);color:var(--ink);border-color:var(--white)}
.dark .btn.ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.4)}
.arrow{transition:transform .15s}
a:hover .arrow{transform:translateX(3px)}
.mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:440px;justify-self:end;width:100%}
.mosaic a{position:relative;aspect-ratio:1;border-radius:28px;background:var(--ink-2);border:1px solid var(--line-dark);display:grid;place-items:center;text-decoration:none;transition:transform .2s,border-color .2s}
.mosaic a:nth-child(2){transform:translateY(28px)}
.mosaic a:hover{border-color:rgba(255,255,255,.4)}
.mosaic img{width:44%;height:auto;border-radius:22%;box-shadow:0 12px 32px rgba(0,0,0,.35)}
.mosaic span{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:13px;font-weight:600;color:var(--muted-dark)}
@media (max-width:900px){.hero .lead{grid-template-columns:minmax(0,1fr)}.mosaic{justify-self:start;max-width:360px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:100%}.mosaic a{border-radius:18px}.mosaic a:nth-child(2){transform:none}.mosaic span{display:none}.mosaic img{width:58%}}

.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-dark);margin-top:clamp(56px,8vw,96px);position:relative}
.facts div{padding:28px 24px 0 0}
.facts div+div{padding-left:24px;border-left:1px solid var(--line-dark)}
.facts dt{font-size:clamp(36px,4.4vw,56px);font-weight:700;letter-spacing:-.04em;line-height:1}
.facts dd{font-size:15px;color:var(--muted-dark);margin-top:10px;line-height:1.4}
@media (max-width:720px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.facts div:nth-child(3){border-left:0;padding-left:0}.facts div:nth-child(n+3){margin-top:8px}}

/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.pillars article{padding:36px 32px 8px 0}
.pillars article+article{padding-left:32px;border-left:1px solid var(--line)}
.pillars .num{font-size:14px;font-weight:700;color:var(--signal);letter-spacing:.08em}
.pillars h3{margin:18px 0 12px;font-size:26px}
.pillars p{color:var(--muted);font-size:17px}
@media (max-width:900px){.pillars{grid-template-columns:minmax(0,1fr)}.pillars article,.pillars article+article{padding:32px 0;border-left:0}.pillars article+article{border-top:1px solid var(--line)}}

/* Brand tiles */
.brands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tile{--c:#10142e;--k:#10142e;--t:#f1f0ff;position:relative;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px;text-decoration:none;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.tile::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--c)}
.tile:hover{transform:translateY(-3px);box-shadow:0 20px 48px -20px rgba(16,20,46,.28);border-color:#d5cfc2}
.tile .row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.tile .row>div{min-width:0}
.tile .icon{width:64px;height:64px;border-radius:16px;flex:none;box-shadow:0 0 0 1px rgba(16,20,46,.08),0 8px 20px -8px rgba(16,20,46,.3)}
.tile h3{font-size:26px}
.tile .domain{font-size:15px;color:var(--muted)}
.tile .kind{margin-left:auto;align-self:flex-start;font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--t);color:var(--k);white-space:nowrap}
.tile p{margin:24px 0 28px;color:var(--muted);font-size:17px}
.tile dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}
.tile dt{font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tile dd{font-size:16px;font-weight:600;margin-top:4px;line-height:1.35}
.tile .go{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-weight:650;font-size:16px;color:var(--k)}
@media (max-width:1100px){.brands{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.tile{padding:24px}.tile .kind{display:none}.tile dl{grid-template-columns:repeat(2,minmax(0,1fr))}.tile dl div:last-child{grid-column:1/-1}}

/* Brand detail (portfolio page) */
.brand-detail{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px 64px;padding:56px 0;border-top:1px solid var(--line)}
.brand-detail:first-of-type{border-top:0;padding-top:0}
.brand-detail .icon{width:88px;height:88px;border-radius:22px;box-shadow:0 0 0 1px rgba(16,20,46,.08),0 12px 28px -10px rgba(16,20,46,.35)}
.brand-detail h2{font-size:clamp(32px,4vw,44px);margin:24px 0 6px}
.brand-detail .domain{color:var(--muted)}
.brand-detail .say{font-size:clamp(19px,2vw,22px);line-height:1.5;margin-bottom:28px}
.spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.spec div{padding:16px 16px 16px 0;border-bottom:1px solid var(--line)}
.spec div:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}
.spec dt{font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.spec dd{margin-top:4px;font-weight:600;line-height:1.4}
.games{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
/* Brand logos that are a bare mark (PuzzleNext's pebbles) get no tile rounding, ring or shadow. */
.tile .icon.bare,.brand-detail .icon.bare,.mosaic img.bare{border-radius:0;box-shadow:none}
.mosaic img.bare{filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.shot{width:100%;height:auto;margin-top:28px;border-radius:14px;border:1px solid var(--line)}
.games li{list-style:none;font-size:15px;font-weight:550;padding:7px 14px;border-radius:999px;background:var(--white);border:1px solid var(--line)}
@media (max-width:900px){.brand-detail{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.spec{grid-template-columns:minmax(0,1fr)}.spec div:nth-child(even){padding-left:0;border-left:0}}

/* Principles list */
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.principles article{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:36px}
.dark .principles article{background:var(--ink-2);border-color:var(--line-dark)}
.principles .num{font-size:14px;font-weight:700;color:var(--signal);letter-spacing:.08em}
.principles h3{margin:16px 0 12px;font-size:24px}
.principles p{color:var(--muted);font-size:17px}
.dark .principles p{color:var(--muted-dark)}
@media (max-width:820px){.principles{grid-template-columns:minmax(0,1fr)}.principles article{padding:28px}}

.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 80px;align-items:start}
.split .body{font-size:19px;color:var(--muted)}
.dark .split .body{color:var(--muted-dark)}
.split .body strong{color:var(--ink);font-weight:650}
.dark .split .body strong{color:var(--white)}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}}
.dark .dark .dark 

/* Contact */
.contact{text-align:left}
.contact h2{font-size:clamp(40px,6vw,76px);max-width:14em}
.contact .mail{display:inline-block;margin-top:32px;font-size:clamp(22px,3.4vw,40px);font-weight:600;letter-spacing:-.02em;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.35);padding-bottom:4px;overflow-wrap:anywhere}
.contact .mail:hover{border-color:var(--white)}

/* Page intro (inner pages) */
.intro{padding:clamp(56px,8vw,104px) 0 clamp(48px,6vw,72px)}
.intro h1{font-size:clamp(40px,6vw,72px);margin:20px 0 24px;max-width:14em}

/* Legal table */
.legal{border-top:1px solid var(--line)}
.legal div{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.legal dt{color:var(--muted);font-size:16px}
.legal dd{font-weight:600;overflow-wrap:anywhere}
@media (max-width:560px){.legal div{grid-template-columns:minmax(0,1fr);gap:2px}}

/* Footer */
.foot{background:var(--ink);color:var(--muted-dark);font-size:15px;padding:64px 0 40px}
.foot .grid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:40px}
.foot .brand{color:var(--white)}
.foot p{margin-top:16px;max-width:26em}
.foot h4{font-size:12px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-bottom:14px}
.foot ul{list-style:none}
.foot li+li{margin-top:8px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--white)}
.foot .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line-dark);font-size:14px}
@media (max-width:820px){.foot .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot .grid>div:first-child{grid-column:1/-1}}

.nf{min-height:60vh;display:flex;align-items:center}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
