:root {
  --paper:#eeeee7;
  --ink:#191a17;
  --acid:#e3ff59;
  --muted:#66685e;
  --line:#c4c5bb
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px;
  scrollbar-gutter:stable
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Geist,Arial,sans-serif
}
button,input,select {
  font:inherit
}
button,a,select {
  -webkit-tap-highlight-color:transparent
}
button,a {
  color:inherit
}
button {
  cursor:pointer
}
a {
  text-decoration:none
}
button {
  border-radius:0
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #647b00;
  outline-offset:5px
}
button:disabled {
  cursor:wait
}
main {
  overflow-x:hidden;
  width:100%;
  max-width:100%
}
.nav {
  min-height:100px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 4%;
  border-bottom:1px solid var(--ink);
  gap:24px
}
.brand {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.02em
}
.brand-mark {
  font-size:50px;
  font-weight:900;
  letter-spacing:-9px;
  line-height:1
}
.brand-mark span {
  font-size:33px;
  vertical-align:top;
  margin-left:4px
}
.nav-link,.region>span,.eyebrow,.hero-top,.search-hint,.card-top,.card-bottom small,.footer-line,.dialog-top,.manifesto-bottom p,#result-status {
  font-family:monospace;
  font-size:11px;
  letter-spacing:.045em
}
.nav-link {
  margin-left:auto;
  margin-right:5%
}
.region {
  display:flex;
  gap:16px;
  align-items:center
}
.region>span {
  color:var(--muted);
  font-size:9px
}
.region select {
  border:1px solid var(--ink);
  background:transparent;
  padding:11px 28px 11px 12px;
  font-size:12px;
  max-width:160px
}
.hero {
  padding:27px 4% 52px;
  background:var(--acid);
  border-bottom:1px solid var(--ink)
}
.hero-top {
  display:flex;
  justify-content:space-between;
  font-size:10px
}
.hero-title {
  position:relative;
  padding:40px 0 36px
}
h1 {
  position:relative;
  z-index:1;
  margin:0;
  font-size:clamp(52px,8.6vw,135px);
  line-height:.94;
  letter-spacing:-.075em;
  font-weight:900;
  max-width:72rem
}
h1>span {
  font-weight:500
}
.orbit {
  position:absolute;
  right:1%;
  top:20px;
  font-size:180px;
  line-height:1;
  transform:rotate(-8deg);
  font-weight:400
}
.hero-bottom {
  display:grid;
  grid-template-columns:1fr 1.7fr;
  gap:6%;
  align-items:end
}
.hero-bottom p {
  font-size:14px;
  line-height:1.6;
  margin:0
}
.hero-bottom strong {
  font-weight:600
}
.search-area {
  width:100%
}
form {
  display:flex;
  align-items:center;
  background:var(--paper);
  border:2px solid var(--ink);
  height:76px;
  box-shadow:5px 5px 0 var(--ink)
}
.search-icon {
  width:19px;
  height:19px;
  border:2px solid;
  margin:0 20px 0 24px;
  border-radius:50%;
  position:relative;
  flex-shrink:0
}
.search-icon:after {
  content:'';
  position:absolute;
  width:9px;
  height:2px;
  background:var(--ink);
  transform:rotate(45deg);
  right:-7px;
  bottom:-4px
}
input {
  min-width:0;
  width:100%;
  border:0;
  background:none;
  font-size:18px;
  outline:none;
  padding:15px 0
}
form button {
  align-self:stretch;
  background:var(--ink);
  color:var(--acid);
  border:0;
  width:76px;
  font-size:38px;
  flex-shrink:0;
  transition:background .2s,color .2s
}
form button:hover {
  background:var(--acid);
  color:var(--ink)
}
.search-hint {
  display:flex;
  justify-content:space-between;
  margin-top:18px;
  font-size:9px
}
.platform-strip {
  overflow:hidden;
  background:var(--ink);
  color:var(--paper);
  padding:22px 0
}
.marquee-track {
  display:flex;
  align-items:center;
  width:max-content;
  gap:48px;
  animation:marquee 42s linear infinite
}
.marquee-track span {
  font-size:24px;
  font-weight:700;
  letter-spacing:-.05em
}
.marquee-track i {
  font-style:normal;
  color:var(--acid);
  font-size:22px
}
.platform-strip:hover .marquee-track {
  animation-play-state:paused
}
@keyframes marquee {
  to {
  transform:translateX(-50%)
}

}
.catalog {
  padding:64px 4% 110px;
  min-height:600px
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:28px
}
.eyebrow {
  font-size:10px
}
h2 {
  font-size:clamp(28px,3.2vw,48px);
  letter-spacing:-.06em;
  margin:10px 0 0;
  font-weight:600
}
#result-status {
  color:var(--muted);
  font-size:10px;
  min-height:14px
}
.discovery-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-flow:dense;
  gap:1px;
  background:var(--ink);
  border:1px solid var(--ink)
}
.discovery-card {
  position:relative;
  text-align:left;
  height:390px;
  padding:20px;
  border:0;
  background:#333;
  color:#fff;
  overflow:hidden;
  transition:filter .4s
}
.discovery-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(.65) brightness(.65);
  transition:transform .7s,filter .7s
}
.discovery-card:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(transparent 15%,#1119 55%,#111e)
}
.discovery-card:hover img,.discovery-card:focus-visible img {
  transform:scale(1.07);
  filter:grayscale(0) brightness(.85)
}
.card-top,.card-bottom {
  position:absolute;
  z-index:1;
  left:20px;
  right:20px
}
.card-top {
  top:20px;
  font-size:9px;
  display:flex;
  justify-content:space-between
}
.card-top b {
  font-size:20px;
  color:var(--acid)
}
.card-bottom {
  bottom:24px;
  display:flex;
  flex-direction:column
}
.card-bottom small {
  color:var(--acid);
  font-size:9px
}
.card-bottom strong {
  font-size:clamp(25px,2.6vw,42px);
  line-height:1.05;
  letter-spacing:-.05em;
  margin:10px 0 24px
}
.card-bottom>span {
  font-size:10px;
  border-top:1px solid #ffffff65;
  padding-top:14px
}
.filter-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:25px
}
.filter-row button,.season-chip,.provider-tabs button,.retry {
  background:transparent;
  border:1px solid var(--ink);
  padding:11px 16px;
  font-size:12px
}
.filter-row .active,.season-chip.active,.provider-tabs .active {
  background:var(--ink);
  color:var(--acid)
}
.results-grid {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:28px 18px;
  min-height:340px
}
.title-card {
  background:transparent;
  border:0;
  text-align:left;
  padding:0;
  width:100%
}
.poster {
  aspect-ratio:2/3;
  overflow:hidden;
  background:#d4d5ca;
  display:block;
  position:relative;
  border:1px solid var(--ink)
}
.poster img {
  height:100%;
  width:100%;
  object-fit:cover;
  transition:transform .7s
}
.title-card:hover img {
  transform:scale(1.05)
}
.title-card strong {
  display:block;
  margin:12px 0 5px;
  font-size:15px
}
.title-card small {
  font-family:monospace;
  color:var(--muted)
}
.skeleton {
  background:linear-gradient(100deg,#d9dacd 30%,#f5f5ee 50%,#d9dacd 70%);
  background-size:220% 100%;
  animation:shimmer 1.5s infinite
}
.skeleton-line {
  height:16px;
  margin-top:14px;
  width:75%
}
@keyframes shimmer {
  to {
  background-position:-220% 0
}

}
#result-notice {
  min-height:24px;
  font-size:14px;
  margin-bottom:12px
}
.results-grid[aria-busy=true] {
  opacity:.55;
  pointer-events:none
}
.manifesto {
  padding:100px 8%;
  background:var(--ink);
  color:var(--paper)
}
.reveal-copy {
  font-size:clamp(48px,7.6vw,110px);
  font-weight:600;
  line-height:1.04;
  letter-spacing:-.06em;
  margin:45px 0
}
.reveal-copy>span {
  color:var(--acid)
}
.manifesto-bottom {
  display:flex;
  align-items:center;
  gap:24px;
  border-top:1px solid #55574d;
  padding-top:30px
}
.film-window {
  height:60px;
  width:110px;
  background:url('https://picsum.photos/seed/cinema/1920/1080') center/cover;
  filter:grayscale(1);
  border-radius:50%
}
.manifesto-bottom p {
  line-height:1.8
}
.square-link {
  margin-left:auto;
  background:var(--acid);
  color:var(--ink);
  padding:14px 25px;
  font-size:32px;
  transition:transform .2s
}
.square-link:hover {
  transform:translate(3px,-3px)
}
footer {
  padding:65px 4% 24px
}
footer>div>span {
  font-family:monospace;
  font-size:10px
}
footer>div>a {
  display:block;
  font-size:clamp(30px,5vw,70px);
  letter-spacing:-.055em;
  margin:15px 0 60px
}
.footer-line {
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-top:1px solid var(--line);
  padding-top:22px
}
.footer-line a {
  font:inherit;
  margin:0;
  letter-spacing:inherit
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
dialog {
  padding:0;
  border:1px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  width:min(1000px,94vw);
  max-height:90dvh;
  overflow:auto
}
dialog::backdrop {
  background:#111c;
  backdrop-filter:blur(5px)
}
dialog[open] {
  animation:enter .22s ease-out
}
@keyframes enter {
  from {
  opacity:0;
  transform:translateY(14px)
}
to {
  opacity:1;
  transform:none
}

}
.dialog-top {
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 25px;
  background:var(--acid);
  border-bottom:1px solid
}
.dialog-top button {
  border:0;
  background:none;
  font-family:monospace;
  padding:8px
}
#detail-status {
  min-height:28px;
  padding:8px 28px;
  font-size:12px
}
#detail-content {
  padding:10px 32px 38px;
  min-height:440px
}
#detail-content[aria-busy=true] {
  opacity:.45;
  pointer-events:none
}
.detail-header {
  display:grid;
  grid-template-columns:160px 1fr;
  gap:30px;
  min-height:240px
}
.detail-poster {
  width:160px;
  aspect-ratio:2/3;
  object-fit:cover;
  background:#d4d5ca
}
#modal-title {
  font-size:clamp(30px,4vw,54px);
  line-height:1.05;
  margin:8px 0 16px;
  letter-spacing:-.05em
}
.summary {
  line-height:1.65;
  font-size:14px;
  max-width:650px
}
.scores {
  font-family:monospace;
  font-size:12px
}
.season-browser {
  display:flex;
  gap:8px;
  overflow:auto;
  padding:24px 0
}
.season-chip {
  flex-shrink:0
}
.availability {
  border-top:1px solid var(--ink);
  margin-top:28px;
  padding-top:24px;
  min-height:180px
}
.availability h3 {
  font-size:24px;
  margin:0 0 8px;
  letter-spacing:-.04em
}
.region-note {
  font-size:12px;
  color:var(--muted)
}
.provider-tabs {
  display:flex;
  gap:8px;
  margin:18px 0
}
.providers {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  min-height:70px
}
.provider {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 15px;
  border:1px solid var(--ink);
  font-size:13px;
  transition:background .2s
}
.provider:hover {
  background:var(--acid)
}
.provider img {
  width:42px;
  height:42px;
  object-fit:contain
}
.trailers {
  display:flex;
  gap:15px;
  overflow:auto
}
.trailer {
  flex:0 0 220px;
  font-size:12px
}
.trailer img {
  width:220px;
  aspect-ratio:16/9;
  object-fit:cover
}
.related {
  grid-template-columns:repeat(4,minmax(0,1fr));
  min-height:0
}
.error-panel {
  padding:40px 0;
  line-height:1.6
}
.retry {
  display:block;
  margin-top:18px
}
.loading-bar {
  position:relative
}
.loading-bar:after {
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:30%;
  height:3px;
  background:var(--ink);
  animation:progress 1s ease-in-out infinite
}
@keyframes progress {
  to {
  left:70%
}

}
[hidden] {
  display:none!important
}
@media(min-width:1000px) {
  .discovery-grid:has(.discovery-card:hover) {
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.discovery-card:hover .card-bottom {
  transform:translateY(-5px)
}
.card-bottom {
  transition:transform .4s
}

}
@media(min-width:1600px) {
  .hero,.catalog,.nav,footer {
  padding-left:max(4%,calc((100vw - 1500px)/2));
  padding-right:max(4%,calc((100vw - 1500px)/2))
}

}
@media(max-width:900px) {
  .nav-link {
  display:none
}
.orbit {
  font-size:100px;
  top:30px;
  right:0
}
.hero-title {
  padding:40px 0
}
h1 {
  font-size:8.8vw
}
.hero-bottom {
  grid-template-columns:1fr 1.6fr;
  gap:25px
}
.hero-bottom p {
  font-size:12px
}
.search-hint {
  font-size:8px
}
.search-hint span:last-child {
  display:none
}
input {
  font-size:14px
}
.discovery-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.discovery-card {
  height:350px
}
.card-bottom strong {
  font-size:36px
}
.results-grid {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.related {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.region>span {
  display:none
}
.footer-line {
  flex-wrap:wrap
}

}
@media(max-width:600px) {
  .nav {
  min-height:80px;
  padding:15px 5%
}
.brand {
  font-size:9px
}
.brand-mark {
  font-size:40px
}
.region select {
  max-width:125px
}
.hero {
  padding:22px 5% 35px
}
.hero-top {
  font-size:8px
}
.hero-top span:last-child {
  display:none
}
.hero-title {
  padding:36px 0 30px
}
h1 {
  font-size:10.3vw
}
.orbit {
  display:none
}
.hero-bottom {
  grid-template-columns:1fr;
  gap:25px
}
.hero-bottom p {
  font-size:13px
}
.hero-bottom p br:first-child {
  display:none
}
form {
  height:64px
}
.search-icon {
  margin-left:17px;
  margin-right:15px
}
form button {
  width:58px
}
.platform-strip {
  padding:18px 0
}
.marquee-track {
  gap:30px
}
.marquee-track span {
  font-size:20px
}
.catalog {
  padding:45px 5% 65px
}
.section-heading {
  display:block
}
.section-heading #result-status {
  display:block;
  margin-top:15px
}
.discovery-card {
  height:290px;
  padding:12px
}
.card-top,.card-bottom {
  left:13px;
  right:13px
}
.card-top {
  font-size:7px
}
.card-bottom strong {
  font-size:28px
}
.card-bottom>span {
  font-size:9px
}
.results-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 12px
}
.filter-row {
  flex-wrap:wrap
}
.filter-row button {
  padding:10px 12px
}
.manifesto {
  padding:65px 5%
}
.manifesto-bottom {
  gap:12px
}
.film-window {
  display:none
}
.manifesto-bottom p {
  font-size:10px
}
.reveal-copy {
  font-size:11vw
}
.square-link {
  padding:10px 18px
}
footer {
  padding:45px 5% 22px
}
.footer-line {
  flex-direction:column
}
.detail-header {
  grid-template-columns:90px 1fr;
  gap:16px;
  min-height:180px
}
.detail-poster {
  width:90px
}
#detail-content {
  padding:8px 20px 30px
}
#modal-title {
  font-size:30px
}
.summary {
  font-size:13px
}
.detail-header .summary {
  grid-column:1/-1
}
.related {
  grid-template-columns:repeat(2,minmax(0,1fr))
}

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

}

.detail-poster {
  align-self:start
}
.discovery-grid {
  transition:grid-template-columns .5s ease
}
@media(min-width:1000px) {
  .discovery-grid:has(.discovery-card:nth-child(1):hover) {
  grid-template-columns:1.3fr 1fr 1fr 1fr
}
.discovery-grid:has(.discovery-card:nth-child(2):hover) {
  grid-template-columns:1fr 1.3fr 1fr 1fr
}
.discovery-grid:has(.discovery-card:nth-child(3):hover) {
  grid-template-columns:1fr 1fr 1.3fr 1fr
}
.discovery-grid:has(.discovery-card:nth-child(4):hover) {
  grid-template-columns:1fr 1fr 1fr 1.3fr
}

}
@media(max-width:600px) {
  .detail-header>div:not(.detail-poster) {
  display:contents
}
.detail-header {
  grid-template-rows:auto auto;
  gap:10px 16px
}
.detail-header .detail-poster {
  grid-row:1/3
}
.detail-header h2 {
  grid-column:2;
  margin:4px 0
}
.detail-header .scores {
  grid-column:2;
  margin:0;
  align-self:start
}
.detail-header .summary {
  grid-column:1/-1
}
.detail-poster {
  height:135px
}

}
.region-fallback {
  padding: 14px 16px;
  border: 1px solid var(--ink);
  border-left: 5px solid var(--ink);
  background: var(--acid);
  color: var(--ink);
  line-height: 1.6;
}
.discovery-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
  min-height: 44px;
}
.discovery-controls p { margin: 0; font-size: 12px; line-height: 1.5; }
.discovery-controls button, .detail-region select {
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  padding: 10px 12px;
  font-size: 12px;
}
.discovery-controls > button { flex-shrink: 0; }
.discovery-controls button:hover { background: var(--acid); }
.discovery-grid { min-height: 390px; }
.discovery-grid[aria-busy="true"] { pointer-events: none; opacity: .55; }
.discovery-card strong { overflow-wrap: anywhere; }
.detail-region { display: flex; align-items: center; gap: 14px; }
.detail-region select { max-width: 180px; }
@media(max-width:600px) {
  .discovery-controls { align-items: flex-start; gap: 12px; }
  .discovery-controls p { font-size: 11px; }
  .detail-region { font-size: 9px; gap: 8px; }
  .detail-region select { max-width: 145px; padding: 8px; }
  .dialog-top { padding: 12px; }
  .discovery-grid { min-height: 580px; }
  .discovery-card .card-bottom strong { font-size: 24px; }
}
