/* ══════════════════════════════════════════════════════════════════════
   THE DECORATION FIELD — SHARED BY index.html AND ALL 7 ROOM PAGES
   ══════════════════════════════════════════════════════════════════════
   ONE canonical copy. Loaded by index.html and by rooms/*.html. Never
   fork it, never inline a second copy into a page — two copies of a
   shared component drift, and a drifted component is a defect in eight
   places at once.

   This file owns ONLY the field itself. Page-specific typography and
   character sizing stay in the page that owns them: index.html keeps
   its .room-index nameplate block, room.css keeps the room layouts.
   Nothing here is scoped to a page, and nothing here touches content.

   Absolutely positioned against <body>, so it spans the ENTIRE document
   including the footer — the old field was inside .page and stopped
   short, which is why the bottom of every page was bare sky.
   Layer 1: above the sky (0), below all content (.page and .foot are
   z-index 2 in room.css). Positions are solved in JS against measured
   content rectangles — see assets/decor-engine.js. Nothing here is
   hand-placed and nothing is allowed to collide.
   ══════════════════════════════════════════════════════════════════════ */

body{position:relative}

.decorfield{
  position:absolute; top:0; left:0; width:100%; height:0;
  z-index:1; pointer-events:none; overflow:hidden;
}
.decor{
  position:absolute; display:block; height:auto;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.26));
  animation-name:decorfloat; animation-timing-function:ease-in-out;
  animation-iteration-count:infinite; will-change:transform;
}
@keyframes decorfloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%    {transform:translateY(-12px) rotate(3deg)}
}
@media (prefers-reduced-motion:reduce){ .decor{animation:none} }

/* ⚠ THE LEGACY GEM FIELD IS RETIRED.
   room.css still carries ~7,800 generated `.gem:nth-child` rules from the
   old pre-baked field. Every page has had its .gemfield markup removed, so
   those rules now match nothing. They are inert, not active. Do not
   re-introduce a .gemfield to any page: pre-generated coordinates can only
   ever be correct at the width they were generated for, the field was
   nested inside .page so it stopped short of the footer, and it was hidden
   outright below 1100px. All three defects are why this file exists. */
