:root {
  color-scheme: dark;
  --paper: #110929;
  --card: #21123a;
  --ink: #f8f4ff;
  --muted: #c1b3df;
  --green: #42f5e0;
  --line: #574071;
  --soft: #251741;
  --orange: #ff36ac;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 100%;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: var(--green); text-decoration-thickness: .09em; text-underline-offset: .19em; overflow-wrap: anywhere; }
a:hover { text-decoration-thickness: .16em; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--green); outline-offset: 5px; border-radius: 3px; }
.skip { position: absolute; top: -8rem; left: 1rem; padding: .8rem 1rem; z-index: 10; background: var(--card); }
.skip:focus { top: 1rem; }
.site-header, main, .site-footer { width: min(100% - 2.5rem, 68rem); margin-inline: auto; }
.site-header { display: flex; gap: 1rem 2rem; flex-wrap: wrap; align-items: center; justify-content: space-between; padding-block: 1.4rem; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; min-height: 44px; gap: .85rem; color: var(--ink); text-decoration: none; }
.brand-mark { font-weight: 850; font-size: 2.15rem; letter-spacing: -.09em; line-height: 1; }
.brand small { font-size: .73rem; font-weight: 650; letter-spacing: .08em; }
.site-nav { display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .92rem; }
.site-nav a[aria-current="page"] { color: var(--ink); font-weight: 750; }
main { padding-block: 3rem 4rem; }
.eyebrow { color: var(--green); font-size: .78rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 .75rem; }
h1, h2, h3 { line-height: 1.2; text-wrap: balance; }
h1 { font-size: clamp(2.15rem, 6vw, 3.5rem); font-weight: 800; letter-spacing: -.05em; margin: 0 0 1.2rem; max-width: 19ch; }
h2 { font-size: 1.45rem; letter-spacing: -.025em; margin: 2.6rem 0 .85rem; }
h3 { font-size: 1.1rem; margin: 1.5rem 0 .55rem; }
p { margin: .8rem 0; }
li { margin-block: .5rem; }
ul, ol { padding-left: 1.4rem; }
.lead { font-size: 1.16rem; max-width: 58ch; color: var(--muted); }
.meta { color: var(--muted); font-size: .88rem; }
.legal { max-width: 76ch; }
.legal section { scroll-margin-top: 1.5rem; }
.notice { border-left: 4px solid var(--green); padding: 1rem 1.3rem; background: var(--soft); border-radius: 0 12px 12px 0; margin-block: 1.8rem; }
.notice p:first-child { margin-top: 0; }
.notice p:last-child { margin-bottom: 0; }
.toc { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 1.15rem 1.4rem; margin-block: 2rem; }
.toc p { margin-top: 0; font-weight: 750; }
.toc ul { margin-bottom: 0; }
.toc a { display: inline-block; padding-block: .2rem; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-block: 2.5rem; }
.card { border: 1px solid var(--line); background: var(--card); border-radius: 18px; padding: 1.4rem; }
.card h2 { margin-top: .8rem; font-size: 1.25rem; }
.card p { color: var(--muted); }
.card .number { font-size: .85rem; font-weight: 750; color: var(--green); }
.card a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 650; }
.games { display: flex; flex-wrap: wrap; gap: .8rem; margin-block: 1.8rem; }
.game { padding: .55rem 1rem; border-radius: 9px; background: var(--green); color: #fff; font-size: .9rem; font-weight: 750; letter-spacing: .04em; }
.game.escape { background: var(--orange); color: var(--ink); }
.contact-link { display: inline-flex; min-height: 44px; align-items: center; font-weight: 700; }
.site-footer { border-top: 1px solid var(--line); padding-block: 1.5rem 2rem; color: var(--muted); font-size: .88rem; }
.site-footer p { margin: .4rem 0; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: .25rem 1.2rem; }
.site-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
details { border-top: 1px solid var(--line); padding-block: 1rem; }
details:last-of-type { border-bottom: 1px solid var(--line); }
summary { font-weight: 750; cursor: pointer; min-height: 44px; padding-block: .5rem; line-height: 1.45; }
details p, details ol, details ul { margin-left: 1.2rem; }
@media (max-width: 700px) {
  .site-header, main, .site-footer { width: min(100% - 2rem, 68rem); }
  .site-header { gap: .5rem; }
  .site-nav { width: 100%; gap: .15rem 1rem; }
  main { padding-block: 2rem 3rem; }
  .cards { grid-template-columns: 1fr; }
  .card h2 { margin-top: .4rem; }
}
@media print {
  :root { color: #000; background: #fff; }
  .skip, .site-nav, .toc, .site-footer nav { display: none; }
  .site-header, main, .site-footer { width: 100%; }
  main { padding-block: 1rem; }
  .notice, .card { break-inside: avoid; }
  a { color: inherit; }
}

/* Shared neon identity, matching the games' default colour theme. */
:root { --pink:#ff36ac;--purple:#ae51ff;--cyan:#00efd6;--blue:#5480ff; }
html { scroll-behavior:smooth;scroll-padding-top:24px; }
body { min-height:100vh;background:radial-gradient(ellipse 80% 650px at 100% 0,#32146788,transparent),radial-gradient(ellipse 65% 700px at 0 700px,#3f124566,transparent),var(--paper); }
::selection { color:#110929;background:#42f5e0; }
.brand-mark { font-size:2.6rem;letter-spacing:-.08em; }
.brand-mark span { color:var(--pink); }
.brand small { color:var(--muted);font-size:.65rem;letter-spacing:.16em; }
.site-header { padding-block:1.5rem; }
.site-nav a { color:var(--muted);text-decoration:none;font-size:.85rem; }
.site-nav a:hover,.site-nav a[aria-current] { color:var(--cyan); }
.site-nav a[aria-current] { text-decoration:underline;text-underline-offset:.6em; }
.site-header,main,.site-footer { width:min(100% - 3rem,72rem); }
.legal { max-width:78ch; }
.legal h1 { max-width:24ch; }
.legal h2 { padding-top:.4rem; }
.legal section { border-top:1px solid #57407166;margin-top:2rem; }
.legal p,.legal li { color:#d9cee9; }
.legal strong { color:var(--ink); }
.legal .eyebrow { color:var(--cyan); }
.notice { background:linear-gradient(120deg,#251741,#1d1233);border-left-color:var(--purple); }
.toc,.card { box-shadow:inset 0 1px #ffffff0c,0 4px 0 #09051955; }
.toc { border-color:#725198; }
details { background:#21123a66;padding:1rem 1.15rem; }
summary::marker { color:var(--cyan); }
:focus-visible { outline:3px solid #42f5e0;outline-offset:5px; }
.button { display:inline-flex;gap:1rem;align-items:center;justify-content:center;min-height:50px;border-radius:14px;padding:.85rem 1.3rem;text-decoration:none;font:700 .94rem/1.4 system-ui,sans-serif; }
.button.primary { color:#110929;background:linear-gradient(135deg,#00efd6,#24b8ff);border:1px solid #8ffff0;box-shadow:inset 0 1px #ffffff90,0 4px 0 #087e9d,0 8px 28px #00efd61a; }
.button.primary:hover { background:#6affed; }
.button:active { transform:translateY(2px); }
.hero { display:grid;grid-template-columns:1.22fr 1fr;align-items:center;gap:2rem;padding:2.2rem 0 5rem; }
.hero h1 { font-size:clamp(2.9rem,4.8vw,4.4rem);line-height:1.03;max-width:14ch;letter-spacing:-.065em; }
.hero h1 em { color:var(--pink);font-style:normal; }
.hero .lead { font-size:1.05rem;max-width:43ch;margin-top:1.5rem; }
.eyebrow { font-size:.7rem;letter-spacing:.15em; }
.status-dot { display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px #00efd680;margin-right:7px; }
.hero-actions { display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;margin-top:1.8rem; }
.text-action { font-size:.88rem;font-weight:700;min-height:44px;display:inline-flex;align-items:center;gap:.6rem; }
.hero-caption { font-size:.74rem;color:var(--muted);margin-top:1.2rem; }
.hero-art { position:relative;display:grid;place-items:center;aspect-ratio:1;isolation:isolate; }
.orbit { position:absolute;width:90%;aspect-ratio:1;border:19px solid #ae51ff;border-right-color:var(--cyan);border-bottom-color:var(--pink);border-radius:50%;transform:rotate(-22deg);box-shadow:0 0 55px #a221ff22; }
.tile-board { display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:14px;width:71%;aspect-ratio:1;transform:rotate(-9deg);border:1px solid #7654a3;border-radius:21px;background:#24133f;box-shadow:0 7px 0 #5d2687,0 30px 70px #0007; }
.tile { border-radius:8px;background:#34204f;box-shadow:inset 0 2px 3px #08031555,inset 0 -1px #ffffff0c; }
.tile:nth-child(3n),.tile:nth-child(5n+1),.tile:nth-child(4n+2) { background:linear-gradient(145deg,#ffffff33,transparent 60%),var(--blue);box-shadow:inset 0 1px #ffffff88,inset 0 -4px #11092955,0 1px 3px #0004; }
.tile:nth-child(3n) { background-color:var(--purple); }
.tile:nth-child(5n+1) { background-color:var(--cyan); }
.tile:nth-child(n+11):nth-child(-n+15) { background:linear-gradient(145deg,#ffffff33,transparent 60%),var(--pink);box-shadow:inset 0 1px #ffffffaa,inset 0 -4px #11092944,0 0 16px #ff36ac44; }
.art-spark { position:absolute;color:#fff230;font-size:3rem;font-weight:700; }
.spark-one { top:0;right:8%;transform:rotate(15deg); }.spark-two { bottom:4%;left:1%;color:var(--cyan); }
.art-label { position:absolute;bottom:1%;right:2%;padding:.45rem .8rem;background:#32194e;border:1px solid #7852a4;border-radius:8px;transform:rotate(-5deg);font-size:.8rem;color:#f0dfff;box-shadow:0 4px 0 #120a24; }
.section-heading { display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:0 0 1.8rem; }
.section-heading h2 { font-size:clamp(1.8rem,3vw,2.4rem);margin:0;letter-spacing:-.05em; }
.collection-count { color:var(--muted);font:700 .75rem monospace;white-space:nowrap; }
.game-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem; }
.game-card { display:flex;flex-direction:column;position:relative;padding:1.5rem;background:linear-gradient(150deg,#291644,#1b102e);border:1px solid #654a96;border-radius:22px;box-shadow:inset 0 1px #ffffff0d,0 5px 0 #09051966;transition:transform .18s,border-color .18s; }
.game-card:hover { border-color:var(--purple);transform:translateY(-3px); }
.game-top { display:flex;align-items:start;justify-content:space-between; }
.game-top img { width:80px;height:80px;border-radius:20px;border:1px solid #74608c66;box-shadow:0 6px 16px #0004; }
.game-index { font:700 .7rem monospace;color:#b6a0cf;padding:.3rem .5rem;border:1px solid #654a9677;border-radius:6px; }
.game-card h3 { font-size:1.6rem;letter-spacing:-.04em;margin:1.4rem 0 .5rem; }
.game-card h3 span { color:var(--pink); }
.game-tagline { color:#f2e7ff;font-size:.87rem;font-weight:700;line-height:1.5;margin:0 0 .4rem; }
.game-description { color:var(--muted);font-size:.85rem;line-height:1.6;margin:.25rem 0 1.4rem;flex:1; }
.store-link { display:flex;justify-content:space-between;align-items:center;gap:.5rem;min-height:46px;padding:.6rem .8rem;border:1px solid #695085;border-radius:10px;text-decoration:none;font-size:.8rem;font-weight:700;background:#301b4c;box-shadow:0 3px 0 #110929; }
.store-link:hover { background:#412461;border-color:var(--cyan); }
.challenge-link { display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:.6rem .1rem 0;font-size:.75rem;color:#c7b5df;text-decoration:none; }
.challenge-link:hover { color:var(--cyan); }
.friend-banner { display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:4.5rem 0;padding:2.2rem;border:1px solid #9362bb;border-radius:24px;background:radial-gradient(ellipse at 100% 100%,#6a174f66,transparent),#281542;box-shadow:inset 0 1px #ffffff16; }
.friend-banner h2 { margin:.4rem 0 1rem;font-size:2rem;max-width:25ch;letter-spacing:-.04em; }
.friend-banner p:not(.eyebrow) { color:var(--muted);font-size:.95rem;max-width:58ch; }
.friend-banner .button { flex-shrink:0; }
.information > h2 { margin-top:.5rem;font-size:2rem; }
.information > .notice { font-size:.85rem;color:var(--muted); }
.information > p { font-size:.9rem; }
.cards { margin-block:2rem; }
.card { background:#1d1233; }
.card h2 { color:#f2e7ff; }.card p { font-size:.88rem; }.card a { font-size:.85rem; }
.site-footer { font-size:.78rem; }
@media (max-width:900px) {
 .hero { gap:1rem; }.hero h1 { font-size:3.1rem; }.hero-art { min-width:0; }.tile-board { gap:6px;padding:10px;border-radius:15px; }.tile { border-radius:5px; }.orbit { border-width:13px; }
 .game-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.friend-banner { flex-direction:column;align-items:start; }
}
@media (max-width:600px) {
 .site-header,main,.site-footer { width:calc(100% - 2rem); }.site-header { gap:.8rem;padding:1rem 0; }.site-nav { gap:.3rem 1rem; }.site-nav a { font-size:.8rem;min-height:36px; }
 main { padding-top:1.8rem; }.hero { grid-template-columns:1fr;padding:0 0 3.5rem;gap:1rem; }.hero h1 { font-size:clamp(2.65rem,11vw,3.5rem);max-width:15ch; }.hero-art { width:min(85%,340px);justify-self:center;margin-top:1rem; }.hero .lead { font-size:1rem; }.hero-caption { font-size:.7rem; }
 .game-grid { grid-template-columns:1fr;gap:1.2rem; }.game-card { padding:1.35rem; }.game-top img { width:72px;height:72px; }.game-card h3 { margin-top:1rem; }.game-description { margin-bottom:1rem; }.collection-count { display:none; }
 .friend-banner { margin:3rem 0;padding:1.5rem;gap:1rem; }.friend-banner h2 { font-size:1.7rem; }.information > h2 { font-size:1.7rem; }.notice { padding:1rem; }.legal h1 { font-size:2.4rem;overflow-wrap:anywhere; }.legal .eyebrow { overflow-wrap:anywhere; } 
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }* { transition:none!important; } }
@media print { :root { color-scheme:light;--ink:#000;--muted:#333;--green:#000;--paper:#fff;--card:#fff;--soft:#eee;--line:#aaa; }body { background:white;color:black; }.hero-art { display:none; }.legal p,.legal li,.legal strong,.legal .eyebrow { color:black; }.notice,.card,.toc,details { background:white;box-shadow:none; }.legal { max-width:none; } }

/* Native portrait gameplay: no autoplay, no external player, no video preload. */
.gameplay{margin:0 0 1.3rem;min-width:0}
.gameplay video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#110929;border:1px solid #7654a3;border-radius:14px;box-shadow:0 4px 18px #0004}
.gameplay figcaption{margin-top:.6rem;color:var(--muted);font-size:.72rem;letter-spacing:.02em}
.gameplay video:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
@media print{.gameplay{display:none}}

/* Social profiles: compact links, shared across the public site. */
.social-links{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0;align-items:center}
.social-links a{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;padding:.5rem .9rem;border:1px solid #695085;border-radius:10px;background:#251741;color:#f8f4ff;text-decoration:none;font-size:.85rem;font-weight:650;line-height:1.3;transition:background .15s,border-color .15s}
.social-links a:hover{background:#321f48;border-color:#ae51ff}
.social-links a:focus-visible{outline:3px solid #42f5e0;outline-offset:4px}
.social-links svg{width:20px;height:20px;flex-shrink:0;color:#42f5e0}
.hero-social{margin-top:1.3rem}.hero-social p{margin:0;color:#c1b3df;font-size:.8rem;line-height:1.5}.hero-social .social-links{margin:.65rem 0 0}
.site-footer nav.social-links a{padding:.5rem .9rem}
@media print{.hero-social,.social-links{display:none}}
