:root {
  --bg:#111314;
  --panel:#1a1d20;
  --ink:#f3f4ed;
  --muted:#b0b4b4;
  --line:#34383c;
  --lime:#d2fa69;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  color-scheme:dark;
  font-family:Arial,sans-serif;
  font-size:16px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:30px;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

body.modal-open {
  overflow:hidden;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  font:inherit;
  color:inherit;
  cursor:pointer;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

button:focus-visible,a:focus-visible {
  outline:2px solid var(--lime);
  outline-offset:6px;
}

button {
  border:0;
}

img {
  display:block;
  max-width:100%;
}

::selection {
  background:var(--lime);
  color:var(--bg);
}

.wrap {
  width:min(1320px,calc(100% - 96px));
  margin-inline:auto;
}

.accent {
  color:var(--lime);
}

.mono,.eyebrow,.section-kicker,.game-meta,.feature-label,.feature-location,.card-number,.image-caption {
  font-family:var(--mono);
}

.eyebrow {
  font-size:12px;
  letter-spacing:1.8px;
  line-height:1.6;
}

.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  background:var(--lime);
  color:var(--bg);
  padding:14px;
  z-index:20;
  transform:translateY(-150%);
}

.skip-link:focus {
  transform:translateY(0);
}

.header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:106px;
  border-bottom:1px solid var(--line);
  gap:24px;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  white-space:nowrap;
  font-family:var(--mono);
  font-weight:750;
  font-size:29px;
  letter-spacing:-1.5px;
}

.brand-dot {
  color:var(--lime);
}

.header nav {
  display:flex;
  gap:34px;
  font-size:14px;
}

.header nav a {
  color:#c5c8bf;
  transition:color .2s;
}

.header nav a:hover {
  color:var(--lime);
}

.header-cta {
  font-size:14px;
  display:flex;
  gap:24px;
  align-items:center;
  border:1px solid #58604d;
  border-radius:4px;
  padding:13px 18px;
}

.header-cta:hover {
  background:var(--lime);
  color:var(--bg);
  border-color:var(--lime);
}

.header-cta span {
  font-size:21px;
}

.intro {
  padding-block:57px 28px;
}

.intro .eyebrow {
  display:flex;
  gap:12px;
  align-items:center;
  color:#bbc3af;
}

.tiny-cross {
  color:var(--lime);
  font-size:21px;
}

.intro-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  margin-top:15px;
}

.intro h1 {
  font-size:clamp(38px,4.5vw,66px);
  line-height:1.05;
  letter-spacing:-3px;
  font-weight:650;
  margin:0;
}

.intro-row>p {
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 3px;
  flex-shrink:0;
}

.intro-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:39px;
  font-size:12px;
  color:var(--muted);
}

.intro-bottom .mono {
  letter-spacing:1px;
}

.intro-bottom a {
  font-size:14px;
  display:flex;
  align-items:center;
  gap:22px;
}

.intro-bottom a span {
  font-size:22px;
  color:var(--lime);
}

.feature-image {
  isolation:isolate;
  position:relative;
  min-height:600px;
  border-radius:8px;
  overflow:hidden;
  background:#344335;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:29px 34px;
}

.hero-image,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-2;
  object-fit:cover;
  object-position:50% 43%;
}

.hero-shade {
  z-index:-1;
  background:linear-gradient(180deg,rgba(11,19,14,.12) 0%,rgba(8,17,13,.06) 23%,rgba(9,17,12,.35) 46%,rgba(8,16,10,.93) 100%),linear-gradient(90deg,rgba(9,19,15,.4),transparent 70%);
}

.feature-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.feature-label {
  font-size:12px;
  letter-spacing:1.5px;
  text-shadow:0 1px 5px #000;
}

.badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:4px;
  font-size:12px;
  font-weight:500;
  white-space:nowrap;
}

.badge-dark {
  background:#151b14e8;
  color:#f3f4ed;
  border:1px solid #ffffff26;
  backdrop-filter:blur(8px);
}

.badge-lime {
  background:var(--lime);
  color:#1b2410;
}

.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--lime);
}

.feature-content {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-top:135px;
}

.feature-location {
  font-size:12px;
  letter-spacing:2px;
  margin:0 0 18px;
  color:#d7e4c8;
}

.feature-content h2 {
  font-size:clamp(76px,10vw,148px);
  font-weight:900;
  letter-spacing:-7px;
  line-height:.9;
  margin:0;
}

.feature-content h2 span {
  color:var(--lime);
  margin-left:16px;
}

.feature-description {
  font-size:22px;
  line-height:1.3;
  letter-spacing:-.5px;
  margin:24px 0 0;
}

.round-button {
  width:68px;
  height:68px;
  flex-shrink:0;
  border-radius:50%;
  background:var(--lime);
  display:grid;
  place-items:center;
  transition:transform .2s,background .2s;
}

.round-button svg {
  width:30px;
  height:30px;
  stroke:#182010;
  stroke-width:1.5;
}

.round-button:hover {
  transform:rotate(45deg);
  background:#e2ff9e;
}

.feature-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:30px;
  border-top:1px solid #ffffff32;
  padding-top:22px;
}

.tags {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}

.tags span {
  border:1px solid #ffffff38;
  padding:6px 11px;
  border-radius:3px;
  font-size:12px;
  color:#ebf0e2;
}

.image-caption {
  font-size:11px;
  color:#b7c0af;
}

.feature-details {
  display:grid;
  grid-template-columns:1fr 2.1fr;
  gap:60px;
  padding:38px 0 30px;
}

.section-kicker {
  font-size:12px;
  line-height:1.7;
  color:var(--lime);
  letter-spacing:1px;
}

.feature-copy>p {
  font-size:19px;
  line-height:1.6;
  margin:0;
  max-width:800px;
  color:#c9cdc2;
}

.feature-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:24px;
}

.text-button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  background:none;
  padding:0 0 5px;
  border-bottom:1px solid #71834c;
  font-size:14px;
  line-height:1.6;
}

.text-button span {
  font-size:22px;
  color:var(--lime);
  line-height:1;
}

.text-button:hover {
  color:var(--lime);
  border-color:var(--lime);
}

.feature-actions>span {
  font-size:12px;
  color:var(--muted);
}

.gallery-strip {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.gallery-thumb {
  background:transparent;
  padding:0;
  min-width:0;
  text-align:left;
}

.gallery-thumb>img {
  width:100%;
  aspect-ratio:1.95;
  height:auto;
  object-fit:cover;
  border-radius:4px;
  transition:filter .25s;
}

.gallery-thumb:hover>img {
  filter:brightness(1.13);
}

.gallery-thumb>span {
  display:flex;
  justify-content:space-between;
  font-size:12px;
  padding-top:12px;
  color:#b9c0af;
}

.gallery-thumb>span>span {
  color:var(--lime);
}

.games-section {
  padding-top:110px;
}

.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:35px;
  margin-bottom:34px;
}

.section-heading .eyebrow {
  color:var(--muted);
  margin:0 0 16px;
}

.section-heading h2 {
  font-size:clamp(36px,4vw,54px);
  line-height:1.08;
  letter-spacing:-2px;
  font-weight:550;
  margin:0;
}

.section-heading>p {
  margin:0 0 4px;
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
}

.games-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}

.game-card {
  min-width:0;
  display:flex;
  flex-direction:column;
}

.game-art {
  position:relative;
  display:block;
  aspect-ratio:1.7;
  border-radius:5px;
  overflow:hidden;
  isolation:isolate;
  background:var(--panel);
}

.game-art>img {
  height:100%;
  width:100%;
  object-fit:cover;
  transition:transform .45s;
}

.game-art:hover>img {
  transform:scale(1.045);
}

.art-top {
  position:absolute;
  top:18px;
  left:18px;
  right:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}

.card-number {
  background:#10160cbf;
  padding:6px 8px;
  border-radius:3px;
  font-size:12px;
  color:#e1e6d8;
}

.art-link {
  position:absolute;
  right:18px;
  bottom:18px;
  display:grid;
  place-items:center;
  border:1px solid #fff8;
  background:#142016aa;
  backdrop-filter:blur(6px);
  width:42px;
  height:42px;
  border-radius:50%;
  font-size:26px;
}

.game-meta {
  font-size:11px;
  letter-spacing:1px;
  display:flex;
  justify-content:space-between;
  gap:15px;
  color:var(--muted);
  margin-top:23px;
}

.game-card h3 {
  font-weight:550;
  font-size:27px;
  line-height:1.2;
  letter-spacing:-.7px;
  margin:12px 0;
}

.game-card>p {
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
  margin:0 0 23px;
  max-width:530px;
}

.game-card>.text-button {
  align-self:flex-start;
  margin-top:auto;
}

.flow-art {
  background:#c4e9b7;
  color:#173620;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px;
  background-image:linear-gradient(#244c1c10 1px,transparent 1px),linear-gradient(90deg,#244c1c10 1px,transparent 1px);
  background-size:36px 36px;
}

.flow-art:before {
  content:'';
  position:absolute;
  width:85%;
  height:90%;
  border:1px solid #27502c2b;
  border-radius:50%;
  right:-30%;
  bottom:-40%;
  z-index:-1;
  transform:rotate(-30deg);
}

.flow-wordmark {
  font-size:clamp(40px,5vw,76px);
  letter-spacing:-5px;
  font-weight:800;
  line-height:1.1;
}

.flow-wordmark>span:first-child {
  font-weight:400;
}

.flow-period {
  color:#507749;
}

.flow-line {
  display:flex;
  align-items:center;
  gap:13px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:1px;
  margin-top:21px;
}

.flow-line i {
  height:1px;
  background:#355e43;
  width:28px;
}

.flow-art .art-link {
  background:#173620;
  color:var(--lime);
  border-color:transparent;
}

.flow-art .badge-lime {
  background:#173620;
  color:#d2fa69;
}

.flow-art .card-number {
  background:#173620;
  color:#d2fa69;
}

.quiz-section {
  padding-block:106px 80px;
  border-bottom:1px solid var(--line);
}

.quiz-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.quiz-card .game-art {
  aspect-ratio:1.7;
}

.quiz-card h3 {
  font-size:23px;
}

.quiz-card .art-top {
  top:12px;
  left:12px;
  right:12px;
}

.quiz-card .badge {
  padding:6px 9px;
}

.quiz-card>p {
  font-size:14px;
}

.draft-note {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:12px;
  line-height:1.7;
  color:#989f8f;
  margin:35px 0 0;
  max-width:850px;
}

.draft-note>span {
  color:var(--lime);
  font-size:16px;
  line-height:1.3;
}

.studio {
  padding-block:85px;
  display:grid;
  grid-template-columns:1fr 2.1fr;
  gap:60px;
}

.studio-label {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
}

.studio-label .eyebrow {
  color:var(--muted);
}

.studio h2 {
  font-size:clamp(36px,4vw,53px);
  line-height:1.08;
  letter-spacing:-2px;
  font-weight:550;
  margin:0 0 25px;
}

.studio-body>p {
  font-size:17px;
  line-height:1.7;
  color:var(--muted);
  max-width:700px;
  margin:14px 0;
}

.studio-body>.text-button {
  margin-top:18px;
}

.footer {
  border-top:1px solid var(--line);
  padding-top:37px;
  padding-bottom:25px;
}

.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.footer-top>p {
  font-size:26px;
  letter-spacing:-.7px;
}

.back-top {
  width:44px;
  height:44px;
  border:1px solid #49513f;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:25px;
}

.back-top:hover {
  background:var(--lime);
  color:var(--bg);
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:11px;
  padding-top:30px;
}

.footer-bottom .accent {
  font-size:16px;
  margin-left:7px;
}

.lightbox {
  background:#151912;
  color:var(--ink);
  border:1px solid #65744e;
  border-radius:8px;
  width:min(1120px,calc(100% - 40px));
  padding:22px;
  max-height:94dvh;
  overflow:auto;
}

.lightbox::backdrop {
  background:#050804eb;
  backdrop-filter:blur(10px);
}

.lightbox-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}

.lightbox-heading .eyebrow {
  color:var(--lime);
}

.lightbox h2 {
  font-size:22px;
  line-height:1.3;
  margin:5px 0 0;
  font-weight:500;
}

.close-button {
  font-size:32px;
  background:#293020;
  width:44px;
  height:44px;
  border-radius:50%;
  flex-shrink:0;
}

.lightbox>img {
  width:100%;
  height:auto;
  max-height:65dvh;
  object-fit:contain;
  background:#080b07;
  border-radius:3px;
}

.lightbox-footer {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding-top:17px;
}

.lightbox-footer>p {
  font-size:12px;
  line-height:1.5;
  color:var(--muted);
  margin:0;
}

.lightbox-footer>p:first-child {
  font-family:var(--mono);
  color:var(--lime);
  white-space:nowrap;
}

.gallery-controls {
  display:flex;
  gap:8px;
}

.gallery-controls button {
  background:#293020;
  font-size:24px;
  border-radius:3px;
  width:44px;
  height:40px;
}

.gallery-controls button:hover,.close-button:hover {
  background:var(--lime);
  color:var(--bg);
}

@media(min-width:1550px) {
  .intro h1 {
    font-size:68px;
  }
  .feature-image {
    min-height:650px;
  }
}

@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 64px);
  }
  .intro-row {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
  }
  .intro h1 {
    font-size:clamp(40px,6.8vw,65px);
  }
  .intro-row>p br {
    display:none;
  }
  .intro-row>p {
    font-size:16px;
  }
  .intro-bottom {
    margin-top:25px;
  }
  .feature-image {
    min-height:560px;
  }
  .feature-details,.studio {
    gap:30px;
    grid-template-columns:1fr 2fr;
  }
  .feature-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }
  .quiz-card h3 {
    font-size:21px;
  }
  .flow-art {
    padding:30px;
  }
  .flow-wordmark {
    font-size:5.5vw;
    letter-spacing:-3px;
  }
  .flow-line {
    font-size:9px;
    gap:7px;
  }
  .section-heading>p {
    max-width:280px;
  }
}

@media(max-width:760px) {
  .wrap {
    width:calc(100% - 36px);
  }
  .header {
    min-height:84px;
    gap:12px;
  }
  .brand {
    font-size:24px;
    gap:7px;
  }
  .brand img {
    width:34px;
    height:34px;
  }
  .header nav {
    gap:18px;
    font-size:13px;
  }
  .header nav a:first-child {
    display:none;
  }
  .header-cta {
    display:none;
  }
  .intro {
    padding-top:36px;
  }
  .intro .eyebrow {
    font-size:10px;
    letter-spacing:1.1px;
  }
  .intro h1 {
    font-size:clamp(40px,8.2vw,60px);
    letter-spacing:-1.8px;
    max-width:540px;
  }
  .intro-row>p {
    font-size:14px;
    max-width:320px;
    line-height:1.65;
  }
  .intro-bottom {
    margin-top:28px;
  }
  .intro-bottom .mono {
    font-size:9px;
    letter-spacing:.4px;
  }
  .intro-bottom a {
    font-size:12px;
    gap:9px;
  }
  .feature-image {
    padding:19px;
    min-height:500px;
  }
  .hero-image {
    object-position:53% 40%;
  }
  .feature-label {
    font-size:10px;
    letter-spacing:.4px;
  }
  .badge {
    font-size:11px;
    padding:8px 9px;
  }
  .feature-content {
    margin-top:150px;
  }
  .feature-content h2 {
    font-size:clamp(61px,12.7vw,96px);
    letter-spacing:-4px;
  }
  .feature-content h2 span {
    margin-left:8px;
  }
  .feature-location {
    font-size:9px;
    letter-spacing:1px;
    margin-bottom:14px;
  }
  .feature-description {
    font-size:19px;
    margin-top:19px;
  }
  .round-button {
    width:48px;
    height:48px;
    margin-bottom:2px;
  }
  .round-button svg {
    width:24px;
    height:24px;
  }
  .feature-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:13px;
    margin-top:25px;
    padding-top:17px;
  }
  .tags span {
    font-size:10px;
    padding:5px 8px;
  }
  .image-caption {
    font-size:9px;
  }
  .feature-details {
    display:block;
    padding-block:28px;
  }
  .section-kicker {
    font-size:11px;
    margin-bottom:16px;
  }
  .section-kicker br {
    display:none;
  }
  .feature-copy>p {
    font-size:16px;
  }
  .feature-actions>span {
    font-size:11px;
  }
  .gallery-strip {
    gap:10px;
  }
  .gallery-thumb>img {
    aspect-ratio:1.2;
  }
  .gallery-thumb>span {
    font-size:10px;
    line-height:1.5;
    gap:3px;
  }
  .gallery-thumb>span>span {
    display:none;
  }
  .games-section {
    padding-top:70px;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
    margin-bottom:27px;
  }
  .section-heading h2 {
    font-size:38px;
    letter-spacing:-1.4px;
  }
  .section-heading .eyebrow {
    font-size:10px;
    letter-spacing:1px;
    margin-bottom:13px;
  }
  .section-heading>p {
    font-size:14px;
    max-width:none;
  }
  .games-grid {
    grid-template-columns:1fr;
    gap:42px;
  }
  .game-art {
    aspect-ratio:1.65;
  }
  .game-meta {
    margin-top:19px;
  }
  .game-card h3 {
    font-size:25px;
  }
  .game-card>p {
    font-size:15px;
    margin-bottom:18px;
  }
  .flow-art {
    padding:30px;
  }
  .flow-wordmark {
    font-size:clamp(48px,12vw,80px);
  }
  .flow-line {
    font-size:10px;
    gap:12px;
  }
  .quiz-section {
    padding-block:72px 52px;
  }
  .quiz-grid {
    grid-template-columns:1fr;
    gap:38px;
  }
  .quiz-card .game-art {
    aspect-ratio:1.7;
  }
  .quiz-card h3 {
    font-size:24px;
  }
  .quiz-card>p {
    font-size:15px;
  }
  .draft-note {
    font-size:12px;
    line-height:1.6;
    margin-top:30px;
  }
  .studio {
    padding-block:50px;
    display:block;
  }
  .studio-label {
    flex-direction:row;
    align-items:center;
    margin-bottom:26px;
    gap:14px;
  }
  .studio-label img {
    width:48px;
    height:48px;
  }
  .studio h2 {
    font-size:35px;
    letter-spacing:-1.2px;
  }
  .studio-body>p {
    font-size:16px;
  }
  .footer {
    padding-top:23px;
  }
  .footer-top {
    flex-wrap:wrap;
  }
  .footer-top>p {
    order:3;
    flex-basis:100%;
    font-size:29px;
    margin:15px 0 0;
  }
  .footer-bottom {
    flex-direction:column;
    gap:12px;
    padding-top:24px;
  }
  .footer-bottom>span:nth-child(2) {
    display:none;
  }
  .lightbox {
    width:calc(100% - 20px);
    padding:14px;
  }
  .lightbox h2 {
    font-size:19px;
  }
  .lightbox-heading .eyebrow {
    font-size:9px;
    letter-spacing:.7px;
  }
  .lightbox-footer {
    flex-wrap:wrap;
    gap:12px;
  }
  .lightbox-footer>p:nth-child(2) {
    order:3;
    flex-basis:100%;
    font-size:11px;
  }
  .lightbox>img {
    max-height:60dvh;
  }
  .close-button {
    width:40px;
    height:40px;
  }
}

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

@media(max-width:760px) {
  .feature-content {
    position:relative;
    display:block;
  }
  .feature-content .round-button {
    position:absolute;
    right:0;
    bottom:0;
  }
  .feature-description {
    max-width:calc(100% - 58px);
  }
}

@media(max-width:380px) {
  .feature-content h2 {
    font-size:16vw;
    letter-spacing:-3px;
  }
  .feature-description {
    font-size:17px;
  }
  .header nav {
    gap:12px;
    font-size:12px;
  }
  .intro-bottom .mono {
    max-width:130px;
    line-height:1.6;
  }
  .intro-bottom a {
    font-size:11px;
  }
}

/* Motion direction: oversized type, cinematic city, tactile game covers. */
.scroll-progress {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto;
  height: 3px;
  background: var(--lime);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}
.intro { padding-top: 55px; padding-bottom: 35px; }
.intro-row { align-items: flex-end; gap: 24px; margin-top: 24px; }
.intro h1 {
  font-size: clamp(60px, 7.7vw, 112px);
  line-height: .98;
  letter-spacing: -.065em;
  font-weight: 650;
  max-width: none;
}
.title-mask { display: block; overflow: clip; padding-bottom: .11em; margin-bottom: -.05em; }
.title-reveal { display: inline-block; transform-origin: left bottom; }
.intro-aside { padding-bottom: 12px; flex-shrink: 0; }
.intro-aside p { color: var(--muted); font-size: 15px; line-height: 1.65; margin: 15px 0 0; }
.intro-star { display: inline-block; font-size: 62px; color: var(--lime); line-height: 1; transform-origin: 50% 51%; }
.intro-bottom { margin-top: 30px; }
.feature-image { min-height: clamp(560px, 80svh, 760px); border-radius: 24px; }
.hero-image { transform-origin: 50% 55%; }
.feature-content { margin-top: 120px; }
.feature-content h2 { font-size: clamp(85px, 11vw, 156px); }
.feature-details { padding-top: 48px; }
.motion-ribbon {
  margin-top: 95px;
  padding: 22px 0;
  overflow: clip;
  border-block: 1px solid var(--line);
  color: var(--lime);
}
.ribbon-track { display: flex; align-items: center; gap: 40px; width: max-content; }
.ribbon-track span { font-size: clamp(40px, 5.5vw, 86px); font-weight: 750; letter-spacing: -.055em; line-height: 1.1; }
.ribbon-track span:nth-of-type(2) { color: transparent; -webkit-text-stroke: 1px var(--lime); }
.ribbon-track i { font-size: 48px; font-style: normal; }
.games-section { padding-top: 86px; }
.game-card { perspective: 1100px; }
.game-art { border-radius: 12px; transform-origin: center; transition: box-shadow .4s; }
.game-art:hover { box-shadow: 0 18px 55px #0005; }
.game-art>img { transition: none; }
.game-art:hover>img { transform: none; }
.round-button { transition: background .2s; }
.round-button:hover { transform: none; }
.flow-art { display: block; padding: 0; background: #16231e; color: var(--ink); }
.flow-art:before { display: none; }
.flow-art>img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.flow-art-shade { position: absolute; inset: 0; background: linear-gradient(0deg, #09130efa, #09130e2a 40%, transparent 70%); pointer-events: none; }
.flow-art-copy { position: absolute; bottom: 25px; left: 27px; right: 62px; }
.flow-wordmark { font-size: clamp(38px, 4vw, 60px); letter-spacing: -.065em; }
.flow-period { color: var(--lime); }
.flow-line { color: #d6e8c6; font-size: 10px; letter-spacing: 1px; margin-top: 9px; }
.flow-line i { background: var(--lime); width: 20px; }
.flow-art .badge-lime { background: var(--lime); color: var(--bg); }
.flow-art .card-number { background: #10160cbf; color: #e1e6d8; }
.flow-art .art-link { background: var(--lime); color: var(--bg); }
.gallery-thumb img { border-radius: 8px; }
.text-button { position: relative; }
.text-button:after { content: ''; position: absolute; height: 1px; background: var(--lime); bottom: -1px; left: 0; right: 0; transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.text-button:hover:after { transform: scaleX(1); }
.header nav a { position: relative; }
.header nav a:after { content: ''; position: absolute; bottom: -7px; left: 0; right: 0; height: 1px; background: var(--lime); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.header nav a:hover:after { transform: scaleX(1); }

@media (min-width: 761px) and (max-width: 1100px) {
  .intro-row { flex-direction: row; align-items: flex-end; }
  .intro h1 { font-size: 7.5vw; }
  .intro-aside p { font-size: 13px; }
  .intro-star { font-size: 48px; }
}
@media (max-width: 760px) {
  .intro { padding-top: 34px; padding-bottom: 26px; }
  .intro-row { flex-direction: column; align-items: flex-start; margin-top: 22px; gap: 19px; }
  .intro h1 { font-size: clamp(35px, 9.8vw, 72px); letter-spacing: -.055em; line-height: 1.03; }
  .intro-aside { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; width: 100%; padding-bottom: 0; }
  .intro-aside p { font-size: 14px; line-height: 1.6; margin: 0; }
  .intro-star { font-size: 47px; margin-right: 8px; }
  .intro-bottom { margin-top: 24px; }
  .feature-image { min-height: 510px; border-radius: 14px; }
  .feature-content { margin-top: 160px; }
  .feature-content h2 { font-size: clamp(51px, 14vw, 100px); letter-spacing: -.055em; }
  .feature-details { padding-top: 28px; }
  .motion-ribbon { margin-top: 52px; padding-block: 17px; }
  .ribbon-track { gap: 24px; }
  .ribbon-track span { font-size: 45px; }
  .ribbon-track i { font-size: 28px; }
  .games-section { padding-top: 57px; }
  .flow-art-copy { left: 20px; bottom: 19px; }
  .flow-wordmark { font-size: clamp(38px, 10vw, 64px); }
  .flow-line { font-size: 8px; letter-spacing: .65px; gap: 7px; }
  .flow-line i { width: 13px; }
}
@media (max-width: 380px) {
  .intro h1 { font-size: 9.6vw; }
  .feature-content h2 { font-size: 15.7vw; }
  .flow-art-copy { bottom: 16px; left: 16px; }
  .flow-wordmark { font-size: 34px; }
  .flow-line { font-size: 7px; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-progress { display: none; }
  .game-art:hover { box-shadow: none; }
}

/* Three colour chapters: graphite → midnight blue → warm paper. */
[hidden] { display: none !important; }
.intro { position: relative; }
.intro-aside { position: relative; }
.intro-star { color: #c4b8ef; }
.motion-ribbon { background: var(--lime); color: #151916; border: 0; }
.ribbon-track span:nth-of-type(2) { -webkit-text-stroke-color: #151916; }
.games-chapter {
  background: #172334;
  --muted: #b9c5d3;
  --line: #39495c;
  padding-block: 84px 86px;
}
.games-chapter .games-section { padding-top: 78px; padding-bottom: 0; border: 0; }
.game-finder { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 50px; }
.finder-heading h2 { font-size: clamp(31px, 3.3vw, 48px); letter-spacing: -.055em; line-height: 1.07; margin: 15px 0; font-weight: 550; }
.finder-heading>p:last-child { font-size: 15px; color: var(--muted); line-height: 1.6; margin-bottom: 0; }
.finder-heading .eyebrow { margin-top: 0; color: #c7bcea; }
.finder-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-self: center; }
.finder-controls button { border: 1px solid #506077; background: transparent; text-align: left; padding: 17px 15px; border-radius: 8px; font-size: 14px; line-height: 1.35; transition: background .25s, border-color .25s, color .25s; }
.finder-controls button>span { display: inline-block; width: 22px; font-size: 19px; vertical-align: middle; }
.finder-controls button:hover { background: #26374d; border-color: #a6b2c4; }
.finder-controls button[aria-pressed=true] { color: #151916; background: var(--lime); border-color: var(--lime); }
.finder-result { --mood-accent: #d2fa69; grid-column: 1/-1; display: grid; grid-template-columns: 128px 1fr auto; align-items: center; gap: 32px; padding: 30px; border: 1px solid #46566c; border-radius: 14px; background: #101923; min-height: 216px; }
.finder-result[data-mood=fight] { --mood-accent: #fac181; }
.finder-result[data-mood=think] { --mood-accent: #c4b8ef; }
.finder-result[data-mood=explore] { --mood-accent: #9dd8ec; }
.finder-orbit { position: relative; display: grid; place-items: center; width: 116px; aspect-ratio: 1; border: 1px solid #738098; border-radius: 50%; color: var(--mood-accent); }
.finder-orbit:before { content: ''; position: absolute; inset: 10px; border: 1px solid #3e4e63; border-radius: 50%; }
.finder-orbit>span { font-size: 62px; line-height: 1; font-weight: 400; }
.finder-orbit i { position: absolute; width: 13px; height: 13px; background: var(--mood-accent); border-radius: 50%; top: 12px; right: 9px; transition: background .3s; }
.finder-answer .eyebrow { font-size: 10px; color: var(--mood-accent); letter-spacing: 1px; margin: 0 0 12px; }
.finder-answer h3 { font-size: clamp(25px, 2.6vw, 36px); letter-spacing: -.045em; font-weight: 550; margin: 0 0 10px; }
.finder-answer>p:last-child { font-size: 14px; line-height: 1.6; color: var(--muted); max-width: 440px; margin: 0; }
.finder-link { display: flex; gap: 22px; align-items: center; justify-content: space-between; padding: 18px 20px; background: var(--mood-accent); border-radius: 6px; color: #151916; font-size: 14px; transition: background .3s; }
.finder-link>span:last-child { font-size: 23px; }
.quiz-chapter { color-scheme: light; background: #eeeae1; color: #1c2529; --muted: #515d62; --line: #c7c6be; --lime: #4b5b28; }
.quiz-section { padding-block: 90px 76px; border: 0; }
.quiz-chapter .section-heading>.eyebrow, .quiz-chapter .section-heading .eyebrow { color: #56536e; }
.quiz-chapter .section-heading .accent { color: #615784; }
.quiz-chapter .draft-note { color: #515d62; }
.quiz-chapter .draft-note>span { color: #515d62; }
.quiz-chapter .game-art { color: #f3f4ed; }
.quiz-chapter .text-button { border-color: #9b9f92; }
.quiz-chapter .game-art:hover { box-shadow: 0 14px 40px #24304425; }
.site-info { border-top: 1px solid var(--line); margin-top: 22px; padding-block: 20px 28px; display: flex; justify-content: space-between; gap: 28px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.site-info details { max-width: 570px; }
.site-info summary { cursor: pointer; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.site-info summary:focus-visible { outline: 2px solid var(--lime); outline-offset: 5px; }
.site-info p { margin: 12px 0 0; }
@media (max-width: 1000px) {
  .game-finder { gap: 28px; }
  .finder-result { grid-template-columns: 88px 1fr; gap: 24px; }
  .finder-orbit { width: 86px; }
  .finder-orbit>span { font-size: 45px; }
  .finder-link { grid-column: 2; justify-self: start; }
  .finder-controls button { padding: 14px 11px; font-size: 12px; }
}
@media (max-width: 760px) {
  .games-chapter { padding-block: 48px 55px; }
  .game-finder { grid-template-columns: 1fr; gap: 24px; }
  .finder-controls button { font-size: 13px; min-height: 62px; }
  .finder-controls button>span { display: block; margin-bottom: 6px; }
  .finder-result { padding: 22px; grid-template-columns: 1fr; min-height: 290px; gap: 18px; }
  .finder-orbit { display: none; }
  .finder-answer { align-self: center; }
  .finder-answer h3 { font-size: 31px; }
  .finder-link { grid-column: 1; justify-self: stretch; align-self: end; }
  .games-chapter .games-section { padding-top: 56px; }
  .quiz-section { padding-block: 55px; }
  .site-info { flex-direction: column; gap: 14px; }
}

/* Studio direction: the game world opens the page, followed by editorial spreads. */
:root { --bg: #101214; --panel: #171b20; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.header { position: absolute; inset: 0 0 auto; z-index: 10; min-height: 102px; border-bottom-color: #ffffff30; }
.header nav a { color: #f4f4f0; }
.header-cta { color: #f3f4ed; border-color: #ffffff70; background: #10121438; backdrop-filter: blur(8px); }
.flagship { width: 100%; }
.feature-image { height: 100svh; min-height: 720px; max-height: none; border-radius: 0; padding: 134px max(48px, calc((100vw - 1320px) / 2)) 30px; background: #1e2c30; }
.hero-visual { position: absolute; inset: 0; z-index: -2; transform-origin: 50% 50%; }
.hero-image, .hero-next { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 43%; z-index: auto; }
.hero-next { opacity: 0; pointer-events: none; }
.hero-shade { background: linear-gradient(180deg, #060a0ed9 0%, #0a10163b 26%, #0a101605 42%, #0a1016ad 75%, #0a1016ed 100%), linear-gradient(90deg, #0a10166b, #0a101600 72%); }
.feature-label { font-size: 11px; letter-spacing: 2px; color: #e3e6e6; }
.feature-content { margin: 0; padding-top: 80px; flex: 1; }
.feature-content h1 { font-size: clamp(95px, 14.5vw, 214px); line-height: .82; font-weight: 900; letter-spacing: -.075em; margin: 0 0 0 -.055em; }
.feature-content h1 span { color: var(--lime); margin-left: .07em; }
.feature-location { font-size: 11px; color: #f3f4ed; margin-bottom: 24px; }
.feature-description { font-size: clamp(22px, 2.5vw, 34px); line-height: 1.15; margin-top: 26px; letter-spacing: -.03em; }
.feature-content .round-button { width: 78px; height: 78px; margin-bottom: 6px; }
.scene-picker { display: flex; align-self: flex-end; gap: 24px; margin-top: 32px; }
.scene-picker button { display: flex; align-items: center; gap: 10px; background: transparent; border-top: 2px solid #ffffff50; padding: 14px 0 2px; min-width: 120px; text-align: left; font-size: 12px; color: #d4dbdd; transition: border-color .25s, color .25s; }
.scene-picker button>span { font-family: var(--mono); font-size: 10px; opacity: .7; }
.scene-picker button[aria-pressed=true] { color: var(--lime); border-color: var(--lime); }
.scene-picker button:hover { color: #fff; border-color: #fff; }
.feature-bottom { margin-top: 24px; padding-top: 18px; }
.feature-bottom .tags span { padding: 0; border: 0; border-radius: 0; font-size: 11px; }
.feature-bottom .tags { gap: 22px; }
.feature-bottom .image-caption { color: #c6ced0; font-size: 10px; text-align: right; }
.feature-details { padding-block: 50px; border-bottom: 1px solid var(--line); }
.feature-copy>p { font-size: 18px; }
.intro { padding-block: 94px 72px; }
.intro h2 { font-size: clamp(62px, 7.7vw, 112px); line-height: .98; letter-spacing: -.065em; font-weight: 650; margin: 0; }
.intro .eyebrow { font-size: 10px; letter-spacing: 2px; }
.intro-row { margin-top: 36px; }
.intro-aside p { font-size: 16px; }
.intro-bottom { margin-top: 36px; }
.motion-ribbon { margin-top: 0; padding-block: 17px; }
.ribbon-track span { font-size: clamp(32px, 4vw, 65px); }
.ribbon-track i { font-size: 35px; }
.games-chapter { background: #172330; padding-top: 0; padding-bottom: 82px; }
.games-chapter .games-section { padding-top: 94px; }
.games-section .section-heading { align-items: flex-end; margin-bottom: 55px; }
.games-section .section-heading h2 { font-size: clamp(44px, 5.1vw, 74px); letter-spacing: -.055em; line-height: 1.02; }
.games-grid { grid-template-columns: 1fr; gap: 66px; }
.games-grid>.game-card { display: grid; grid-template-columns: 1.45fr 1fr; gap: 56px; align-items: center; }
.games-grid>.game-card:nth-child(even) { grid-template-columns: 1fr 1.45fr; }
.games-grid>.game-card:nth-child(even)>.game-art { grid-column: 2; grid-row: 1; }
.games-grid>.game-card:nth-child(even)>.game-story { grid-column: 1; grid-row: 1; }
.games-grid .game-art { aspect-ratio: 1.4; border-radius: 3px; }
.games-grid .game-art>img { object-fit: cover; }
.game-story { padding-block: 20px; }
.game-story .game-meta { margin: 0 0 28px; justify-content: flex-start; gap: 18px; flex-wrap: wrap; font-size: 10px; letter-spacing: 1.2px; }
.game-story h3 { font-size: clamp(32px, 3.8vw, 54px); letter-spacing: -.05em; line-height: 1.03; font-weight: 550; margin-block: 0 24px; }
.game-story>p { font-size: 16px; line-height: 1.75; color: var(--muted); margin: 0 0 32px; max-width: 430px; }
.game-story>.text-button { font-size: 14px; padding-bottom: 10px; }
.flow-card .game-story>.text-button { background: var(--lime); color: #151916; border: 0; border-radius: 3px; padding: 16px 22px; }
.flow-art-copy { bottom: 32px; left: 30px; }
.flow-wordmark { font-size: clamp(48px, 5vw, 72px); }
.game-finder { margin-top: 84px; padding-top: 52px; border-top: 1px solid var(--line); }
.finder-result { border-radius: 4px; }
.finder-controls button { border-radius: 4px; }
.quiz-section { padding-block: 90px; }
.quiz-section .section-heading h2 { font-size: clamp(40px, 4.8vw, 67px); letter-spacing: -.055em; }
.quiz-card .game-art { border-radius: 3px; }
.studio { padding-block: 104px; }
.studio h2 { font-size: clamp(40px, 4.6vw, 65px); letter-spacing: -.045em; }
.footer-wordmark { font-size: clamp(100px, 20vw, 292px); line-height: .95; letter-spacing: -.085em; font-weight: 700; margin: 48px 0 55px; white-space: nowrap; overflow: hidden; }
.footer-wordmark>span { color: var(--lime); }
.footer-wordmark>sup { font-size: .22em; display: inline-block; color: #bcb1e6; vertical-align: top; margin: .3em 0 0 .65em; }
@media (min-width: 761px) and (max-width: 1100px) {
  .games-grid>.game-card, .games-grid>.game-card:nth-child(even) { gap: 30px; }
  .game-story>p { font-size: 14px; }
  .game-story h3 { font-size: 34px; }
  .game-story .game-meta { margin-bottom: 18px; }
  .intro h2 { font-size: 7.5vw; }
  .intro-aside p { font-size: 13px; }
}
@media (max-width: 760px) {
  .header { min-height: 96px; padding-block: 14px; row-gap: 13px; }
  .header .brand { font-size: 24px; }
  .header .brand img { width: 32px; height: 32px; }
  .header nav { font-size: 12px; }
  .feature-image { min-height: 740px; height: 100svh; max-height: 1000px; padding: 132px 18px 22px; }
  .feature-top { align-items: center; gap: 8px; }
  .feature-label { font-size: 8px; letter-spacing: .7px; }
  .feature-top .badge { font-size: 10px; padding: 7px 8px; }
  .hero-image, .hero-next { object-position: 55% 42%; }
  .feature-content { display: flex; align-items: flex-end; padding-top: 120px; }
  .feature-content>div { min-width: 0; }
  .feature-content h1 { font-size: clamp(58px, 17.7vw, 132px); letter-spacing: -.075em; }
  .feature-location { font-size: 8px; letter-spacing: 1px; margin-bottom: 18px; }
  .feature-description { font-size: 23px; max-width: none; margin-top: 20px; padding-right: 56px; }
  .feature-content .round-button { position: absolute; width: 46px; height: 46px; right: 0; bottom: 0; margin-bottom: 0; }
  .feature-content .round-button svg { width: 23px; height: 23px; }
  .scene-picker { align-self: stretch; justify-content: space-between; gap: 15px; margin-top: 32px; }
  .scene-picker button { min-width: 0; flex: 1; font-size: 10px; gap: 7px; padding-top: 12px; }
  .scene-picker button>span { font-size: 9px; }
  .feature-bottom { flex-wrap: wrap; gap: 13px; margin-top: 20px; padding-top: 17px; }
  .feature-bottom .image-caption { text-align: left; font-size: 9px; }
  .feature-details { padding-block: 30px; gap: 18px; }
  .feature-copy>p { font-size: 15px; }
  .feature-actions { align-items: flex-start; flex-direction: column; gap: 15px; }
  .intro { padding-block: 52px 42px; }
  .intro h2 { font-size: clamp(34px, 9.6vw, 72px); letter-spacing: -.055em; line-height: 1.03; }
  .intro-row { margin-top: 24px; }
  .intro-aside p { font-size: 14px; }
  .intro-bottom { margin-top: 26px; }
  .motion-ribbon { padding-block: 13px; }
  .ribbon-track span { font-size: 34px; }
  .ribbon-track i { font-size: 24px; }
  .games-chapter { padding-bottom: 50px; }
  .games-chapter .games-section { padding-top: 50px; }
  .games-section .section-heading { margin-bottom: 32px; }
  .games-section .section-heading h2 { font-size: 42px; }
  .games-grid { gap: 44px; }
  .games-grid>.game-card, .games-grid>.game-card:nth-child(even) { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  .games-grid .game-art { aspect-ratio: 1.45; }
  .game-story { padding-block: 23px 0; }
  .game-story h3 { font-size: 34px; margin-bottom: 16px; }
  .game-story .game-meta { margin-bottom: 18px; font-size: 9px; }
  .game-story>p { font-size: 14px; margin-bottom: 22px; }
  .flow-art-copy { left: 20px; bottom: 23px; }
  .flow-wordmark { font-size: 46px; }
  .game-finder { margin-top: 50px; padding-top: 38px; }
  .quiz-section { padding-block: 54px; }
  .quiz-section .section-heading h2 { font-size: 39px; }
  .studio { padding-block: 58px; }
  .studio h2 { font-size: 38px; }
  .footer-wordmark { margin-block: 32px; font-size: 21vw; }
}
@media (max-width: 380px) {
  .feature-content h1 { font-size: 17vw; }
  .feature-description { font-size: 20px; }
  .feature-image { min-height: 710px; }
  .games-section .section-heading h2 { font-size: 37px; }
}
.hero-gallery-label { position: absolute; right: calc(100% + 20px); white-space: nowrap; color: var(--ink); font-size: 13px; letter-spacing: .02em; }
.feature-content .round-button { position: relative; }
@media (max-width: 760px) {
  .hero-gallery-label { display: none; }
  .feature-content .round-button { position: absolute; }
}
.flow-card .game-story>.text-button span { color: inherit; }
