/* Two quiet composited layers give each world depth without a rendering loop. */
html:is([data-theme="tabletop"],[data-theme="library"],[data-theme="tidepool"],[data-theme="arcade"],[data-theme="garden"],[data-theme="clockwork"],[data-theme="observatory"],[data-theme="paper"]) .ambient-field{
  inset:-12%;width:auto;height:auto;aspect-ratio:auto;border-radius:0;opacity:1;overflow:hidden;
  animation:none;
}
.ambient-field::before,.ambient-field::after{
  content:"";position:absolute;inset:-12%;pointer-events:none;opacity:0;
  transform:translate3d(0,0,0);
}
@keyframes worldDrift{to{transform:translate3d(7%,-5%,0) scale(1.08)}}
@keyframes worldBreathe{50%{opacity:.8;transform:translate3d(-3%,2%,0) scale(1.04)}}
@keyframes worldOrbit{to{transform:rotate(360deg)}}
@keyframes waterSweep{to{transform:translate3d(22%,-11%,0) rotate(9deg)}}
@keyframes seamShimmer{50%{opacity:.36;transform:translate3d(12%,-5%,0)}}

html[data-theme="tidepool"] .ambient-field::before{
  opacity:.76;background:repeating-radial-gradient(ellipse at 18% 26%,transparent 0 24px,#b6ffed2b 27px,transparent 32px,transparent 69px),
    radial-gradient(ellipse at 80% 30%,#94eaff48,transparent 58%);
  animation:worldDrift 17s ease-in-out infinite alternate;
}
html[data-theme="tidepool"] .ambient-field::after{
  opacity:.65;background:repeating-radial-gradient(ellipse at 78% 72%,transparent 0 35px,#cbffff25 38px,transparent 45px,transparent 81px);
  animation:worldDrift 22s ease-in-out infinite alternate-reverse;
}
html[data-theme="tidepool"] .board-frame::before{
  opacity:.54;background:repeating-radial-gradient(ellipse at 30% 28%,transparent 0 20px,#e2ffff4d 22px,transparent 26px,transparent 52px);
  animation:worldDrift 13s ease-in-out infinite alternate;
}
html[data-theme="tidepool"] .board::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:15px;
  opacity:.23;background:repeating-radial-gradient(ellipse at 20% 12%,transparent 0 22px,#efffffbd 24px,transparent 27px,transparent 49px);
  transform:translate3d(0,0,0);animation:waterSweep 12s ease-in-out infinite alternate;
}
html[data-theme="tidepool"] .selection-wave{border-color:#d9ffff;box-shadow:0 0 15px #a5ffed,inset 0 0 16px #c2ffff;animation-duration:.52s}
html[data-theme="tidepool"] .board-frame.shaking::before{animation-duration:.75s;opacity:.8}

html[data-theme="library"] .ambient-field::before{
  opacity:.65;background:radial-gradient(ellipse at 28% 35%,#ffc37c72,transparent 50%),radial-gradient(ellipse at 75% 80%,#bd83d03b,transparent 54%);
  animation:worldBreathe 9s ease-in-out infinite;
}
html[data-theme="library"] .ambient-field::after{
  opacity:.6;background-image:radial-gradient(#ffe9b285 1px,transparent 2px),radial-gradient(#ffdda061 1px,transparent 2px);
  background-size:91px 83px,123px 109px;animation:worldDrift 28s linear infinite alternate;
}
html[data-theme="library"] .board-frame::before{opacity:.38;background:radial-gradient(ellipse at 20% 22%,#ffdb966c,transparent 53%);animation:worldBreathe 7s ease-in-out infinite}
html[data-theme="library"] .trace-line{filter:drop-shadow(0 0 4px #ffe1a9)}

html[data-theme="garden"] .ambient-field::before{
  opacity:.63;background:radial-gradient(ellipse at 18% 25%,#ffe8a557,transparent 42%),radial-gradient(ellipse at 86% 76%,#a9df8b3d,transparent 40%);
  animation:worldDrift 18s ease-in-out infinite alternate;
}
html[data-theme="garden"] .ambient-field::after{
  opacity:.8;background-image:radial-gradient(#fff2a3 1.5px,transparent 3px),radial-gradient(#d8ff9b 1px,transparent 3px);
  background-size:111px 97px,143px 131px;animation:worldBreathe 5.7s ease-in-out infinite;
}
html[data-theme="garden"] .board-frame::before{opacity:.25;background:radial-gradient(ellipse at 80% 30%,#f9df9b,transparent 48%);animation:worldDrift 14s ease-in-out infinite alternate}
html[data-theme="garden"] .selection-wave{border-style:dotted;border-width:3px}

html[data-theme="clockwork"] .ambient-field::before{
  inset:6% 16%;opacity:.33;border:2px dashed #f6c67f;border-radius:50%;box-shadow:0 0 0 25px #a7803b22,0 0 0 27px #d5ac6b77,0 0 0 52px #a7803b19,0 0 0 54px #d5ac6b55;
  animation:worldOrbit 85s linear infinite;
}
html[data-theme="clockwork"] .ambient-field::after{
  opacity:.48;background:linear-gradient(110deg,transparent 34%,#f7d99b62 48%,transparent 61%);
  animation:worldDrift 12s ease-in-out infinite alternate;
}
html[data-theme="clockwork"] .board-frame::before{opacity:.5;background:repeating-conic-gradient(from 0deg at 50% 50%,#eac88433 0 4deg,transparent 5deg 26deg);animation:worldOrbit 70s linear infinite}

html[data-theme="observatory"] .ambient-field::before{
  inset:8% 19%;opacity:.52;border:1px solid #d7d3a077;border-radius:50%;box-shadow:0 0 0 38px #a6b7ff09,0 0 0 39px #d3d7aa50,0 0 0 75px #a6b7ff08,0 0 0 76px #d3d7aa35;
  animation:worldOrbit 110s linear infinite;
}
html[data-theme="observatory"] .ambient-field::after{
  opacity:.64;background-image:radial-gradient(#fff8d1 1px,transparent 2px),radial-gradient(#d7dfff 1px,transparent 2px);
  background-size:77px 91px,119px 103px;animation:worldBreathe 7.5s ease-in-out infinite;
}
html[data-theme="observatory"] .board-frame::before{opacity:.34;background:conic-gradient(from 30deg,transparent,#d4c99080,transparent 30%);animation:worldOrbit 70s linear infinite}

html[data-theme="paper"] .ambient-field::before{
  opacity:.56;background:linear-gradient(98deg,#fff0d338,transparent 30% 70%,#ffbd9d3b),linear-gradient(150deg,transparent 45%,#fff5df4a 50%,transparent 55%);
  animation:worldBreathe 13s ease-in-out infinite;
}
html[data-theme="paper"] .ambient-field::after{
  inset:7% 12%;opacity:.34;border:15px solid #f3c8a74d;border-radius:4px;box-shadow:15px 14px 0 #281c3380;
  animation:worldDrift 19s ease-in-out infinite alternate;
}
html[data-theme="paper"] .board-frame{box-shadow:inset 0 2px #fff8,0 8px 0 #5a334d,0 17px 24px #0009}
html[data-theme="paper"] .tile{box-shadow:inset 0 2px #fff9,2px 4px 0 #9f6e76,4px 7px 7px #1d1b2f8a}

html[data-theme="tabletop"] .ambient-field::before{
  opacity:.57;background:radial-gradient(ellipse at 24% 21%,#ffe2ab8c,transparent 57%);
  animation:worldDrift 24s ease-in-out infinite alternate;
}
html[data-theme="tabletop"] .ambient-field::after{
  opacity:.24;background:repeating-linear-gradient(97deg,transparent 0 25px,#e6ae6240 26px,transparent 28px);
  animation:worldBreathe 18s ease-in-out infinite;
}
html[data-theme="tabletop"] .tile{box-shadow:inset 1px 2px #fff9,inset -2px -3px #ae916c44,0 4px #aa8d69,0 8px 9px #1f140bb0}
html[data-theme="tabletop"] .board-frame::before{opacity:.25;background:radial-gradient(ellipse at 10% 8%,#fff1c7,transparent 65%);animation:worldDrift 19s ease-in-out infinite alternate}

html[data-theme="arcade"] .ambient-field::before{
  opacity:.65;background:radial-gradient(ellipse at 20% 30%,#ec57ef55,transparent 50%),radial-gradient(ellipse at 80% 70%,#4dece85c,transparent 55%);
  animation:worldBreathe 7s ease-in-out infinite;
}
html[data-theme="arcade"] .ambient-field::after{
  opacity:.3;background:repeating-linear-gradient(90deg,transparent 0 43px,#57e4fb3d 44px,transparent 46px),repeating-linear-gradient(0deg,transparent 0 43px,#fa71dc35 44px,transparent 46px);
  animation:worldDrift 18s ease-in-out infinite alternate;
}
html[data-theme="arcade"] .board-frame::before{opacity:.43;background:linear-gradient(120deg,transparent,#57f3f18a,transparent 60%,#ff72e266);animation:worldBreathe 5s ease-in-out infinite}

html[data-theme="tabletop"] .celebration{background:linear-gradient(145deg,#65412ff2,#251b20f5);border-color:#e8c48a}
html[data-theme="library"] .celebration{background:linear-gradient(145deg,#43314cf2,#16182af5);border-color:#e8c78e}
html[data-theme="tidepool"] .celebration{background:linear-gradient(145deg,#166d80f2,#103b58f5);border-color:#a6f3e5}
html[data-theme="arcade"] .celebration{background:linear-gradient(145deg,#53277af2,#17143df5);border-color:#f88ce5}
html[data-theme="garden"] .celebration{background:linear-gradient(145deg,#416945f2,#172e31f5);border-color:#e2d69b}
html[data-theme="clockwork"] .celebration{background:linear-gradient(145deg,#755c3ff2,#302731f5);border-color:#e9c384}
html[data-theme="observatory"] .celebration{background:linear-gradient(145deg,#343f7bf2,#171e3cf5);border-color:#e5d092}
html[data-theme="paper"] .celebration{background:linear-gradient(145deg,#8d5d65f2,#382c43f5);border-color:#f1d6b3}
html[data-theme="paper"] .celebration.is-showing{animation-timing-function:steps(22,end)}

html[data-motion="off"] .ambient-field::before,html[data-motion="off"] .ambient-field::after,
html[data-motion="off"] .board::after{animation:none!important}
html[data-paused="true"] .ambient-field::before,html[data-paused="true"] .ambient-field::after,
html[data-paused="true"] .board::after,.modal-open .ambient-field::before,.modal-open .ambient-field::after,
.modal-open .board::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.ambient-field::before,.ambient-field::after,.board::after{animation:none!important}}
