/* Felles, scrollfri spillvisning for mobil, nettbrett og datamaskin. */
.game-viewport { position: relative; }
.game-viewport__open {
  position: relative;
  z-index: 3;
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin: 12px 18px 2px auto;
  color: #fff;
  border-color: #fff;
  background: #0d6682;
  box-shadow: 0 5px 0 #083f56;
}

.game-viewport__bar { display: none; }

html.game-viewport-open,
body.game-viewport-open {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}

.game-viewport.is-game-viewport {
  --gv-bar: calc(56px + env(safe-area-inset-top, 0px));
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: 100vw !important;
  max-width: none !important;
  height: var(--maram-game-height, 100dvh) !important;
  max-height: var(--maram-game-height, 100dvh) !important;
  margin: 0 !important;
  padding: calc(var(--gv-bar) + 7px) max(10px, env(safe-area-inset-right, 0px)) max(8px, env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)) !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  isolation: isolate;
  box-sizing: border-box;
  background: linear-gradient(145deg, #dff7f5 0%, #fff7dc 62%, #dcefd7 100%) !important;
  box-shadow: none !important;
}

.game-viewport.is-game-viewport::before,
.game-viewport.is-game-viewport::after { display: none !important; }
.game-viewport.is-game-viewport > * { min-width: 0; min-height: 0; }
.game-viewport.is-game-viewport .game-viewport__open { display: none !important; }
.game-viewport.is-game-viewport .game-viewport__bar {
  position: absolute;
  inset: 0 0 auto;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--gv-bar);
  padding: env(safe-area-inset-top, 0px) max(12px, env(safe-area-inset-right, 0px)) 0 max(12px, env(safe-area-inset-left, 0px));
  color: #fff;
  background: #123b53;
  box-shadow: 0 3px 12px rgba(18, 59, 83, .25);
}
.game-viewport__bar strong {
  overflow: hidden;
  font-family: var(--font-title);
  font-size: clamp(.95rem, 2.6vw, 1.2rem);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.game-viewport__bar button {
  display: flex;
  gap: 6px;
  align-items: center;
  min-width: 82px;
  min-height: 44px;
  padding: 7px 13px;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #123b53;
  font: 900 .9rem var(--font-body);
  background: #fff;
  cursor: pointer;
  touch-action: manipulation;
}
.game-viewport__bar button span { font-size: 1.4rem; line-height: .7; }

.game-viewport.is-game-viewport :where(button, [role="button"]) { touch-action: manipulation; }
.game-viewport.is-game-viewport :where(.eyebrow, .baking-game__head p, .jigsaw-game__head p, .bridge-game__header p, .fishing-game__head p, .memory-game__head p, .rosary-game__head p, .shore-game__head p, .crab-game__head p, .penalty-game__header p, .tractor-game__header p, .feeding-game__header p) { display: none !important; }
.game-viewport.is-game-viewport :where(.baking-game__adult-note, .baking-fact-sources, .fishing-game__safety, .rosary-game__faith-note, .tractor-game__lesson, .feeding-game__lesson, .crab-game__footer > p) { display: none !important; }
.game-viewport.is-game-viewport :where(h2, h3) { margin: 0 !important; font-size: clamp(1.2rem, 3vw, 1.65rem) !important; line-height: 1.05 !important; }
.game-viewport.is-game-viewport :where(.button, button) { min-height: 44px; }

/* Sakramentsveien */
.sacrament-journey.is-game-viewport {
  grid-template-rows: minmax(0, 1fr);
  padding-top: calc(var(--gv-bar) + 7px) !important;
}
.sacrament-journey.is-game-viewport > .container {
  width: 100%;
  max-width: none;
  height: 100%;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 6px;
  padding: 0;
  overflow: hidden;
}
.sacrament-journey.is-game-viewport .sacrament-journey__heading {
  display: block;
  margin: 0;
}
.sacrament-journey.is-game-viewport .sacrament-journey__heading > div:first-child {
  display: none;
}
.sacrament-journey.is-game-viewport .sacrament-progress {
  padding: 6px 10px;
  border-radius: 14px;
}
.sacrament-journey.is-game-viewport .sacrament-progress__top {
  flex-wrap: nowrap;
  gap: 7px;
}
.sacrament-journey.is-game-viewport .sacrament-progress__top > strong {
  font-size: clamp(.72rem, 2vw, .92rem);
  white-space: nowrap;
}
.sacrament-journey.is-game-viewport .sacrament-progress__actions {
  flex-wrap: nowrap;
  gap: 5px;
}
.sacrament-journey.is-game-viewport .sacrament-progress button {
  min-height: 38px;
  padding: 4px 9px;
  font-size: clamp(.62rem, 1.7vw, .82rem);
}
.sacrament-journey.is-game-viewport .sacrament-progress__track {
  height: 7px;
  margin-top: 5px;
}
.sacrament-journey.is-game-viewport .sacrament-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.sacrament-journey.is-game-viewport .sacrament-tabs::before {
  display: none;
}
.sacrament-journey.is-game-viewport .sacrament-tabs button {
  min-width: 0;
  min-height: 64px;
  padding: 3px;
  gap: 1px;
  border-width: 2px;
  border-radius: 11px;
  transform: none;
}
.sacrament-journey.is-game-viewport .sacrament-tabs button > img {
  width: 100%;
  height: 34px;
  border-width: 2px;
  border-radius: 7px;
  box-shadow: none;
}
.sacrament-journey.is-game-viewport .sacrament-tabs button strong {
  max-width: 100%;
  overflow: hidden;
  font-size: clamp(.52rem, 1.4vw, .72rem);
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sacrament-journey.is-game-viewport .sacrament-tabs button small {
  top: 2px;
  right: 2px;
  width: 19px;
  height: 19px;
  font-size: .62rem;
}
.sacrament-journey.is-game-viewport .sacrament-tabs button.is-complete::after {
  right: -1px;
  bottom: -1px;
  width: 21px;
  height: 21px;
  border-width: 2px;
  font-size: .62rem;
}
.sacrament-journey.is-game-viewport .sacrament-stage {
  min-height: 0;
  height: 100%;
  margin: 0;
  padding: 7px;
  overflow: hidden;
  border-width: 3px;
  border-radius: 16px;
}
.sacrament-journey.is-game-viewport .sacrament-panel {
  height: 100%;
  min-height: 0;
  grid-template-columns: minmax(0, 1.12fr) minmax(310px, .88fr);
  gap: 8px;
  align-items: stretch;
  overflow: hidden;
}
.sacrament-journey.is-game-viewport .sacrament-visual {
  min-height: 0;
  height: 100%;
  border-width: 3px;
  border-radius: 13px;
}
.sacrament-journey.is-game-viewport .sacrament-visual > img {
  height: 100%;
  aspect-ratio: auto;
}
.sacrament-journey.is-game-viewport .sacrament-hotspot {
  width: 46px;
  height: 46px;
  border-width: 3px;
}
.sacrament-journey.is-game-viewport .sacrament-zoom {
  right: 6px;
  bottom: 6px;
  min-height: 42px;
  padding: 4px 9px;
  font-size: .7rem;
}
.sacrament-journey.is-game-viewport .sacrament-panel__copy {
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 6px;
  overflow: hidden;
}
.sacrament-journey.is-game-viewport .sacrament-panel__copy .eyebrow {
  display: inline-flex !important;
  align-self: flex-start;
  margin-bottom: 3px;
  padding: 4px 8px;
  font-size: .58rem;
}
.sacrament-journey.is-game-viewport .sacrament-panel__copy h3 {
  margin-bottom: 4px !important;
  font-size: clamp(1rem, 2.2vw, 1.42rem) !important;
}
.sacrament-journey.is-game-viewport .sacrament-panel__copy > p {
  margin: 0 0 4px;
  font-size: clamp(.66rem, 1.4vw, .82rem);
  line-height: 1.2;
}
.sacrament-journey.is-game-viewport .sacrament-panel__copy > p:nth-of-type(2) {
  display: none;
}
.sacrament-journey.is-game-viewport .sacrament-gift-pair {
  gap: 5px;
  margin: 4px 0 0;
}
.sacrament-journey.is-game-viewport .sacrament-gift-pair > div {
  padding: 6px 8px;
  border-width: 2px;
  border-radius: 11px;
}
.sacrament-journey.is-game-viewport .sacrament-gift-pair span {
  margin-bottom: 1px;
  font-size: clamp(.48rem, 1.05vw, .59rem);
}
.sacrament-journey.is-game-viewport .sacrament-gift-pair strong {
  font-size: clamp(.6rem, 1.28vw, .75rem);
  line-height: 1.1;
}
.sacrament-journey.is-game-viewport .sacrament-mission {
  margin-top: 5px;
  padding: 7px 9px;
  border-width: 2px;
  border-radius: 13px;
  box-shadow: none;
}
.sacrament-journey.is-game-viewport .sacrament-mission__head {
  margin-bottom: 4px;
  font-size: clamp(.49rem, 1vw, .58rem);
}
.sacrament-journey.is-game-viewport .sacrament-mission__dots {
  gap: 3px;
}
.sacrament-journey.is-game-viewport .sacrament-mission__dots i {
  width: 9px;
  height: 9px;
  border-width: 1px;
}
.sacrament-journey.is-game-viewport .sacrament-mission__dots i.is-active {
  box-shadow: 0 0 0 2px rgba(246, 196, 83, 0.2);
}
.sacrament-journey.is-game-viewport .sacrament-mission > strong {
  font-size: clamp(.72rem, 1.5vw, .9rem);
}
.sacrament-journey.is-game-viewport .sacrament-mission > p {
  margin: 3px 0 5px;
  font-size: clamp(.61rem, 1.25vw, .73rem);
  line-height: 1.18;
}
.sacrament-journey.is-game-viewport .sacrament-mission button {
  min-height: 39px;
  padding: 4px 9px;
  border-width: 2px;
  box-shadow: none;
  font-size: clamp(.59rem, 1.2vw, .72rem);
}
.sacrament-journey.is-game-viewport .sacrament-clues {
  min-height: 0;
  margin: 3px 0 0;
  padding: 0;
}
.sacrament-journey.is-game-viewport .sacrament-clues p:not(.is-latest) {
  display: none !important;
}
.sacrament-journey.is-game-viewport .sacrament-clues p {
  padding: 7px 9px;
  font-size: clamp(.65rem, 1.35vw, .8rem);
  line-height: 1.18;
}
.sacrament-journey.is-game-viewport .sacrament-check {
  margin-top: 5px;
  padding: 7px;
  border-width: 2px;
  border-radius: 13px;
  box-shadow: none;
}
.sacrament-journey.is-game-viewport .sacrament-check > span {
  margin: 0;
  font-size: .55rem;
}
.sacrament-journey.is-game-viewport .sacrament-check > p {
  font-size: clamp(.65rem, 1.35vw, .8rem);
  line-height: 1.16;
}
.sacrament-journey.is-game-viewport .sacrament-check__answers {
  gap: 4px;
  margin-top: 5px;
}
.sacrament-journey.is-game-viewport .sacrament-check__answers button {
  min-height: 42px;
  padding: 4px 5px;
  border-width: 2px;
  border-radius: 9px;
  box-shadow: none;
  font-size: clamp(.58rem, 1.25vw, .74rem);
}
.sacrament-journey.is-game-viewport .sacrament-check__feedback {
  min-height: 1.2em;
  margin-top: 4px !important;
  font-size: clamp(.58rem, 1.2vw, .72rem) !important;
}
.sacrament-journey.is-game-viewport .sacrament-panel__maram {
  margin-top: 5px;
  padding: 6px 8px;
  font-size: clamp(.62rem, 1.3vw, .76rem);
  line-height: 1.18;
}
.sacrament-journey.is-game-viewport .sacrament-panel__footer {
  gap: 5px;
  margin-top: auto;
  padding-top: 5px;
}
.sacrament-journey.is-game-viewport .sacrament-panel__footer span {
  font-size: clamp(.6rem, 1.25vw, .76rem);
}
.sacrament-journey.is-game-viewport .sacrament-panel__footer button {
  min-height: 40px;
  padding: 4px 8px;
  font-size: clamp(.58rem, 1.25vw, .75rem);
}
.sacrament-journey.is-game-viewport .sacrament-complete {
  position: absolute;
  z-index: 210;
  right: 12px;
  bottom: 12px;
  left: 12px;
  margin: 0;
  padding: 12px;
  grid-template-columns: auto 1fr auto;
}

@media (max-width: 760px) {
  .sacrament-journey.is-game-viewport > .container {
    gap: 4px;
  }
  .sacrament-journey.is-game-viewport .sacrament-progress {
    padding: 4px 7px;
  }
  .sacrament-journey.is-game-viewport .sacrament-progress__top > strong {
    max-width: 122px;
    white-space: normal;
    line-height: 1.05;
  }
  .sacrament-journey.is-game-viewport .sacrament-progress button {
    min-height: 36px;
    padding-inline: 7px;
    font-size: .56rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-tabs button {
    min-height: 57px;
    border-radius: 9px;
  }
  .sacrament-journey.is-game-viewport .sacrament-tabs button > img {
    height: 31px;
  }
  .sacrament-journey.is-game-viewport .sacrament-tabs button strong {
    display: none;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 31%) minmax(0, 69%);
    gap: 5px;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__copy {
    padding: 2px 4px;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__copy > p {
    display: none;
  }
  .sacrament-journey.is-game-viewport .sacrament-gift-pair > div {
    padding: 5px 6px;
  }
  .sacrament-journey.is-game-viewport .sacrament-gift-pair span {
    font-size: .48rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-gift-pair strong {
    font-size: .61rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-mission {
    padding: 6px 7px;
  }
  .sacrament-journey.is-game-viewport .sacrament-mission > p {
    font-size: .63rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__maram {
    display: none;
  }
  .sacrament-journey.is-game-viewport .sacrament-clues p {
    padding: 5px 7px;
    font-size: .66rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-check__answers {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .sacrament-journey.is-game-viewport .sacrament-check__answers button {
    min-height: 38px;
    font-size: .65rem;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__footer {
    flex-wrap: nowrap;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__footer span {
    flex: 1 1 auto;
    order: 0;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__footer button {
    flex: 0 1 auto;
  }
  .sacrament-journey.is-game-viewport .sacrament-panel__footer button[data-sacrament-prev] {
    display: none;
  }
}

/* Kjøkkenet */
.baking-game.is-game-viewport { grid-template-rows: auto auto auto auto minmax(0, 1fr) auto; gap: 6px; }
.baking-game.is-game-viewport .baking-game__head { padding: 0 4px !important; align-items: center; }
.baking-game.is-game-viewport .baking-game__score { padding: 7px 11px; }
.baking-game.is-game-viewport .baking-recipes { display: flex; gap: 5px; margin: 0; overflow: hidden; }
.baking-game.is-game-viewport .baking-recipes button { flex: 1 1 0; min-width: 0; min-height: 46px; padding: 5px 3px; border-width: 2px; border-radius: 12px; }
.baking-game.is-game-viewport .baking-recipes button span { font-size: 1rem; }
.baking-game.is-game-viewport .baking-recipes button strong { font-size: clamp(.58rem, 1.8vw, .82rem); }
.baking-game.is-game-viewport .baking-recipes button small { display: none; }
.baking-game.is-game-viewport .baking-game__toolbar { margin: 0; padding: 6px 10px; border-radius: 13px; }
.baking-game.is-game-viewport .baking-progress { margin: -4px 0 0; }
.baking-game.is-game-viewport .baking-game__workspace { min-height: 0; margin: 0; gap: 7px; overflow: hidden; }
.baking-game.is-game-viewport .baking-game__stage { min-height: 0; height: 100%; }
.baking-game.is-game-viewport .baking-game__choices { min-height: 0; padding: 7px; overflow: hidden; }
.baking-game.is-game-viewport .baking-game__choices > section { padding: 6px; }
.baking-game.is-game-viewport .baking-game__choice-head { display: none; }
.baking-game.is-game-viewport :where(.baking-ingredient-grid, .baking-amount-grid) { gap: 5px; }
.baking-game.is-game-viewport :where(.baking-ingredient-grid button, .baking-amount-grid button) { min-height: 44px; padding: 5px; }
.baking-game.is-game-viewport .baking-game__feedback { margin: 0; padding: 6px 10px; min-height: 44px; }
.baking-game.is-game-viewport .baking-game__choices > section.is-current {
  border-color: #f6c453;
  box-shadow: 0 0 0 3px rgba(246,196,83,.32), 0 8px 18px rgba(18,59,83,.13);
}
.baking-game.is-game-viewport [data-baking-choice-panel][aria-disabled="true"] {
  opacity: .58;
  filter: saturate(.65);
}
.baking-game.is-game-viewport :where(.baking-ingredient-grid,.baking-amount-grid) button.is-hint {
  color: #123b53 !important;
  border-color: #e4a91d !important;
  background: #fff4b8 !important;
  box-shadow: 0 0 0 5px rgba(246,196,83,.5), 0 7px 15px rgba(18,59,83,.16) !important;
  animation: baking-viewport-hint 900ms ease-in-out infinite alternate;
}
.baking-game.is-game-viewport .baking-action {
  height: 100%;
  min-height: 0;
  padding: 6px !important;
}
.baking-game.is-game-viewport .baking-action__stir,
.baking-game.is-game-viewport .baking-action__cook {
  height: 100%;
  min-height: 0;
  gap: 6px;
}
.baking-game.is-game-viewport .baking-action__stir {
  grid-template-rows: minmax(105px,1fr) 14px auto auto;
}
.baking-game.is-game-viewport .baking-stir-pad {
  min-height: 105px;
  height: 100%;
  padding: 6px;
  border-width: 3px;
  border-radius: 18px;
}
.baking-game.is-game-viewport .baking-stir-pad__bowl {
  width: 105px;
  height: 70px;
  border-width: 5px;
  border-top-width: 8px;
}
.baking-game.is-game-viewport .baking-stir-pad__bowl b { height: 30px; }
.baking-game.is-game-viewport .baking-stir-pad__bowl i { top: -38px; font-size: 3.3rem; }
.baking-game.is-game-viewport .baking-stir-pad > strong { font-size: 1rem; }
.baking-game.is-game-viewport .baking-stir-pad > small { font-size: .72rem; }
.baking-game.is-game-viewport .baking-action__cook {
  grid-template-rows: minmax(72px,.8fr) auto auto auto auto;
}
.baking-game.is-game-viewport .baking-cook-visual {
  min-height: 72px;
  height: 100%;
  border-width: 3px;
  border-radius: 17px;
}
.baking-game.is-game-viewport .baking-cook-visual__oven { transform: scale(.52); }
.baking-game.is-game-viewport .baking-cook-visual__pot { margin-top: 7px; transform: scale(.52); }
.baking-game.is-game-viewport .baking-action__instruction { font-size: .82rem; line-height: 1.2; }
.baking-game.is-game-viewport .baking-cook-options { gap: 5px; }
.baking-game.is-game-viewport .baking-cook-options button {
  min-height: 48px;
  padding: 4px;
  border-width: 2px;
  border-radius: 13px;
}
.baking-game.is-game-viewport .baking-cook-options button strong { font-size: .82rem; }
.baking-game.is-game-viewport .baking-cook-options button small { font-size: .68rem; }
.baking-game.is-game-viewport .baking-action__cook-button { min-height: 44px; }
.baking-game.is-game-viewport .baking-action__feedback {
  display: none;
}

@keyframes baking-viewport-hint {
  from { transform: translateY(0); }
  to { transform: translateY(-2px); }
}

/* Puslespill og bildelotto */
.jigsaw-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 5px; }
.jigsaw-game.is-game-viewport .jigsaw-game__head { padding: 0 4px; align-items: center; }
.jigsaw-game.is-game-viewport .jigsaw-gallery { display: flex; gap: 5px; margin: 0; overflow: hidden; }
.jigsaw-game.is-game-viewport .jigsaw-gallery__choice { flex: 1 1 0; min-width: 0; padding: 3px; }
.jigsaw-game.is-game-viewport .jigsaw-gallery__choice img { height: 38px; }
.jigsaw-game.is-game-viewport .jigsaw-gallery__choice span { display: none; }
.jigsaw-game.is-game-viewport .jigsaw-game__toolbar { margin: 0; padding: 5px 8px; }
.jigsaw-game.is-game-viewport .jigsaw-game__play { min-height: 0; height: 100%; gap: 7px; overflow: hidden; }
.jigsaw-game.is-game-viewport .jigsaw-game__board-wrap,
.jigsaw-game.is-game-viewport .jigsaw-tray-wrap { min-height: 0; height: 100%; max-height: 100%; overflow: hidden; box-sizing: border-box; }
.jigsaw-game.is-game-viewport .jigsaw-game__board-wrap {
  display: flex;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.jigsaw-game.is-game-viewport .jigsaw-game__picture-label,
.jigsaw-game.is-game-viewport .jigsaw-tray-wrap > strong,
.jigsaw-game.is-game-viewport .jigsaw-tray__title { display: none; }
.jigsaw-game.is-game-viewport .jigsaw-board {
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  flex: 0 1 auto;
}
.jigsaw-game.is-game-viewport .jigsaw-tray {
  grid-template-columns: repeat(var(--puzzle-columns), minmax(0, 1fr));
  grid-template-rows: repeat(var(--puzzle-rows), minmax(0, 1fr));
  gap: 5px;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  align-content: stretch;
  overflow: hidden;
}
.jigsaw-game.is-game-viewport .jigsaw-piece { height: 100%; }
.jigsaw-game.is-game-viewport .jigsaw-game__feedback { min-height: 40px; margin: 0; padding: 6px 10px; }

.memory-section.is-game-viewport { grid-template-rows: minmax(0, 1fr); padding-top: calc(var(--gv-bar) + 7px) !important; }
.memory-section.is-game-viewport > .container { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 6px; width: 100%; max-width: none; height: 100%; padding: 0; overflow: hidden; }
.memory-section.is-game-viewport .memory-game { display: contents; }
.memory-section.is-game-viewport .memory-game__head { margin: 0; align-items: center; }
.memory-section.is-game-viewport .memory-game__toolbar { margin: 0; padding: 5px 8px; }
.memory-section.is-game-viewport .memory-board { align-self: stretch; width: auto; max-width: min(100%, 980px); height: 100%; max-height: 100%; margin: 0 auto; gap: 5px; }
.memory-section.is-game-viewport .memory-card { min-height: 0; }
.memory-section.is-game-viewport .memory-game__footer { min-height: 42px; margin: 0; padding: 5px 9px; }

/* Bru, fotball og jordet */
.bridge-game.is-game-viewport { grid-template-rows: auto auto minmax(0, 1fr); gap: 6px; }
.bridge-game.is-game-viewport .bridge-game__header,
.penalty-game.is-game-viewport .penalty-game__header,
.tractor-game.is-game-viewport .tractor-game__header,
.feeding-game.is-game-viewport .feeding-game__header {
  position: absolute;
  z-index: 201;
  top: calc(6px + env(safe-area-inset-top, 0px));
  right: 104px;
  width: auto;
  padding: 0;
  align-items: center;
  justify-content: end;
}
.feeding-game.is-game-viewport .feeding-game__header > div { display: none; }
.bridge-game.is-game-viewport .bridge-game__route,
.penalty-game.is-game-viewport .penalty-game__path,
.tractor-game.is-game-viewport .tractor-game__missions,
.feeding-game.is-game-viewport .feeding-game__levels { gap: 5px; margin: 0; padding: 0; }
.bridge-game.is-game-viewport .bridge-game__route li,
.penalty-game.is-game-viewport .penalty-game__path li,
.tractor-game.is-game-viewport .tractor-game__missions li,
.feeding-game.is-game-viewport .feeding-game__levels li { min-height: 42px; padding: 4px 7px; border-radius: 12px; }
.bridge-game.is-game-viewport .bridge-game__play { min-height: 0; height: 100%; padding: 0; gap: 8px; overflow: hidden; }
.bridge-game.is-game-viewport .bridge-game__stage { width: 100%; min-height: 0; height: 100%; aspect-ratio: auto; }
.bridge-game.is-game-viewport .bridge-game__panel { gap: 7px; padding: 10px; overflow: hidden; }
.bridge-game.is-game-viewport .bridge-game__mission-icon { width: 45px; border-width: 2px; border-radius: 12px; }
.bridge-game.is-game-viewport .bridge-game__clue { padding: 7px 9px; font-size: .84rem; }
.bridge-game.is-game-viewport .bridge-game__options { gap: 6px; }
.bridge-game.is-game-viewport .bridge-game__options button { min-height: 48px; padding: 4px 7px; border-width: 2px; }
.bridge-game.is-game-viewport .bridge-game__feedback { min-height: 2.2em; font-size: .84rem; }

.penalty-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto auto auto; gap: 5px; }
.penalty-game.is-game-viewport .penalty-game__lesson { padding: 6px 10px; }
.penalty-game.is-game-viewport .penalty-game__lesson p { display: none; }
.penalty-game.is-game-viewport .penalty-game__stage { width: 100%; min-height: 0; height: 100%; margin: 0; aspect-ratio: auto; }
.penalty-game.is-game-viewport .penalty-game__coach { top: 2%; min-height: 32px; padding: 5px 11px; border-width: 2px; font-size: .78rem; }
.penalty-game.is-game-viewport .penalty-game__result { padding: 9px 15px; border-width: 3px; border-radius: 17px; }
.penalty-game.is-game-viewport .penalty-game__controls { margin: 0; gap: 5px; }
.penalty-game.is-game-viewport .penalty-game__controls button { min-height: 48px; padding: 4px; }
.penalty-game.is-game-viewport .penalty-game__controls small { display: none; }
.penalty-game.is-game-viewport .penalty-game__power { padding: 7px 9px; }
.penalty-game.is-game-viewport .penalty-game__power-copy p,
.penalty-game.is-game-viewport .penalty-game__power-help { display: none; }
.penalty-game.is-game-viewport .penalty-game__status { min-height: 42px; padding: 5px 9px; }
.penalty-game.is-game-viewport .penalty-game__progress { gap: 2px; }
.penalty-game.is-game-viewport .penalty-game__progress > strong { font-size: .66rem; }

.tractor-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto auto; gap: 5px; }
.tractor-game.is-game-viewport .tractor-game__dashboard,
.feeding-game.is-game-viewport .feeding-game__dashboard { margin: 0; padding: 6px 10px; }
.tractor-game.is-game-viewport .tractor-runner { min-height: 0; height: 100%; margin: 0; }
.tractor-game.is-game-viewport .tractor-runner__controls { margin: 0; gap: 6px; }
.tractor-game.is-game-viewport .tractor-runner__controls button { min-height: 50px; padding: 4px; }
.tractor-game.is-game-viewport .tractor-game__status { min-height: 42px; margin: 0; padding: 5px 9px; }

.feeding-game.is-game-viewport { grid-template-rows: auto auto minmax(0, 1fr) auto auto auto auto; gap: 5px; }
.feeding-game.is-game-viewport .feeding-game__sound { width: auto !important; min-width: 108px; max-width: 132px; align-self: center; padding-inline: 10px; }
.feeding-game.is-game-viewport .feeding-game__stage { width: 100%; min-height: 0; height: 100%; margin: 0; aspect-ratio: auto; overflow: hidden; }
.feeding-game.is-game-viewport .feeding-game__prompt { min-height: 38px; margin: 0; padding: 5px 9px; }
.feeding-game.is-game-viewport .feeding-game__choices-head { min-height: 38px; margin: 0; padding: 5px 9px; }
.feeding-game.is-game-viewport .feeding-game__choices-head > span { font-size: .95rem; }
.feeding-game.is-game-viewport .feeding-game__choices-head strong { font-size: .82rem; }
.feeding-game.is-game-viewport .feeding-game__choices-head small { font-size: .65rem; }
.feeding-game.is-game-viewport .feeding-game__prompt-icon { padding-top: 4px; font-size: 1.15rem; }
.feeding-game.is-game-viewport .feeding-game__prompt p { margin-top: 3px; font-size: .76rem; line-height: 1.18; }
.feeding-game.is-game-viewport .feeding-game__guide > div { min-height: 36px; padding: 3px 6px; }
.feeding-game.is-game-viewport .feeding-game__guide > div > b { width: 24px; height: 24px; font-size: .7rem; }
.feeding-game.is-game-viewport .feeding-game__guide > div small { font-size: .5rem; }
.feeding-game.is-game-viewport .feeding-game__guide > div strong { font-size: .72rem; }
.feeding-game.is-game-viewport .feeding-game__foods { min-height: 0; gap: 5px; }
.feeding-game.is-game-viewport .feeding-game__foods[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feeding-game.is-game-viewport .feeding-game__foods button { min-height: 60px; padding: 5px; border-width: 2px; }
.feeding-game.is-game-viewport .feeding-game__food-image { width: 52px; }
.feeding-game.is-game-viewport .feeding-game__food-copy small { display: none; }
.feeding-game.is-game-viewport .feeding-game__food-copy em {
  display: inline-block;
  margin-top: 3px;
  padding: 2px 5px;
  font-size: .56rem;
}
.feeding-game.is-game-viewport .feeding-game__food-action { min-height: 24px; margin-top: 3px; padding: 2px 6px; font-size: 0; }
.feeding-game.is-game-viewport .feeding-game__food-action::before { content: "Velg"; font-size: .6rem; }
.feeding-game.is-game-viewport[data-feeding-mode="findFood"] .feeding-game__food-action::before { content: "Trykk / dra"; }
.feeding-game.is-game-viewport .feeding-game__food-image b { right: 2px; bottom: 2px; min-width: 25px; min-height: 25px; padding: 2px 4px; font-size: .62rem; }
.feeding-game.is-game-viewport .feeding-game__drag-grip { display: inline-flex; min-height: 25px; margin-top: 3px; padding: 2px 6px; font-size: .58rem; }
.feeding-game.is-game-viewport .feeding-game__drag-grip { display: inline-flex; }
.feeding-game.is-game-viewport .feeding-game__foods button strong { font-size: .9rem; }
.feeding-game.is-game-viewport .feeding-game__status { min-height: 42px; margin: 0; padding: 5px 9px; }
.feeding-game.is-game-viewport .feeding-game__stage-result { bottom: 3%; max-width: 620px; padding: 7px 10px; }
.feeding-game.is-game-viewport .feeding-game__stage-result .button { min-width: 112px; }
.feeding-game.is-game-viewport .feeding-game__start {
  width: min(90%, 500px);
  max-height: calc(100% - 16px);
  padding: 16px 18px;
  overflow: auto;
}
.feeding-game.is-game-viewport .feeding-game__start > span { font-size: 1.6rem; }
.feeding-game.is-game-viewport .feeding-game__start > strong { font-size: 1.15rem; }
.feeding-game.is-game-viewport .feeding-game__start p { margin: 3px 0 7px; font-size: .76rem; line-height: 1.22; }
.feeding-game.is-game-viewport .feeding-game__start .button { min-height: 40px; padding-block: 5px; }
.feeding-game.is-game-viewport .feeding-game__start .button {
  width: 100%;
  min-height: 48px;
  margin-top: 2px;
  font-size: .92rem;
}
.feeding-game.is-game-viewport[data-feeding-mode="findFood"] .feeding-game__foods button:not(:disabled) {
  box-shadow: 0 5px 0 rgba(18,59,83,.12);
}
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__stage {
  box-shadow: 0 0 0 4px rgba(255,207,73,.2), 0 12px 28px rgba(18,59,83,.18);
}
.feeding-game.is-game-viewport[data-feeding-mode="free"] .feeding-game__drag-grip { display: inline-flex; }

/* Havna og fjæra */
.fishing-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr); gap: 5px; }
.fishing-game.is-game-viewport .fishing-game__head { margin: 0; padding: 0 4px; align-items: center; }
.fishing-game.is-game-viewport .fishing-game__steps { gap: 4px; margin: 0; }
.fishing-game.is-game-viewport .fishing-game__steps span { min-height: 36px; padding: 3px 6px; }
.fishing-game.is-game-viewport .fishing-game__lesson { gap: 5px; margin: 0; padding: 5px; }
.fishing-game.is-game-viewport .fishing-game__clue { min-height: 54px; padding: 5px 8px; }
.fishing-game.is-game-viewport .fishing-game__clue-icon { width: 40px; height: 40px; }
.fishing-game.is-game-viewport .fishing-game__clue p { display: none; }
.fishing-game.is-game-viewport .fishing-game__depths { gap: 4px; }
.fishing-game.is-game-viewport .fishing-game__depths button { min-height: 48px; padding: 4px; }
.fishing-game.is-game-viewport .fishing-game__depths button span { display: inline; margin: 0 4px 0 0; font-size: 1rem; }
.fishing-game.is-game-viewport .fishing-game__play { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .65fr); gap: 7px; min-height: 0; height: 100%; overflow: hidden; }
.fishing-game.is-game-viewport .fishing-game__stage { width: 100%; min-height: 0; height: 100%; margin: 0; aspect-ratio: auto; }
.fishing-game.is-game-viewport .fishing-game__reel { position: absolute; z-index: 40; right: 9px; bottom: 9px; width: min(46%, 420px); margin: 0; padding: 6px; }
.fishing-game.is-game-viewport .fishing-game__panel { min-height: 0; gap: 5px; padding: 7px; overflow: hidden; }
.fishing-game.is-game-viewport .fishing-game__feedback { min-height: 40px; padding: 5px 7px; }
.fishing-game.is-game-viewport .fishing-game__catch-wrap { margin: 0; }
.fishing-game.is-game-viewport .fishing-game__catch { gap: 4px; }
.fishing-game.is-game-viewport .fishing-game__controls { gap: 4px; }
.fishing-game.is-game-viewport .fishing-game__controls button { min-height: 44px; padding: 4px 6px; }

.rosary-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 6px; }
.rosary-game.is-game-viewport .rosary-game__head { padding: 0 4px; align-items: center; }
.rosary-game.is-game-viewport .rosary-customizer { display: none !important; }
.rosary-game.is-game-viewport .rosary-game__toolbar { margin: 0; padding: 5px 8px; }
.rosary-game.is-game-viewport .rosary-game__workspace { min-height: 0; height: 100%; margin: 0; gap: 7px; overflow: hidden; }
.rosary-game.is-game-viewport .rosary-game__stage { min-height: 0; height: 100%; }
.rosary-game.is-game-viewport .rosary-toolbox { min-height: 0; height: 100%; padding: 7px; overflow: hidden; }
.rosary-game.is-game-viewport .rosary-game__feedback { min-height: 42px; margin: 0; padding: 6px 9px; }

.shore-game.is-game-viewport { grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 6px; }
.shore-game.is-game-viewport .shore-game__head { padding: 0 4px; align-items: center; }
.shore-game.is-game-viewport .shore-game__toolbar { margin: 0; padding: 5px 8px; }
.shore-game.is-game-viewport .shore-game__targets-wrap > strong { display: none; }
.shore-game.is-game-viewport .shore-game__target { min-height: 42px; padding: 3px 6px; }
.shore-game.is-game-viewport .shore-game__stage { min-height: 0; height: 100%; margin: 0; }
.shore-game.is-game-viewport .shore-game__footer { min-height: 44px; margin: 0; padding: 5px 9px; }

.crab-game.is-game-viewport { grid-template-rows: auto minmax(0, 1fr) auto; gap: 6px; }
.crab-game.is-game-viewport .crab-game__head { padding: 0 4px; }
.crab-game.is-game-viewport .crab-game__play { min-height: 0; height: 100%; margin: 0; gap: 7px; overflow: hidden; }
.crab-game.is-game-viewport .crab-game__sea { min-height: 0; height: 100%; }
.crab-game.is-game-viewport .crab-game__bucket { min-height: 0; padding: 8px; }
.crab-game.is-game-viewport .crab-game__pail { min-height: 100px; height: 100%; }
.crab-game.is-game-viewport .crab-game__footer { min-height: 44px; margin: 0; padding: 4px 8px; }
.crab-game.is-game-viewport .crab-game__sunbeam { display: none; }

/* Fyrtårnet: værsteg, scene og ett handlingsfelt i samme blikkfelt. */
.lighthouse-game.is-game-viewport { grid-template-rows: auto auto auto; align-content: start; gap: 6px; }
.lighthouse-game.is-game-viewport .lighthouse-game__header,
.lighthouse-game.is-game-viewport .lighthouse-game__lesson { display: none !important; }
.lighthouse-game.is-game-viewport .lighthouse-game__visits { margin: 0; }
.lighthouse-game.is-game-viewport .lighthouse-game__stage { width: min(100%, 88.889vh); min-height: 0; height: auto; max-height: 50vh; align-self: start; justify-self: center; aspect-ratio: 16 / 9; border-width: 5px; border-radius: 20px; }
.lighthouse-game.is-game-viewport .lighthouse-game__start,
.lighthouse-game.is-game-viewport .lighthouse-game__play { margin: 0; }
.lighthouse-game.is-game-viewport .lighthouse-game__play { padding: 7px; }
.lighthouse-game.is-game-viewport .lighthouse-game__status { min-height: 38px; padding: 5px 9px; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe { grid-template-columns: minmax(0,1fr) auto; gap: 5px; margin-top: 5px; padding: 5px 7px; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe > button { grid-column: 1 / -1; min-height: 38px; padding: 4px 7px; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe > div:first-child > span { font-size: 1.2rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe strong { font-size: .84rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe small { font-size: .68rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__observe-pips span { width: 29px; height: 29px; }
.lighthouse-game.is-game-viewport .lighthouse-game__question { min-height: 48px; margin-top: 5px; padding: 6px 9px; }
.lighthouse-game.is-game-viewport .lighthouse-game__prompt-icon { width: 38px; height: 38px; flex-basis: 38px; font-size: 1.2rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__question h4,
.lighthouse-game.is-game-viewport .lighthouse-game__light-control h4 { font-size: clamp(.95rem, 2vw, 1.22rem); }
.lighthouse-game.is-game-viewport .lighthouse-game__question p,
.lighthouse-game.is-game-viewport .lighthouse-game__light-control p { font-size: .76rem; line-height: 1.2; }
.lighthouse-game.is-game-viewport .lighthouse-game__options { gap: 5px; margin-top: 5px; }
.lighthouse-game.is-game-viewport .lighthouse-game__options button { min-height: 58px; padding: 5px 7px; border-width: 2px; }
.lighthouse-game.is-game-viewport .lighthouse-game__options button > span { font-size: 1.25rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__feedback { min-height: 38px; margin-top: 5px; padding: 6px 9px; font-size: .78rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__next { min-height: 42px; margin-top: 5px; }
.lighthouse-game.is-game-viewport .lighthouse-game__light-control { margin-top: 5px; padding: 8px; }
.lighthouse-game.is-game-viewport .lighthouse-game__light-control label { margin-top: 6px; font-size: .78rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__light-control input[type="range"] { min-height: 38px; }
.lighthouse-game.is-game-viewport .lighthouse-game__nudges { gap: 5px !important; margin-top: 4px; }
.lighthouse-game.is-game-viewport .lighthouse-game__nudges button { min-height: 42px; padding: 4px 7px; font-size: .78rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__signals { min-height: 34px; margin-top: 4px; padding: 3px 7px; }
.lighthouse-game.is-game-viewport .lighthouse-game__signals span { width: 24px; height: 24px; border-width: 2px; }
.lighthouse-game.is-game-viewport .lighthouse-game__light-button { min-height: 44px; margin-top: 5px; }
.lighthouse-game.is-game-viewport .lighthouse-game__guide img { width: 54px; height: 54px; flex-basis: 54px; }
.lighthouse-game.is-game-viewport .lighthouse-game__guide p { font-size: .76rem; }
.lighthouse-game.is-game-viewport .lighthouse-game__how li { min-height: 46px; padding: 3px; }
.lighthouse-game.is-game-viewport .lighthouse-game__finish-weather img { aspect-ratio: 16 / 10; }
.lighthouse-game.is-game-viewport .lighthouse-game__journal { margin-top: 7px; }

/* Ferdigkortet tar over spillflaten uten at barnet må lete nedover. */
.game-viewport.is-game-viewport > .game-finish-card:not([hidden]),
.game-viewport.is-game-viewport .memory-game__finish:not([hidden]) {
  position: absolute;
  inset: calc(var(--gv-bar) + 7px) 9px max(8px, env(safe-area-inset-bottom, 0px));
  z-index: 150;
  display: grid;
  align-content: center;
  max-width: 1000px;
  max-height: calc(var(--maram-game-height, 100dvh) - var(--gv-bar) - 15px);
  margin: auto !important;
  padding: clamp(12px, 2vw, 24px) !important;
  overflow: hidden;
  border-radius: 22px;
  background: #fff9e7;
  box-shadow: 0 16px 50px rgba(18,59,83,.28);
}
.game-viewport.is-game-viewport .game-finish-card__stars { margin: 0; font-size: 1.2rem; }
.game-viewport.is-game-viewport .game-finish-card__lead { gap: 8px; }
.game-viewport.is-game-viewport .game-finish-card__lead > span { font-size: 1.8rem; }
.game-viewport.is-game-viewport .game-finish-card__lead p { margin: 3px 0 0; }
.game-viewport.is-game-viewport .game-finish-card__actions { gap: 6px; margin-top: 8px; }
.game-viewport.is-game-viewport .game-finish-card__actions .button { min-height: 44px; padding: 6px 10px; }
.game-viewport.is-game-viewport .baking-game__finish-image {
  width: min(100%, 720px);
  margin-top: 9px;
}

@media (max-width: 760px) {
  .game-viewport__open { width: calc(100% - 32px); margin: 10px 16px 2px; }
  .game-viewport.is-game-viewport { --gv-bar: calc(54px + env(safe-area-inset-top, 0px)); padding-inline: 7px !important; }
  .game-viewport__bar { padding-inline: 9px; }
  .game-viewport__bar button { min-width: 74px; padding-inline: 10px; }

  .baking-game.is-game-viewport { grid-template-rows: auto auto auto auto minmax(0, 1fr) auto; gap: 5px; }
  .baking-game.is-game-viewport .baking-game__head > div:first-child,
  .jigsaw-game.is-game-viewport .jigsaw-game__head > div:first-child,
  .fishing-game.is-game-viewport .fishing-game__head > div:first-child,
  .rosary-game.is-game-viewport .rosary-game__head > div:first-child { display: none; }
  .baking-game.is-game-viewport .baking-game__head,
  .jigsaw-game.is-game-viewport .jigsaw-game__head,
  .fishing-game.is-game-viewport .fishing-game__head,
  .rosary-game.is-game-viewport .rosary-game__head { justify-content: end; }
  .baking-game.is-game-viewport .baking-game__head { display: block; min-height: 48px; }
  .baking-game.is-game-viewport .baking-game__score {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    grid-template-columns: repeat(2,minmax(0,1fr));
    border-radius: 15px;
  }
  .baking-game.is-game-viewport .baking-game__score :where(strong,span) { padding: 5px 4px; font-size: .72rem; }
  .baking-game.is-game-viewport .baking-game__score span { border-top: 0; border-left: 1px solid rgba(255,255,255,.22); }
  .baking-game.is-game-viewport .baking-recipes button { height: 56px; min-height: 56px; }
  .baking-game.is-game-viewport .baking-game__toolbar {
    display: block;
    min-height: 48px;
    padding: 3px 5px;
  }
  .baking-game.is-game-viewport .baking-game__toolbar > div:first-child { display: none; }
  .baking-game.is-game-viewport .baking-game__toolbar-actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 5px;
  }
  .baking-game.is-game-viewport .baking-game__toolbar-actions .button { width: 100%; min-height: 42px; }
  .baking-game.is-game-viewport .baking-game__workspace {
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: minmax(138px,.38fr) minmax(0,1fr);
    gap: 5px;
  }
  .baking-game.is-game-viewport .baking-game__stage > img { object-position: 50% 42%; }
  .baking-game.is-game-viewport .baking-game__choices {
    display: grid;
    grid-template-columns: minmax(0,1.55fr) minmax(112px,.85fr);
    grid-template-rows: minmax(0,1fr) auto;
    gap: 5px;
    padding: 5px;
  }
  .baking-game.is-game-viewport .baking-game__choices > section:first-child { grid-column: 1; grid-row: 1 / 3; }
  .baking-game.is-game-viewport .baking-game__choices > section:nth-child(2) { grid-column: 2; grid-row: 1; }
  .baking-game.is-game-viewport .baking-game__add { grid-column: 2; grid-row: 2; min-height: 48px; height: 48px; padding: 3px; font-size: .72rem; }
  .baking-game.is-game-viewport .baking-ingredient-grid { grid-template-columns: repeat(2,minmax(0,1fr)); height: 100%; }
  .baking-game.is-game-viewport .baking-amount-grid { grid-template-columns: minmax(0,1fr); height: 100%; }
  .baking-game.is-game-viewport :where(.baking-ingredient-grid,.baking-amount-grid) button { min-height: 0; height: 100%; }
  .baking-game.is-game-viewport .baking-ingredient-grid button strong { font-size: .68rem; white-space: normal; }
  .baking-game.is-game-viewport .baking-ingredient-grid button span { font-size: 1.3rem; }
  .baking-game.is-game-viewport .baking-action { grid-column: 1 / -1 !important; grid-row: 1 / -1 !important; }
  .baking-game.is-game-viewport .baking-game__task { top: 6px; left: 6px; padding: 5px 7px; }
  .baking-game.is-game-viewport .baking-counter { right: 4px; bottom: 4px; left: auto; width: 150px; transform: scale(.62); transform-origin: right bottom; }
  .baking-game.is-game-viewport .baking-game__toolbar-actions .button { min-width: 44px; padding-inline: 6px; font-size: .72rem; }

  .jigsaw-game.is-game-viewport .jigsaw-game__play { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(95px, .36fr); }
  .jigsaw-game.is-game-viewport .jigsaw-game__toolbar { gap: 4px; }
  .jigsaw-game.is-game-viewport .jigsaw-game__sizes > span { display: none; }
  .jigsaw-game.is-game-viewport .jigsaw-game__actions .button { min-width: 44px; padding-inline: 6px; font-size: .7rem; }

  .memory-section.is-game-viewport .memory-game__head > div:first-child { display: none; }
  .memory-section.is-game-viewport .memory-game__head { justify-content: end; }
  .memory-section.is-game-viewport .memory-game__toolbar { gap: 4px; }
  .memory-section.is-game-viewport .memory-game__sizes > span { display: none; }

  .bridge-game.is-game-viewport .bridge-game__header > div,
  .penalty-game.is-game-viewport .penalty-game__header > div,
  .tractor-game.is-game-viewport .tractor-game__header > div,
  .feeding-game.is-game-viewport .feeding-game__header > div { display: none; }
  .bridge-game.is-game-viewport .bridge-game__header,
  .penalty-game.is-game-viewport .penalty-game__header,
  .tractor-game.is-game-viewport .tractor-game__header,
  .feeding-game.is-game-viewport .feeding-game__header { justify-content: end; }
  .feeding-game.is-game-viewport .feeding-game__header { right: 92px; }
  .feeding-game.is-game-viewport .feeding-game__sound { width: 44px !important; min-width: 44px; min-height: 40px; margin-left: auto; padding: 0; font-size: 0; }
  .feeding-game.is-game-viewport .feeding-game__sound::before { content: "🔊"; font-size: .95rem; }
  .feeding-game.is-game-viewport .feeding-game__sound[aria-pressed="false"]::before { content: "🔇"; }
  .bridge-game.is-game-viewport .bridge-game__route strong,
  .penalty-game.is-game-viewport .penalty-game__path strong,
  .tractor-game.is-game-viewport .tractor-game__missions li > div,
  .feeding-game.is-game-viewport .feeding-game__levels li > div { display: none; }
  .bridge-game.is-game-viewport .bridge-game__route li,
  .penalty-game.is-game-viewport .penalty-game__path li,
  .tractor-game.is-game-viewport .tractor-game__missions li,
  .feeding-game.is-game-viewport .feeding-game__levels li { display: grid; place-items: center; min-height: 38px; padding: 2px; }

  .bridge-game.is-game-viewport .bridge-game__play { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  .bridge-game.is-game-viewport .bridge-game__panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; max-height: 190px; }
  .bridge-game.is-game-viewport .bridge-game__mission-icon,
  .bridge-game.is-game-viewport .bridge-game__clue { display: none; }
  .bridge-game.is-game-viewport .bridge-game__options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bridge-game.is-game-viewport .bridge-game__options button { grid-template-columns: auto minmax(0, 1fr); }
  .bridge-game.is-game-viewport .bridge-game__options button small { display: none; }

  .penalty-game.is-game-viewport { grid-template-rows: auto auto minmax(0, 1fr) auto auto auto; }
  .penalty-game.is-game-viewport .penalty-game__lesson { display: none; }
  .penalty-game.is-game-viewport .penalty-game__controls button > span { font-size: 1.25rem; }
  .penalty-game.is-game-viewport .penalty-game__power-copy { display: none; }
  .penalty-game.is-game-viewport .penalty-game__power-action { grid-template-columns: minmax(0,1fr) auto; }

  .tractor-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto auto; }
  .tractor-game.is-game-viewport .tractor-game__dashboard > div:first-child { display: none; }
  .tractor-game.is-game-viewport .tractor-game__dashboard { justify-content: center; }
  .tractor-game.is-game-viewport .tractor-game__load { text-align: center; }
  .tractor-game.is-game-viewport .tractor-game__load > div { justify-content: center; }

  .feeding-game.is-game-viewport { grid-template-rows: auto minmax(0, 1fr) auto auto auto auto; }
  .feeding-game.is-game-viewport .feeding-game__dashboard { display: none !important; }
  .feeding-game.is-game-viewport .feeding-game__turn { text-align: left; }
  .feeding-game.is-game-viewport .feeding-game__turn strong { font-size: .95rem; }
  .feeding-game.is-game-viewport .feeding-game__foods { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feeding-game.is-game-viewport .feeding-game__foods button { display: grid; grid-template-columns: minmax(0,1fr); justify-items: center; padding: 4px 2px; text-align: center; }
  .feeding-game.is-game-viewport .feeding-game__food-image { width: 64px; }
  .feeding-game.is-game-viewport .feeding-game__food-copy { min-width: 0; text-align: center; }
  .feeding-game.is-game-viewport .feeding-game__food-copy strong { overflow: hidden; font-size: .72rem; line-height: 1.05; text-overflow: ellipsis; }
  .feeding-game.is-game-viewport .feeding-game__choices-head small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .feeding-game.is-game-viewport .feeding-game__status {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
  }
  .feeding-game.is-game-viewport .feeding-game__status p { font-size: .72rem; }
  .feeding-game.is-game-viewport .feeding-game__status-actions { width: auto; flex-wrap: nowrap; }
  .feeding-game.is-game-viewport .feeding-game__status-actions .button { min-width: 0; min-height: 38px; padding: 4px 7px; font-size: .65rem; }
  .feeding-game.is-game-viewport > .feeding-game__finish:not([hidden]) { gap: 4px; padding: 9px !important; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__stars,
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__lead > span,
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__lead small { display: none; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__lead h4 { font-size: 1.42rem; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__lead p { font-size: .78rem; line-height: 1.28; }
  .feeding-game.is-game-viewport .feeding-game__finish-body { display: grid; gap: 6px; }
  .feeding-game.is-game-viewport .feeding-game__finish-gallery { width: 100%; height: 210px; grid-template-rows: 1.35fr 1fr; gap: 5px; }
  .feeding-game.is-game-viewport .feeding-game__finish-gallery img { min-height: 0; border-width: 2px; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__fact { margin: 0; font-size: .76rem; line-height: 1.28; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin-top: 6px; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__actions .button { min-width: 0; min-height: 42px; padding-inline: 5px; font-size: .69rem; }
  .feeding-game.is-game-viewport .feeding-game__finish .game-finish-card__actions .button:last-child { grid-column: 1 / -1; }
  .feeding-game.is-game-viewport .feeding-game__levels li {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
  }
  .feeding-game.is-game-viewport .feeding-game__levels li > div { display: block; min-width: 0; }
  .feeding-game.is-game-viewport .feeding-game__levels li strong { display: block; overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
  .feeding-game.is-game-viewport .feeding-game__levels li small { display: none; }
  .feeding-game.is-game-viewport .feeding-game__levels li > span { width: 26px; height: 26px; }

  .fishing-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr); }
  .fishing-game.is-game-viewport .fishing-game__lesson { grid-template-columns: minmax(0, 1fr); }
  .fishing-game.is-game-viewport .fishing-game__clue { display: grid; min-height: 48px; }
  .fishing-game.is-game-viewport .fishing-game__clue p { display: block; overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
  .fishing-game.is-game-viewport .fishing-game__depths { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fishing-game.is-game-viewport .fishing-game__play { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  .fishing-game.is-game-viewport .fishing-game__panel { max-height: 150px; }
  .fishing-game.is-game-viewport .fishing-game__catch-wrap { display: none; }
  .fishing-game.is-game-viewport .fishing-game__controls { display: grid; grid-template-columns: 1fr 1fr; }
  .fishing-game.is-game-viewport .fishing-game__mode { display: contents; }
  .fishing-game.is-game-viewport .fishing-game__reel { right: 6px; bottom: 6px; width: calc(100% - 12px); }

  .rosary-game.is-game-viewport .rosary-game__head > div:first-child { display: none; }
  .rosary-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
  .rosary-game.is-game-viewport .rosary-game__toolbar { gap: 5px; }
  .rosary-game.is-game-viewport .rosary-game__toolbar-main { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 7px; width: 100%; }
  .rosary-game.is-game-viewport .rosary-game__toolbar-main small { grid-column: 1 / -1; font-size: .69rem; }
  .rosary-game.is-game-viewport .rosary-game__toolbar-actions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; width: 100%; }
  .rosary-game.is-game-viewport .rosary-game__toolbar-actions .button { min-width: 0; min-height: 40px; padding: 4px 3px; overflow: hidden; font-size: .67rem; text-overflow: ellipsis; }
  .rosary-game.is-game-viewport .rosary-game__workspace { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr) 102px; }
  .rosary-game.is-game-viewport .rosary-toolbox { display: block; height: 102px; padding: 5px; }
  .rosary-game.is-game-viewport .rosary-toolbox__task { display: none; }
  .rosary-game.is-game-viewport .rosary-token-grid { grid-template-columns: repeat(5,minmax(0,1fr)); grid-template-rows: minmax(0,1fr); gap: 4px; height: 100%; margin: 0; }
  .rosary-game.is-game-viewport .rosary-token-grid button,
  .rosary-game.is-game-viewport .rosary-token-grid button:last-child { grid-column: auto; min-height: 0; height: 100%; padding: 3px 2px; }
  .rosary-game.is-game-viewport .rosary-token-grid button strong { font-size: .6rem; }
  .rosary-game.is-game-viewport :is(.rosary-token__cross,.rosary-token__medal) { width: 40px; height: 51px; }
  .rosary-game.is-game-viewport :is(.rosary-token__small,.rosary-token__large) { transform: scale(.8); }
  .rosary-game.is-game-viewport .rosary-token__decade i { width: 8px; height: 8px; border-width: 1px; }
  .rosary-game.is-game-viewport .rosary-toolbox__instruction { display: none; }

  .shore-game.is-game-viewport .shore-game__head > div:first-child,
  .crab-game.is-game-viewport .crab-game__head { display: none; }
  .shore-game.is-game-viewport { grid-template-rows: auto auto minmax(0, 1fr) auto; }
  .shore-game.is-game-viewport .shore-game__toolbar { gap: 4px; }
  .shore-game.is-game-viewport .shore-game__targets { gap: 3px; }
  .shore-game.is-game-viewport .shore-game__target span { display: none; }
  .crab-game.is-game-viewport { grid-template-rows: minmax(0, 1fr) auto; }
  .crab-game.is-game-viewport .crab-game__play { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) 96px; }
  .crab-game.is-game-viewport .crab-game__bucket { position: static; z-index: auto; display: grid; grid-template-columns: auto 90px minmax(0, 1fr); gap: 8px; width: auto; height: 96px; padding: 4px 8px; align-items: center; border-radius: 17px; }
  .crab-game.is-game-viewport .crab-game__bucket p { display: -webkit-box; max-height: 3.6em; margin: 0; overflow: hidden; font-size: .76rem; line-height: 1.2; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .crab-game.is-game-viewport .crab-game__bucket-label { white-space: nowrap; }
  .crab-game.is-game-viewport .crab-game__pail { grid-column: 2; grid-row: 1; width: 90px; max-width: 90px; min-height: 0; height: 88px; margin: 0; }
  .crab-game.is-game-viewport .crab-game__collection { width: 66%; }
  .crab-game.is-game-viewport .crab-game__sunbeam { display: none; }

  .lighthouse-game.is-game-viewport .lighthouse-game__guide p { display: none; }
  .lighthouse-game.is-game-viewport .lighthouse-game__start { padding: 7px 9px; }
  .lighthouse-game.is-game-viewport .lighthouse-game__visits li { min-height: 40px; padding: 4px; }
  .lighthouse-game.is-game-viewport .lighthouse-game__options { grid-template-columns: 1fr; }
  .lighthouse-game.is-game-viewport .lighthouse-game__options button { grid-template-columns: 34px minmax(0,1fr); min-height: 46px; }
  .lighthouse-game.is-game-viewport .lighthouse-game__question p { display: none; }
}

@media (min-width: 1051px) {
  .lighthouse-game.is-game-viewport:not(.is-started) .lighthouse-game__stage {
    width: min(100%, 96vh);
    max-height: 54vh;
  }
  .lighthouse-game.is-game-viewport.is-started:not(.is-finished) {
    grid-template-columns: minmax(500px, 1.3fr) minmax(410px, .7fr);
    grid-template-rows: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px 12px;
  }
  .lighthouse-game.is-game-viewport.is-started:not(.is-finished) .lighthouse-game__visits { grid-column: 1 / -1; }
  .lighthouse-game.is-game-viewport.is-started:not(.is-finished) .lighthouse-game__stage {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    max-height: none;
    align-self: center;
  }
  .lighthouse-game.is-game-viewport.is-started:not(.is-finished) .lighthouse-game__play {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    max-height: 100%;
    overflow: hidden;
  }
}

@media (min-width: 761px) and (max-width: 1050px) {
  .game-viewport.is-game-viewport { padding-inline: 10px !important; }
  .feeding-game.is-game-viewport .feeding-game__stage { max-height: none; }
  .jigsaw-game.is-game-viewport .jigsaw-game__play { grid-template-columns: minmax(0, 1.35fr) minmax(210px, .65fr); }
  .rosary-game.is-game-viewport .rosary-game__workspace { grid-template-columns: minmax(0, 1.45fr) minmax(240px, .55fr); }
}

@media (min-width: 761px) and (max-width: 1050px) and (orientation: portrait) {
  .baking-game.is-game-viewport .baking-game__workspace {
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: minmax(300px,.45fr) minmax(0,.55fr);
  }
  .baking-game.is-game-viewport .baking-game__choices {
    grid-template-rows: minmax(0,1fr) auto;
    align-content: stretch;
  }
  .baking-game.is-game-viewport .baking-game__choices > section {
    display: grid;
    height: 100%;
    align-content: center;
  }
  .baking-game.is-game-viewport .baking-ingredient-grid button { min-height: 82px; }
  .baking-game.is-game-viewport .baking-amount-grid button { min-height: 72px; }
  .baking-game.is-game-viewport .baking-action { display: block; }

  .feeding-game.is-game-viewport { grid-template-rows: auto auto auto auto auto auto; align-content: start; }
  .feeding-game.is-game-viewport .feeding-game__dashboard { display: none !important; }
  .feeding-game.is-game-viewport .feeding-game__stage { height: auto; aspect-ratio: 16 / 9; }
  .jigsaw-game.is-game-viewport .jigsaw-game__play {
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: minmax(0,1.55fr) minmax(210px,.75fr);
  }
  .jigsaw-game.is-game-viewport .jigsaw-board { width: min(100%, 680px); height: auto; aspect-ratio: 4 / 3; }
  .jigsaw-game.is-game-viewport .jigsaw-tray { grid-template-columns: repeat(6,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); }

  .bridge-game.is-game-viewport .bridge-game__play { grid-template-rows: minmax(0,1fr) auto; }
  .bridge-game.is-game-viewport .bridge-game__panel { align-content: start; max-height: 310px; }

  .fishing-game.is-game-viewport .fishing-game__play { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; }
  .fishing-game.is-game-viewport .fishing-game__panel { display: grid; grid-template-columns: minmax(0,1fr); max-height: 155px; }
  .fishing-game.is-game-viewport .fishing-game__catch-wrap { display: none; }
  .fishing-game.is-game-viewport .fishing-game__controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fishing-game.is-game-viewport .fishing-game__mode { display: contents; }

  .rosary-game.is-game-viewport .rosary-game__workspace { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; }
  .rosary-game.is-game-viewport .rosary-game__workspace { align-content: start; grid-template-rows: auto auto; }
  .rosary-game.is-game-viewport .rosary-game__stage { width: min(100%, 760px); height: auto; aspect-ratio: 3 / 2; }
  .rosary-game.is-game-viewport .rosary-toolbox { display: grid; grid-template-columns: minmax(210px,.65fr) minmax(0,1.35fr); height: auto; max-height: 245px; }
  .rosary-game.is-game-viewport .rosary-toolbox__instruction { display: none; }
  .rosary-game.is-game-viewport .rosary-token-grid button { min-height: 82px; }
}

/*
 * Kjøkkenet på lave laptopskjermer.
 * 1280 × 720 er vanlig i nettlesere med synlige faner/verktøylinjer. På den
 * høyden ble «Ha i bollen» liggende under den klippede arbeidsflaten. Vi lar
 * oppskriftsvalget og arbeidsbordet få plassen, mens den gjentatte tittelen
 * skjules i spillvinduet.
 */
@media (min-width: 761px) and (max-height: 760px) {
  .baking-game.is-game-viewport {
    grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
    gap: 4px;
  }

  .baking-game.is-game-viewport .baking-game__head {
    display: flex;
    min-height: 44px;
    padding: 0 3px !important;
    justify-content: flex-end;
  }

  .baking-game.is-game-viewport .baking-game__head > div:first-child {
    display: none !important;
  }

  .baking-game.is-game-viewport .baking-game__score {
    width: min(360px, 100%);
    min-width: 0;
    min-height: 44px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 3px 7px;
    border-radius: 14px;
  }

  .baking-game.is-game-viewport .baking-game__score :where(strong, span) {
    padding: 4px;
    font-size: .76rem;
  }

  .baking-game.is-game-viewport .baking-game__score span {
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, .22);
  }

  .baking-game.is-game-viewport .baking-recipes button {
    height: 50px;
    min-height: 50px;
  }

  .baking-game.is-game-viewport .baking-game__toolbar {
    min-height: 44px;
    padding: 3px 7px;
  }

  .baking-game.is-game-viewport .baking-game__toolbar-actions .button {
    min-height: 38px;
    padding-block: 3px;
  }

  .baking-game.is-game-viewport .baking-progress {
    height: 8px;
    margin: 0;
  }

  .baking-game.is-game-viewport .baking-game__workspace {
    gap: 5px;
  }

  .baking-game.is-game-viewport .baking-game__choices {
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 5px;
    padding: 5px;
  }

  .baking-game.is-game-viewport .baking-game__choices > section {
    min-height: 0;
    padding: 5px;
  }

  .baking-game.is-game-viewport .baking-game__add {
    min-height: 44px;
    height: 44px;
  }

  .baking-game.is-game-viewport .baking-game__feedback {
    min-height: 44px;
    padding: 5px 10px;
  }
}

@media (orientation: landscape) and (max-height: 620px) {
  .game-viewport.is-game-viewport { --gv-bar: calc(48px + env(safe-area-inset-top, 0px)); padding-top: calc(var(--gv-bar) + 4px) !important; }
  .game-viewport.is-game-viewport :where(.baking-game__head, .jigsaw-game__head, .bridge-game__header, .fishing-game__head, .memory-game__head, .rosary-game__head, .shore-game__head, .crab-game__head, .penalty-game__header, .tractor-game__header, .feeding-game__header) { display: none !important; }

  /* Kjøkken: oppskrift, valg og arbeidsbord i samme blikkfelt. */
  .baking-game.is-game-viewport { grid-template-rows: auto auto auto minmax(0,1fr) auto; }
  .baking-game.is-game-viewport .baking-game__workspace { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); }
  .baking-game.is-game-viewport .baking-recipes button { display: flex; height: 42px; min-height: 42px; align-items: center; justify-content: center; gap: 4px; }
  .baking-game.is-game-viewport .baking-game__toolbar { min-height: 38px; padding-block: 3px; }
  .baking-game.is-game-viewport .baking-game__toolbar-actions .button { min-height: 36px; }
  .baking-game.is-game-viewport .baking-game__choices { grid-template-rows: minmax(0,1fr) auto; gap: 4px; align-content: stretch; }
  .baking-game.is-game-viewport .baking-game__choices > section { min-height: 0; height: 100%; padding: 4px; overflow: hidden; }
  .baking-game.is-game-viewport .baking-game__add { min-height: 38px; height: 38px; }
  .baking-game.is-game-viewport .baking-counter { right: 5px; bottom: 4px; left: auto; width: 280px; transform: scale(.58); transform-origin: right bottom; }
  .baking-game.is-game-viewport .baking-game__feedback { min-height: 36px; padding-block: 3px; }

  /* Puslespill: brett og brikkebank deler den store spillraden. */
  .jigsaw-game.is-game-viewport { grid-template-rows: auto auto minmax(0,1fr) auto; }
  .jigsaw-game.is-game-viewport .jigsaw-game__toolbar { display: flex; flex-direction: row; flex-wrap: nowrap; min-height: 40px; padding-block: 3px; }
  .jigsaw-game.is-game-viewport .jigsaw-game__sizes,
  .jigsaw-game.is-game-viewport .jigsaw-game__actions { display: flex; flex-wrap: nowrap; gap: 3px; }
  .jigsaw-game.is-game-viewport .jigsaw-game__sizes > span { display: none; }
  .jigsaw-game.is-game-viewport .jigsaw-game__toolbar button { min-height: 36px; padding: 3px 7px; font-size: .7rem; }
  .jigsaw-game.is-game-viewport .jigsaw-game__play { grid-template-columns: minmax(0, 1.34fr) minmax(230px, .66fr); grid-template-rows: minmax(0,1fr); }
  .jigsaw-game.is-game-viewport .jigsaw-game__board-wrap,
  .jigsaw-game.is-game-viewport .jigsaw-tray-wrap { height: 100%; max-height: 100%; box-sizing: border-box; }
  .jigsaw-game.is-game-viewport .jigsaw-tray-wrap { padding: 5px; }
  .jigsaw-game.is-game-viewport .jigsaw-game__feedback { min-height: 35px; padding-block: 3px; }

  /* Bildelotto: verktøylinjen, selve kortene og én kort hjelpelinje. */
  .memory-section.is-game-viewport > .container { grid-template-rows: auto minmax(0,1fr) auto; }
  .memory-section.is-game-viewport .memory-game__toolbar { min-height: 40px; padding-block: 3px; }
  .memory-section.is-game-viewport .memory-game__sizes > span { display: none; }
  .memory-section.is-game-viewport .memory-board { width: min(100%, 980px); padding: 5px; border-width: 3px; border-radius: 18px; }
  .memory-section.is-game-viewport .memory-board[data-memory-count="8"] { grid-template-columns: repeat(4, minmax(0,1fr)); grid-template-rows: repeat(2, minmax(0,1fr)); }
  .memory-section.is-game-viewport .memory-board[data-memory-count="12"] { grid-template-columns: repeat(6, minmax(0,1fr)); grid-template-rows: repeat(2, minmax(0,1fr)); }
  .memory-section.is-game-viewport .memory-board[data-memory-count="24"] { grid-template-columns: repeat(8, minmax(0,1fr)); grid-template-rows: repeat(3, minmax(0,1fr)); }
  .memory-section.is-game-viewport .memory-card { height: 100%; aspect-ratio: auto; border-radius: 12px; }
  .memory-section.is-game-viewport .memory-game__footer { min-height: 35px; padding-block: 3px; }

  /* Bru: behold utsikten og oppgaven ved siden av hverandre også på små nettbrett. */
  .bridge-game.is-game-viewport { grid-template-rows: auto minmax(0,1fr); }
  .bridge-game.is-game-viewport .bridge-game__play { grid-template-columns: minmax(0,1.28fr) minmax(280px,.72fr); grid-template-rows: minmax(0,1fr); }
  .bridge-game.is-game-viewport .bridge-game__stage,
  .bridge-game.is-game-viewport .bridge-game__panel { height: 100%; }
  .bridge-game.is-game-viewport .bridge-game__panel { padding: 6px; gap: 4px; }
  .bridge-game.is-game-viewport .bridge-game__mission-icon,
  .bridge-game.is-game-viewport .bridge-game__clue { display: none; }
  .bridge-game.is-game-viewport .bridge-game__options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bridge-game.is-game-viewport .bridge-game__options button { min-height: 42px; }
  .bridge-game.is-game-viewport .bridge-game__options button small { display: none; }

  /* Fotball og dyr: fjern informasjon som allerede finnes i spillstatusen. */
  .penalty-game.is-game-viewport { grid-template-rows: auto minmax(0,1fr) auto auto auto; }
  .penalty-game.is-game-viewport .penalty-game__lesson { display: none; }
  .penalty-game.is-game-viewport .penalty-game__controls button { min-height: 42px; }
  .penalty-game.is-game-viewport .penalty-game__power { padding-block: 3px; }
  .penalty-game.is-game-viewport .penalty-game__status { min-height: 35px; padding-block: 3px; }
  .tractor-game.is-game-viewport { grid-template-rows: auto minmax(0,1fr) auto auto; }

  .feeding-game.is-game-viewport {
    grid-template-columns: minmax(0,1.28fr) minmax(300px,.72fr);
    grid-template-rows: auto auto auto minmax(0,1fr) auto;
    grid-template-areas:
      "levels levels"
      "stage prompt"
      "stage choices"
      "stage foods"
      "stage status";
  }
  .feeding-game.is-game-viewport .feeding-game__lesson,
  .feeding-game.is-game-viewport .feeding-game__dashboard { display: none !important; }
  .feeding-game.is-game-viewport .feeding-game__levels { grid-area: levels; }
  .feeding-game.is-game-viewport .feeding-game__stage { grid-area: stage; }
  .feeding-game.is-game-viewport .feeding-game__prompt { grid-area: prompt; min-height: 34px; }
  .feeding-game.is-game-viewport .feeding-game__choices-head { grid-area: choices; min-height: 34px; }
  .feeding-game.is-game-viewport .feeding-game__choices-head small { display: none; }
  .feeding-game.is-game-viewport .feeding-game__prompt-icon,
  .feeding-game.is-game-viewport .feeding-game__prompt p { display: none; }
  .feeding-game.is-game-viewport .feeding-game__guide { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; }
  .feeding-game.is-game-viewport .feeding-game__guide > i { display: none; }
  .feeding-game.is-game-viewport .feeding-game__guide > div { min-height: 34px; padding: 2px 4px; }
  .feeding-game.is-game-viewport .feeding-game__drag-grip {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 24px;
    min-height: 24px;
    margin: 0;
    padding: 0;
    justify-content: center;
    font-size: 0;
  }
  .feeding-game.is-game-viewport .feeding-game__drag-grip::before { content: "☝"; font-size: .72rem; }
  .feeding-game.is-game-viewport .feeding-game__foods { grid-area: foods; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .feeding-game.is-game-viewport .feeding-game__status { grid-area: status; min-height: 35px; }
  .feeding-game.is-game-viewport .feeding-game__status p { display: none; }
  .feeding-game.is-game-viewport .feeding-game__status-actions { width: 100%; justify-content: stretch; }
  .feeding-game.is-game-viewport .feeding-game__status-actions .button { flex: 1 1 0; min-height: 38px; }
  .feeding-game.is-game-viewport .feeding-game__foods button {
    position: relative;
    grid-template-columns: minmax(0,1fr);
    min-height: 0;
    height: 100%;
    padding-inline: 2px;
    justify-items: center;
    overflow: hidden;
    text-align: center;
  }
  .feeding-game.is-game-viewport .feeding-game__food-image { width: 54px; }
  .feeding-game.is-game-viewport .feeding-game__food-copy {
    position: absolute;
    right: 2px;
    bottom: 2px;
    left: 2px;
    width: auto;
    min-width: 0;
    text-align: center;
  }
  .feeding-game.is-game-viewport .feeding-game__food-copy strong {
    display: block;
    padding: 2px 3px;
    overflow: hidden;
    background: rgba(255,255,255,.9);
    border-radius: 7px;
    font-size: .62rem;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Fiske: scenen er hovedsaken; betjening ligger i en kompakt høyrekolonne. */
  .fishing-game.is-game-viewport { grid-template-rows: auto auto minmax(0,1fr); }
  .fishing-game.is-game-viewport .fishing-game__play { grid-template-columns: minmax(0,1.45fr) minmax(250px,.55fr); grid-template-rows: minmax(0,1fr); }
  .fishing-game.is-game-viewport .fishing-game__panel { display: grid; grid-template-rows: auto minmax(0,1fr); }
  .fishing-game.is-game-viewport .fishing-game__catch-wrap { display: none; }
  .fishing-game.is-game-viewport .fishing-game__controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: end; }
  .fishing-game.is-game-viewport .fishing-game__mode { display: contents; }
  .fishing-game.is-game-viewport .fishing-game__controls button { min-width: 0; min-height: 42px; padding-inline: 3px; font-size: .7rem; }

  /* Rosenkrans: behold brettet stort; verktøyene blir fem tydelige valg. */
  .rosary-game.is-game-viewport { grid-template-rows: auto auto minmax(0,1fr) auto; }
  .rosary-game.is-game-viewport .rosary-game__workspace { grid-template-columns: minmax(0,1.5fr) minmax(250px,.5fr); }
  .rosary-game.is-game-viewport .rosary-toolbox { display: block; }
  .rosary-game.is-game-viewport .rosary-toolbox__task,
  .rosary-game.is-game-viewport .rosary-toolbox__instruction { display: none; }
  .rosary-game.is-game-viewport .rosary-token-grid { grid-template-columns: repeat(5,minmax(0,1fr)); grid-template-rows: minmax(0,1fr); gap: 4px; height: 100%; margin: 0; }
  .rosary-game.is-game-viewport .rosary-token-grid button,
  .rosary-game.is-game-viewport .rosary-token-grid button:last-child { grid-column: auto; min-height: 0; height: 100%; padding: 3px; overflow: hidden; }
  .rosary-game.is-game-viewport .rosary-token-grid button strong { font-size: .62rem; }
  .rosary-game.is-game-viewport .rosary-token__decade { gap: 1px; }
  .rosary-game.is-game-viewport .rosary-token__decade i { width: 9px; height: 9px; border-width: 1px; }

  /* Fjæra: målet øverst, hele fjæreflaten i midten, beskjed nederst. */
  .shore-game.is-game-viewport { grid-template-rows: auto minmax(0,1fr) auto; }
  .shore-game.is-game-viewport .shore-game__stage { height: 100%; }
  .shore-game.is-game-viewport .shore-game__footer { min-height: 35px; padding-block: 3px; }

  /* Krabbejakten: bøtta er synlig uten å spise av løpebanen. */
  .crab-game.is-game-viewport { grid-template-rows: minmax(0,1fr) auto; }
  .crab-game.is-game-viewport .crab-game__play { grid-template-columns: minmax(0,1fr) 150px; }
  .crab-game.is-game-viewport .crab-game__bucket { position: static; width: auto; height: auto; padding: 5px; }
  .crab-game.is-game-viewport .crab-game__bucket p { display: none; }
  .crab-game.is-game-viewport .crab-game__pail { width: 100%; max-width: 140px; min-height: 0; height: 100%; margin: 0 auto; }
  .crab-game.is-game-viewport .crab-game__collection { width: 66%; }
  .crab-game.is-game-viewport .crab-game__sunbeam { display: none; }
  .crab-game.is-game-viewport .crab-game__footer { min-height: 35px; padding-block: 3px; }

  .feeding-game.is-game-viewport .feeding-game__start { width: min(84%,430px); max-height: 92%; padding: 9px; gap: 3px; overflow: hidden; }
  .feeding-game.is-game-viewport .feeding-game__start > span { font-size: 1.35rem; }
  .feeding-game.is-game-viewport .feeding-game__start p { margin: 3px 0; font-size: .78rem; line-height: 1.25; }
  .feeding-game.is-game-viewport .feeding-game__start .button { min-height: 40px; padding-block: 4px; }

  .baking-game.is-game-viewport > .baking-game__finish:not([hidden]) {
    grid-template-columns: minmax(230px, .8fr) minmax(0, 1.2fr);
    grid-template-areas: "lead image" "actions image";
    column-gap: 12px;
  }
  .baking-game.is-game-viewport .baking-game__finish .game-finish-card__lead { grid-area: lead; align-self: end; }
  .baking-game.is-game-viewport .baking-game__finish-image { grid-area: image; align-self: center; width: 100%; margin: 0; }
  .baking-game.is-game-viewport .baking-game__finish .game-finish-card__actions { grid-area: actions; align-self: start; }
}

/* Dyremating: ett tydelig valg om gangen i spillvinduet. */
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__foods {
  grid-template-columns: minmax(0, 1fr) !important;
  justify-content: stretch;
}
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__foods button:not(.is-selected) { display: none !important; }
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__foods button.is-selected {
  width: 100%;
  max-width: none;
  pointer-events: none;
}
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__choices-head > span::before { content: "🐾"; }
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__choices-head > span { font-size: 0; }
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-game__choices-head > span::before { font-size: 1rem; }
.feeding-game.is-game-viewport[data-feeding-mode="free"] .feeding-game__guide > div.is-active { animation: feeding-choice-ready 1.4s ease-in-out infinite; }
.feeding-game.is-game-viewport .feeding-game__result-media {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
}
.feeding-game.is-game-viewport .feeding-animal.is-target > span small,
.feeding-game.is-game-viewport .feeding-animal.is-selected-animal > span small,
.feeding-game.is-game-viewport[data-feeding-mode="findAnimal"] .feeding-animal:not(.is-fed) > span small {
  display: block;
  width: 100%;
  font-size: .5rem;
}

/* Hele fôrkortet kan dras. I den kompakte spillvisningen holder én klar
   «Trykk / dra»-etikett betjeningen roligere enn to parallelle instrukser. */
.feeding-game.is-game-viewport .feeding-game__drag-grip { display: none !important; }
.feeding-game--simple.is-game-viewport[data-feeding-mode="findFood"] .feeding-game__food-action::before {
  content: "Trykk for å gi";
}

@media (prefers-reduced-motion: reduce) {
  .game-viewport.is-game-viewport * { scroll-behavior: auto !important; }
}

@keyframes feeding-choice-ready {
  50% { box-shadow: 0 0 0 5px rgba(255,207,73,.2); }
}

/* Bryggefiskeren: fangsten og neste handling blir værende i havnescenen. */
.fishing-game.is-game-viewport .fishing-game__panel {
  grid-template-rows: minmax(42px, auto) auto;
  overflow: visible;
}
.fishing-game.is-game-viewport .fishing-game__feedback {
  position: relative;
  z-index: 1;
  display: block;
  max-height: 58px;
  overflow: hidden;
}
.fishing-game.is-game-viewport[data-fishing-phase="caught"] {
  grid-template-rows: auto auto minmax(0, 1fr);
}
.fishing-game.is-game-viewport[data-fishing-phase="caught"] .fishing-game__lesson,
.fishing-game.is-game-viewport[data-fishing-phase="caught"] .fishing-game__panel { display: none !important; }
.fishing-game.is-game-viewport[data-fishing-phase="caught"] .fishing-game__play {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
}
.fishing-game.is-game-viewport[data-fishing-phase="caught"] .fishing-game__stage {
  width: 100%;
  height: 100%;
  min-height: 0;
}

@media (max-width: 760px) {
  .fishing-game.is-game-viewport:not([data-fishing-phase="caught"]) .fishing-game__panel { max-height: 166px; }
  .fishing-game.is-game-viewport .fishing-game__feedback { max-height: 54px; }
}

/* Endelige overstyringer for den forenklede dyrematingen. */
@media (min-width: 900px) and (orientation: landscape) {
  .feeding-game--simple.is-game-viewport {
    grid-template-columns: minmax(0, 1.52fr) minmax(330px, .68fr);
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    grid-template-areas: "levels levels" "stage prompt" "stage choices" "stage foods" "stage status";
    gap: 7px;
  }
  .feeding-game--simple.is-game-viewport .feeding-game__levels { grid-area: levels; }
  .feeding-game--simple.is-game-viewport .feeding-game__dashboard { display: none !important; }
  .feeding-game--simple.is-game-viewport .feeding-game__stage { grid-area: stage; min-height: 0; height: 100%; border-width: 5px; border-radius: 22px; }
  .feeding-game--simple.is-game-viewport .feeding-game__prompt { grid-area: prompt; min-height: 58px; align-items: center; padding: 7px 9px; }
  .feeding-game--simple.is-game-viewport .feeding-game__prompt-icon,
  .feeding-game--simple.is-game-viewport .feeding-game__prompt p { display: none; }
  .feeding-game--simple.is-game-viewport .feeding-game__guide { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
  .feeding-game--simple.is-game-viewport .feeding-game__guide > div { min-height: 44px; }
  .feeding-game--simple.is-game-viewport .feeding-game__choices-head { grid-area: choices; min-height: 48px; padding: 6px 9px; }
  .feeding-game--simple.is-game-viewport .feeding-game__choices-head small { display: block; }
  .feeding-game--simple.is-game-viewport .feeding-game__foods { grid-area: foods; grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 7px; min-height: 0; }
  .feeding-game--simple.is-game-viewport .feeding-game__foods[data-count="2"] { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .feeding-game--simple.is-game-viewport .feeding-game__foods button { grid-template-columns: 84px minmax(0, 1fr); min-height: 0; height: 100%; gap: 9px; padding: 6px; overflow: hidden; text-align: left; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-image { width: 78px; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy { position: static; width: auto; min-width: 0; text-align: left; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy strong { display: block; padding: 0; overflow: visible; background: transparent; border-radius: 0; font-size: .92rem; line-height: 1.08; white-space: normal; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy em { margin-top: 4px; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-shared { margin-top: 3px; font-size: .62rem; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-action { min-height: 25px; margin-top: 4px; }
  .feeding-game--simple.is-game-viewport .feeding-game__drag-grip { position: static; min-width: 0; min-height: 25px; margin: 4px 0 0 4px; padding: 2px 7px; font-size: .58rem; }
  .feeding-game--simple.is-game-viewport .feeding-game__drag-grip::before { content: none; }
  .feeding-game--simple.is-game-viewport .feeding-game__status { grid-area: status; min-height: 44px; padding: 4px 6px; }
  .feeding-game--simple.is-game-viewport .feeding-game__status p { display: none; }
  .feeding-game--simple.is-game-viewport .feeding-game__status-actions { width: 100%; justify-content: stretch; }
  .feeding-game--simple.is-game-viewport .feeding-game__status-actions .button { flex: 1 1 0; min-height: 38px; }
}

@media (max-width: 899px) {
  .feeding-game--simple.is-game-viewport .feeding-game__dashboard { display: none !important; }
  .feeding-game--simple.is-game-viewport .feeding-game__levels li small { display: none; }
  .feeding-game--simple.is-game-viewport .feeding-game__levels li strong { font-size: .7rem; }
  .feeding-game--simple.is-game-viewport .feeding-game__stage { min-height: 0; }
  .feeding-game--simple.is-game-viewport .feeding-game__foods { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feeding-game--simple.is-game-viewport .feeding-game__foods[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feeding-game--simple.is-game-viewport .feeding-game__foods button { grid-template-columns: minmax(0, 1fr); justify-items: center; min-height: 0; padding: 4px; text-align: center; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-image { width: min(72px, 100%); }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy { position: static; width: auto; text-align: center; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy strong { padding: 0; background: transparent; font-size: .73rem; line-height: 1.05; white-space: normal; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy small,
  .feeding-game--simple.is-game-viewport .feeding-game__food-copy em,
  .feeding-game--simple.is-game-viewport .feeding-game__food-shared,
  .feeding-game--simple.is-game-viewport .feeding-game__drag-grip { display: none; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-action { min-height: 24px; margin-top: 3px; }
  .feeding-game--simple.is-game-viewport .feeding-game__food-action::before { content: "Velg"; font-size: .62rem; }
}
