/* site.css (round 14, lane SITE): The Standing, Halls, the Grimwood, Guide, Admin. Loaded after gw-ui.css. */

/* U6-06: the "join the Discord" banner (nav.js) sits above the fixed forest art, not under it */
#gw-member-banner { position:relative; z-index:10; }

/* U6-15: baked whole-pixel wisp portraits (wisp/portrait/s/<size>/), shown 1:1 */
.gw-port { display:block; image-rendering:pixelated; image-rendering:crisp-edges; }
@media (min-resolution:1.25dppx) and (max-resolution:1.99dppx) { .gw-port { image-rendering:auto; } }   /* 125-199% zoom: a non-integer ratio either way; smooth beats dropped pixels */

/* Decision 2: guest rows render from `key` with no link; a monogram stands in for the avatar */
.gw-mono { display:inline-flex; align-items:center; justify-content:center; font-family:Georgia,'Times New Roman',serif; font-weight:700;
  color:rgba(var(--rcg,227,164,78),.9); background:radial-gradient(circle at 50% 35%, #262830, #15161b 70%); }
.guestrow { cursor:default; }
.guestrow:active { transform:none !important; box-shadow:none; }
.guestrow:focus-visible { outline:2px solid var(--accent,#e3a44e); outline-offset:2px; }
.gw-membersonly { display:flex; align-items:center; justify-content:center; gap:.5rem; margin:.4rem 0 1rem; font-size:.86rem; color:#a9a397; }
.gw-membersonly a { color:var(--accent,#e3a44e); text-decoration:none; font-weight:600; }
.gw-membersonly a:hover { text-decoration:underline; }
.gw-membersonly svg { width:15px; height:15px; opacity:.8; }

/* The Standing: overtaken since your last visit (dopamine #2) */
.rk-up { display:inline-flex; align-items:center; gap:.2rem; margin-left:.4rem; padding:1px 7px; border-radius:999px; font-size:.74rem; font-weight:800;
  color:#14210f; background:linear-gradient(180deg,#b9f39a,#5fcf73); box-shadow:0 0 12px rgba(95,207,115,.55); vertical-align:middle; }
.row.overtaking { z-index:5; box-shadow:0 0 0 1px rgba(var(--rcg,227,164,78),.8), 0 10px 30px rgba(0,0,0,.55), 0 0 26px rgba(var(--rcg,227,164,78),.45); }
.row .rk-up { position:absolute; right:.6rem; top:-.55rem; z-index:6; }
/* Top-3 crowning: one pass of a card finish on arrival (dopamine #6), reusing the .lbfin finishes */
.lbfin.crownpass { animation-duration:1.5s !important; animation-iteration-count:1 !important; animation-fill-mode:both !important; z-index:3; }

/* The Halls entrance (dopamine #7) */
.chapter.unfold { animation:gw-unfold .55s var(--gw-ease-out,ease-out) both; transform-origin:50% 0; }
@keyframes gw-unfold { from { opacity:0; transform:perspective(700px) rotateX(-14deg) translateY(-6px); } to { opacity:1; transform:none; } }
.carve > span { display:inline-block; opacity:0; animation:gw-carve .32s ease-out forwards; white-space:pre; }
@keyframes gw-carve { 0% { opacity:0; transform:translateY(-3px) scale(1.3); text-shadow:0 0 12px rgba(255,214,140,.95); } 100% { opacity:1; transform:none; text-shadow:0 0 0 transparent; } }
.crank { position:relative; }
.crank .candle { position:absolute; left:50%; top:-12px; width:6px; height:10px; margin-left:-3px; border-radius:50% 50% 45% 45% / 60% 60% 40% 40%;
  background:radial-gradient(circle at 50% 70%, #fff6d6 0 25%, #ffc35a 45%, rgba(255,140,40,0) 72%); opacity:0; transform:scale(.4) translateY(4px);
  transition:opacity .25s ease, transform .3s var(--gw-ease-spring,ease-out); pointer-events:none; filter:drop-shadow(0 0 5px rgba(255,180,80,.9)); }
.champ:hover .candle, .champ:focus-visible .candle { opacity:1; transform:none; animation:gw-candle 1.6s ease-in-out .3s infinite; }
@keyframes gw-candle { 0%,100% { transform:scale(1) rotate(-2deg); } 50% { transform:scale(1.08,1.15) rotate(3deg); } }
html.gw-calm .chapter.unfold, html.gw-calm .carve > span { animation:none !important; opacity:1; }
@media (prefers-reduced-motion: reduce) { .chapter.unfold, .carve > span, .champ .candle { animation:none !important; opacity:1; } .champ .candle { opacity:0; } .champ:hover .candle { opacity:1; } }
