@media (min-width: 900px) {
  /* Scoop view — wide shallow arch anchored to viewport bottom. min-height (not a
     fixed height) lets the arch grow when enlarged text spacing makes the content
     taller, so the bottom controls are never clipped (WCAG 1.4.12). */
  .view--scoop .scoop {
    width: 845px;
    min-height: 750px;
    border-radius: 100%;
    padding: 47px clamp(24px, 4vw, 64px);
    gap: 14px;
    bottom: -450px;
  }

  /* Landing/launch content anchored to the bottom of the visible arc, growing
     upward (see mobile.css for the rationale). padding-bottom = the 442px below
     the fold + ~40px gap above it. The video scoop keeps its own layout. */
  #view-landing .scoop,
  #view-launch .scoop {
    justify-content: flex-end;
    padding-bottom: 470px;
  }

  .view--scoop .scoop .eyebrow,
  .view--scoop .scoop .lead,
  .view--scoop .scoop .display,
  .view--scoop .scoop .link-btn {
    max-width: 400px;
    width: 100%;
  }

  .eyebrow {
    font-size: 16px;
  }

  .lead {
    font-size: 20px;
  }

  .rules-text {
    font-size: 16px;
  }

  .view--scoop .scoop .display {
    font-size: 32px;
    max-width: 470px;
  }

  .view--scoop .scoop .rules-toggle {
    margin-block: 0 15px;
  }

  .view--scoop .scoop--compact {
    padding-block-start: 50px;
  }

  .view--scoop .scoop--compact .display {
    max-width: 330px;
    margin-block-end: 8px;
  }

  .view--scoop .scoop--compact .btn--primary {
    margin-block-start: 0;
  }

  .scoop--game {
    padding-block: 96px 64px !important;
  }

  .game-wrapper {
    padding-block-end: 379px;
  }

  .reveal-card {
    max-width: 450px;
    padding: 50px 32px 32px;
    gap: 14px;
  }

  .reveal-card .btn {
    margin-block-start: 67px;
  }

  .reveal-card .display {
    font-size: 47px;
    margin-block-end: 26px;
  }

  .reveal-status {
    font-size: 23px;
    margin-block-end: 13px;
  }

  .reveal-instructions {
    max-width: 300px;
    font-size: 19px;
  }

  .result-img {
    max-width: 489px;
    margin-block: 42px 27px;
  }

  .result-text {
    font-size: 24px;
  }

  .result-disclaimer {
    max-width: 409px;
    font-size: 20px;
  }

  .result-fineprint {
    font-size: 16px;
    margin-block-start: 12px;
  }

  .prize--photos .result-text {
    max-width: 423px;
  }

  .prize--postal_card .result-text {
    max-width: 489px;
  }

  .lose--result .result-text {
    max-width: 423px;
  }

  /* Sheet view — narrow centered column */
  .view--sheet {
    height: calc(100vh - 85px);
    overflow: auto;
  }

  .view--sheet .sheet {
    max-width: 541px;
    padding: 62px 20px 23px;
    margin-inline: auto;
    gap: 20px;
    flex: 1;
  }

  .sheet-title {
    font-size: 48px;
    margin-top: 8px;
  }

  #optins-title {
    margin-block-end: 30px;
  }

  /* Typography */
  .display {
    font-size: 32px;
    margin-bottom: 10px;
  }

  .display--lg {
    font-size: 47px;
  }

  /* Buttons */
  .btn {
    padding: 10px 20px;
    font-size: 20px;
  }

  .link-btn {
    margin-block-start: -2px;
    font-size: 19px;
  }

  /* Components */
  .optin-card {
    margin-block-start: 24px;
    padding-block: 24px;
    max-width: 480px;
    gap: 24px;
  }

  .optin-card > * {
    padding-inline: 24px;
  }

  .optin-group-title {
    font-size: 20px;
  }

  .optin-label {
    font-size: 18px;
  }

  .optin-btn {
    width: 95px;
    height: 45px;
    font-size: 20px;
  }

  .optin-choice {
    gap: 16px;
  }

  .optin-row#profilage {
    padding-block-start: 24px;
  }
  .finish-actions {
    gap: 14px;
  }
}
