/* Gameplay-only 2×300×250 right rail. Zero impact on menu, splash, settings, victory. */
.fcn-display-sidebar { display:none !important; }
@media (min-width:1180px) {
  body.fcn-display-on .app {
    display:flex; flex-direction:row; align-items:stretch;
    width:100%; height:100dvh; overflow:hidden;
    isolation:isolate;
    /* One uninterrupted felt surface behind both the board and the ad rail. */
    background:
      radial-gradient(ellipse at 50% 10%,var(--feltGlow),transparent 34%),
      linear-gradient(180deg,var(--felt1) 0%,color-mix(in srgb,var(--felt1) 78%,var(--felt2)) 54%,color-mix(in srgb,var(--felt1) 62%,var(--felt2)) 100%);
    box-shadow:inset 0 0 64px rgba(0,0,0,.12),inset 0 1px rgba(255,255,255,.026);
  }
  /* Premium grain and vignette were formerly painted by .board; they now
     span the entire .app at identical coordinates, avoiding a seam. */
  body.fcn-display-on .app::before,
  body.fcn-display-on .app::after {
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  }
  body.fcn-display-on .app::before {
    background:url("../img/felt-grain-premium.png") 0 0 / 256px 256px repeat;
    opacity:var(--felt-grain-opacity);
    mix-blend-mode:soft-light;
    filter:contrast(112%) brightness(104%);
  }
  body.fcn-display-on .app::after {
    background:
      radial-gradient(ellipse at 50% 54%,transparent 0 52%,rgba(0,0,0,.018) 74%,var(--felt-vignette-mid) 90%,var(--felt-vignette-edge) 100%),
      radial-gradient(ellipse at 50% 48%,rgba(255,255,255,.022),transparent 40%);
    opacity:.8;
  }
  /* Keep the toolbar over the full playing surface AND over the ad rail.
     It is an immediate child of .app (not the clipped .frame). */
  body.fcn-display-on .app > .topbar {
    left:0;right:0;width:100%;
    z-index:30;
  }
  /* Align ad #1 with the actual top row of FreeCells/Foundations.
     The WebGL renderer sets topY from #board computed padding-top.
     Both surfaces share the same top edge in the desktop flex layout. */
  body.fcn-display-on .fcn-display-stack {
    padding-top:var(--board-pad-top);
  }
  /* main.css reduces #board padding in very short desktop viewports. */
  @media (max-height:560px) {
    body.fcn-display-on .fcn-display-stack { padding-top:58px; }
  }
  /* Make the board transparent so the shared felt remains visible. */
  body.fcn-display-on .app>.frame {
    flex:1 1 0; width:auto; min-width:0; height:100%; z-index:1;
  }
  body.fcn-display-on .frame .board-shell {
    background:transparent;
  }
  body.fcn-display-on .frame .board {
    background:transparent;
    box-shadow:none;
  }
  body.fcn-display-on .frame .board::before,
  body.fcn-display-on .frame .board::after {
    content:none; display:none;
  }
  /* Fixed-deal skin: keep its original petroleum-blue treatment across
     the whole playing surface, not just inside the board. */
  body.fcn-display-on[data-skin="deal-11982"] .app {
    background:
      radial-gradient(ellipse at 50% -10%,rgba(137,211,230,.10),transparent 34%),
      radial-gradient(ellipse at 50% 48%,rgba(38,111,136,.10),transparent 58%),
      linear-gradient(145deg,#0c2a39 0%,#081d29 44%,#031019 100%);
    box-shadow:inset 0 0 190px rgba(0,0,0,.57),inset 0 1px rgba(255,255,255,.035);
  }
  body.fcn-display-on[data-skin="deal-11982"] .frame .board-shell {
    box-shadow:none;
  }
  body.fcn-display-on .fcn-display-sidebar {
    display:flex!important;
    flex:0 0 326px; width:326px; min-width:326px;
    height:100%; overflow-y:auto; overflow-x:hidden; position:relative; z-index:4;
    border:0; background:transparent;
    flex-direction:column; align-items:center;
    scrollbar-width:none; /* Don't steal horizontal space from the 300px creatives. */
  }
  body.fcn-display-on .fcn-display-sidebar::-webkit-scrollbar {display:none;}
}
/* Only two ad rectangles are displayed: no external labels or chrome. */
/* Keep horizontal padding at zero: the 326px rail must fit a 300px slot even when a scrollbar appears. */
.fcn-display-stack {
  box-sizing:border-box; width:100%; padding:22px 0;
  display:flex; flex-direction:column; gap:10px; align-items:center;
}
.fcn-display-slot {
  box-sizing:border-box; flex:none; width:300px; height:250px;
  margin-inline:auto; overflow:hidden; position:relative;
}
.fcn-display-slot iframe {width:300px;height:250px;border:0;display:block;overflow:hidden;}
/* Avoid a dark-green loading flash while Prebid fetches or refreshes creatives. */
.fcn-display-slot[aria-busy="true"] {background:transparent;}
/* Visual test creatives never appear outside explicit local mockup mode. */
.fcn-display-mock {position:absolute;inset:0;pointer-events:none;padding:20px;
  display:flex;flex-direction:column;justify-content:space-between;
  color:#243c32;background:linear-gradient(145deg,#eae9e1,#b7cabd);}
.fcn-display-mock--2 {color:#fff2df;background:linear-gradient(138deg,#213b48,#826c55);}
.fcn-display-mock small {font-size:10px;letter-spacing:.16em;font-weight:800;text-transform:uppercase}
.fcn-display-mock strong {font:600 27px/1.1 "Fraunces",Georgia,serif}
@media(min-width:1180px) and (max-width:1320px) {
  body.fcn-display-on.press-editorial .topbar {grid-template-columns:1fr auto;gap:6px;padding-left:16px;padding-right:13px}
  body.fcn-display-on.press-editorial .press-identity {display:none}
}
@media(min-width:1180px) and (max-width:1320px) {
  body.fcn-display-on.press-editorial .actions {--action-gap:6px;--divider-half:3px}
  body.fcn-display-on.press-editorial #undoBtn,
  body.fcn-display-on.press-editorial #settingsBtn,
  body.fcn-display-on.press-editorial #daylightToggle,
  body.fcn-display-on.press-editorial #fullscreenBtn {width:38px}
  body.fcn-display-on.press-editorial .actions .btn {padding:0 8px}
}
@media(max-height:680px) and (min-width:1180px) {
  .fcn-display-stack {gap:12px;padding-top:12px}
}

/* Publisher-owned fallback: only slot 1, when its completed Prebid auction has no fill.
   The native card is 300x600; the second paid ad stays as a separate 300x250 slot. */
.fcn-display-slot.fcn-display-slot--house {
  height:600px;
  min-height:600px;
  overflow:hidden;
}
.fcn-house-puzzles {
  box-sizing:border-box;
  width:300px;
  height:600px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#f3f0e8;
  color:#173126;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.fcn-house-puzzles:hover, .fcn-house-puzzles:focus-visible {text-decoration:none;color:#173126;}
.fcn-house-puzzles:focus-visible {outline:3px solid #d5ad60;outline-offset:-3px;}
.fcn-house-puzzles__image {
  width:300px;height:310px;max-width:none;
  object-fit:cover;object-position:50% 44%;
  display:block;flex:0 0 310px;
}
.fcn-house-puzzles__content {
  box-sizing:border-box;padding:21px 22px 22px;
  display:flex;flex-direction:column;align-items:flex-start;
  flex:1 1 auto;min-height:0;
}
.fcn-house-puzzles__eyebrow {
  color:#577363;font-family:Arial,Helvetica,sans-serif;font-weight:700;
  font-size:10px;letter-spacing:.16em;line-height:1.35;
}
.fcn-house-puzzles__heading {
  display:block;margin-top:12px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:26px;font-weight:600;line-height:1.06;
  letter-spacing:-.018em;color:#183328;
}
.fcn-house-puzzles__description {
  margin-top:12px;max-width:246px;
  font:400 13px/1.45 Arial,Helvetica,sans-serif;
  color:#4d6257;
}
.fcn-house-puzzles__cta {
  box-sizing:border-box;display:block;margin-top:auto;width:100%;
  padding:11px 12px;text-align:center;border-radius:3px;
  background:#d9b768;color:#182a22;
  font:700 13px/1.3 Arial,Helvetica,sans-serif;
  transition:background .14s ease;
}
.fcn-house-puzzles:hover .fcn-house-puzzles__cta {background:#eacb84;}
@media(prefers-reduced-motion:reduce) {
  .fcn-house-puzzles__cta {transition:none;}
}

/* When the first display slot is empty but the second has a creative,
   collapse the empty first slot so #2 occupies the top position. */
@media (min-width: 1180px) {
  body.fcn-display-on
  .fcn-display-stack:has(#fcn-display-right-2 iframe)
  #fcn-display-right-1:not(:has(iframe, .fcn-house-puzzles)) {
    display: none;
  }
}
