@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  color-scheme: dark;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  color: oklch(94% 0.016 78);
  background: oklch(20% 0.035 335);
  font-synthesis: none;
  --ink: oklch(20% 0.035 335);
  --ink-2: oklch(25% 0.04 335);
  --ink-3: oklch(31% 0.04 335);
  --paper: oklch(96% 0.022 82);
  --paper-2: oklch(91% 0.03 79);
  --paper-ink: oklch(23% 0.034 334);
  --coral: oklch(70% 0.17 28);
  --coral-soft: oklch(78% 0.12 28);
  --yellow: oklch(84% 0.14 88);
  --mint: oklch(80% 0.13 163);
  --blue: oklch(68% 0.13 245);
  --violet: oklch(67% 0.14 305);
  --pink: oklch(72% 0.15 350);
  --rule: oklch(94% 0.016 78 / 0.18);
  --muted: oklch(78% 0.02 334);
  --mono: 'DM Mono', ui-monospace, monospace;
  --page-pad: clamp(20px, 4.5vw, 92px);
}

* { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; scroll-behavior: smooth; }
body { min-height: 100dvh; margin: 0; overflow-x: hidden; background: var(--ink); }
a { color: inherit; -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 3px solid var(--yellow); outline-offset: 4px; }
h1, h2, p { margin: 0; }

.skip-link { position: fixed; top: 12px; left: 12px; z-index: 10; padding: 12px 16px; background: var(--yellow); color: var(--paper-ink); font-weight: 700; transform: translateY(-180%); transition: transform 160ms cubic-bezier(.16,1,.3,1); }
.skip-link:focus { transform: translateY(0); }

.site-shell { min-height: 100dvh; display: flex; flex-direction: column; position: relative; }
.site-shell::before { content: ''; position: fixed; inset: 0; pointer-events: none; opacity: .32; background-image: linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px); background-size: 9vw 9vw; mask-image: linear-gradient(to bottom, transparent, oklch(0% 0 0 / .45), transparent); }

.site-header { min-height: 78px; padding: 14px var(--page-pad); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--rule); position: relative; z-index: 2; }
.brand-lockup { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; font: 700 .82rem/1 var(--mono); letter-spacing: .15em; }
.family-mark, .game-mark { display: inline-grid; place-items: center; aspect-ratio: 1; background: var(--coral); color: var(--paper-ink); border: 2px solid var(--paper); box-shadow: 4px 4px 0 oklch(94% 0.016 78 / .24); font: 500 1rem/1 var(--mono); }
.family-mark { width: 44px; }
.family-note { color: var(--muted); font: 400 .72rem/1.4 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.family-note strong { color: var(--paper); font-weight: 500; }
.live-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; background: var(--mint); border: 1px solid var(--paper-ink); }

main { width: 100%; flex: 1; padding: 0 var(--page-pad); position: relative; z-index: 1; }
.hero { min-height: clamp(290px, 34vh, 430px); padding: clamp(54px, 8vh, 100px) 0 clamp(42px, 6vh, 72px); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); align-items: end; gap: clamp(36px, 7vw, 120px); border-bottom: 1px solid var(--rule); }
.eyebrow { color: var(--yellow); font: 500 .68rem/1.25 var(--mono); letter-spacing: .15em; text-transform: uppercase; }
.hero .eyebrow { margin-bottom: 18px; }
.hero h1 { max-width: 12ch; font-size: clamp(3.5rem, 7.4vw, 8rem); line-height: .86; letter-spacing: -.075em; }
.hero h1 span { color: var(--coral); }
.hero-copy { max-width: 53ch; display: grid; gap: 24px; align-self: end; padding-bottom: 4px; }
.hero-copy p { color: var(--muted); font-size: clamp(1rem, 1.3vw, 1.28rem); line-height: 1.55; }
.hero-copy a { width: fit-content; min-height: 46px; display: inline-flex; align-items: center; gap: 12px; color: var(--paper); border-bottom: 1px solid var(--coral); text-decoration: none; font-weight: 700; }
.hero-copy a span { color: var(--coral); font: 500 1.2rem var(--mono); transition: transform 180ms cubic-bezier(.16,1,.3,1); }
.hero-copy a:hover span { transform: translateY(4px); }

.game-shelf { padding: clamp(34px, 5vh, 70px) 0; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(20px, 2.4vw, 42px); }
.game-box { min-height: clamp(430px, 48vh, 610px); display: grid; grid-template-rows: auto minmax(150px, 1fr) auto auto; border: 1px solid var(--rule); background: var(--ink-2); color: var(--paper); text-decoration: none; box-shadow: 10px 10px 0 oklch(10% 0.025 335); overflow: hidden; position: relative; isolation: isolate; transition: transform 220ms cubic-bezier(.16,1,.3,1), box-shadow 220ms cubic-bezier(.16,1,.3,1), border-color 220ms; }
.game-box:hover { transform: translate(-4px, -4px); box-shadow: 16px 16px 0 oklch(10% 0.025 335); border-color: var(--coral); }
.game-box:active { transform: translate(2px, 2px); box-shadow: 6px 6px 0 oklch(10% 0.025 335); }
.box-topline { min-height: 70px; padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; gap: 18px; border-bottom: 1px solid var(--rule); }
.game-mark { width: 42px; border-color: var(--paper-ink); box-shadow: 4px 4px 0 var(--paper-ink); }
.availability { color: var(--mint); font: 500 .65rem/1.3 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.availability.soon { color: var(--yellow); }

.game-art { min-height: 190px; margin: 0 clamp(18px, 3vw, 46px); position: relative; overflow: hidden; }
.timeline-art { display: flex; align-items: center; justify-content: center; gap: clamp(7px, 1.1vw, 18px); }
.timeline-rule { position: absolute; left: 5%; right: 5%; top: 50%; height: 2px; background: var(--yellow); }
.event-card { width: clamp(88px, 10vw, 156px); aspect-ratio: .8; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(10px, 1.3vw, 18px); background: var(--paper); color: var(--paper-ink); border: 1px solid var(--paper-ink); box-shadow: 6px 6px 0 var(--paper-ink); position: relative; z-index: 1; }
.event-card b { font: 500 clamp(.9rem, 1.3vw, 1.25rem)/1 var(--mono); }
.event-card small { font: 700 clamp(.55rem, .65vw, .72rem)/1.2 var(--mono); letter-spacing: .08em; }
.event-one { transform: rotate(-3deg); }
.event-two { background: var(--coral); transform: translateY(-8px) rotate(2deg); }
.event-two b { font-size: clamp(2rem, 3.5vw, 4rem); }
.event-three { transform: rotate(3deg); }

.quiz-art { display: grid; grid-template-columns: minmax(128px, .55fr) 1fr; grid-template-rows: 1fr auto; align-items: center; gap: 14px clamp(18px, 3vw, 44px); padding: 18px 0; }
.quiz-die { width: min(100%, clamp(130px, 15vw, 13rem)); aspect-ratio: 1; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); border: 2px solid var(--paper-ink); box-shadow: 8px 8px 0 var(--paper-ink); transform: rotate(-3deg); }
.quiz-die span { display: grid; place-items: center; color: var(--paper-ink); border: 1px solid var(--paper-ink); font: 500 clamp(1rem, 2vw, 2rem)/1 var(--mono); }
.quiz-art > p { grid-column: 2; grid-row: 1; max-width: 11ch; color: var(--paper); font-size: clamp(1.55rem, 2.7vw, 3.2rem); line-height: .9; font-weight: 700; letter-spacing: -.055em; }
.wedge-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; }
.wedge-row i { height: 9px; border: 1px solid var(--paper-ink); }
.wedge-row i:nth-child(1) { background: var(--coral); }
.wedge-row i:nth-child(2) { background: var(--yellow); }
.wedge-row i:nth-child(3) { background: var(--violet); }
.wedge-row i:nth-child(4) { background: var(--mint); }
.wedge-row i:nth-child(5) { background: var(--blue); }
.wedge-row i:nth-child(6) { background: var(--pink); }

.game-copy { padding: clamp(20px, 2.4vw, 36px); background: var(--paper); color: var(--paper-ink); border-top: 1px solid var(--paper-ink); }
.game-copy .eyebrow { margin-bottom: 9px; color: oklch(49% 0.12 28); }
.game-copy h2 { font-size: clamp(2.2rem, 4vw, 4.8rem); line-height: .92; letter-spacing: -.06em; }
.game-copy > p:last-child { max-width: 55ch; margin-top: 14px; color: oklch(38% 0.035 334); font-size: clamp(.92rem, 1.1vw, 1.1rem); line-height: 1.5; }
.box-footer { min-height: 62px; padding: 14px clamp(20px, 2.4vw, 36px); display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid var(--rule); font: 500 .63rem/1.35 var(--mono); letter-spacing: .08em; }
.box-footer > span { color: var(--muted); }
.box-footer strong { color: var(--coral-soft); white-space: nowrap; }

.site-footer { min-height: 72px; padding: 18px var(--page-pad); display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--rule); color: var(--muted); font: 400 .68rem/1.4 var(--mono); letter-spacing: .05em; text-transform: uppercase; position: relative; z-index: 1; }

@media (min-width: 981px) and (max-width: 2199px) {
  .site-header { min-height: 72px; }
  .hero { min-height: 260px; padding: 38px 0 34px; }
  .hero h1 { font-size: clamp(4rem, 5.7vw, 6.7rem); }
  .game-shelf { padding: 20px 0 28px; }
  .game-box { min-height: 0; height: 590px; }
  .site-footer { min-height: 68px; }
}

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; gap: 28px; }
  .hero-copy { max-width: 62ch; }
  .game-shelf { grid-template-columns: 1fr; }
  .game-box { min-height: 560px; }
}

@media (max-width: 700px) {
  :root { --page-pad: 18px; }
  .site-header { min-height: 64px; padding-block: 10px; }
  .family-mark { width: 38px; }
  .family-note { max-width: 22ch; text-align: right; font-size: .56rem; }
  .hero { min-height: auto; padding: 58px 0 42px; align-items: start; }
  .hero h1 { font-size: clamp(3.25rem, 15vw, 4.6rem); }
  .hero-copy { gap: 18px; }
  .hero-copy p { font-size: 1rem; }
  .game-shelf { padding: 28px 0 46px; gap: 30px; }
  .game-box { min-height: 520px; grid-template-rows: auto 210px auto auto; box-shadow: 7px 7px 0 oklch(10% 0.025 335); }
  .game-box:hover { transform: none; box-shadow: 7px 7px 0 oklch(10% 0.025 335); }
  .box-topline { min-height: 62px; padding: 10px 12px; }
  .availability { max-width: 20ch; text-align: right; font-size: .56rem; }
  .game-art { margin-inline: 10px; }
  .timeline-art { gap: 5px; }
  .event-card { width: 29%; padding: 9px; box-shadow: 4px 4px 0 var(--paper-ink); }
  .event-card small { font-size: .49rem; }
  .quiz-art { grid-template-columns: 120px 1fr; gap: 12px 20px; padding: 22px 12px; }
  .quiz-die { width: 118px; }
  .quiz-art > p { font-size: 1.72rem; }
  .game-copy { padding: 22px 18px 24px; }
  .game-copy h2 { font-size: 2.65rem; }
  .box-footer { min-height: 70px; padding: 12px 18px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 6px; }
  .site-footer { min-height: 86px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 6px; }
}

@media (min-width: 2200px) {
  html { font-size: 21px; }
  :root { --page-pad: 128px; }
  .site-header { min-height: 124px; }
  .family-mark { width: 66px; }
  .hero { min-height: 610px; }
  .game-shelf { min-height: 1000px; }
  .game-box { min-height: 900px; }
  .site-footer { min-height: 110px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
