    /* Challenge descendants retain the historical compact reset. The shared
       shell owns the canvas, typography foundation, and complete navigation. */
    .wao-challenge-page *, .wao-challenge-page *::before, .wao-challenge-page *::after { margin: 0; padding: 0; }

    /* ===== Layout ===== */
    .screen {
      display: none;
      width: 100%;
      max-width: 680px;
      padding: 1.75rem 1.5rem 4rem;
      flex-direction: column;
      align-items: center;
      gap: 1.25rem;
    }
    .screen.active { display: flex; }

    /* ===== Screen label (replaces per-screen wao-logo) ===== */
    .screen-label {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(124, 111, 255, 0.55);
      text-align: center;
    }

    /* ===== Hero (Screen 1 only) ===== */
    .hero-block {
      text-align: center;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      padding: 0.25rem 0 0.5rem;
    }
    .hero-headline {
      font-size: 1.85rem;
      font-weight: 900;
      line-height: 1.2;
      color: #ffffff;
      letter-spacing: -0.01em;
    }
    .hero-sub {
      font-size: 1rem;
      color: rgba(240, 240, 245, 0.6);
      line-height: 1.5;
    }

    /* ===== Prompt card ===== */
    .prompt-card {
      background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
      border: 1px solid rgba(124, 111, 255, 0.3);
      border-radius: 16px;
      padding: 1.75rem;
      width: 100%;
      text-align: center;
    }
    .prompt-label {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: #7c6fff;
      margin-bottom: 0.65rem;
    }
    .prompt-text {
      font-size: 1.35rem;
      font-weight: 700;
      line-height: 1.4;
      color: #ffffff;
    }
    .format-identity {
      width: 100%;
      margin-bottom: 0.75rem;
      padding: 0.8rem 1rem;
      border: 1px solid rgba(124,111,255,0.32);
      border-radius: 12px;
      background: linear-gradient(135deg, rgba(124,111,255,0.14), rgba(168,85,247,0.07));
      text-align: left;
    }
    .format-kicker {
      display: block;
      margin-bottom: 0.25rem;
      color: rgba(240,240,245,0.48);
      font-size: 0.66rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .format-name {
      color: #c6c0ff;
      font-size: 1rem;
      font-weight: 800;
      line-height: 1.25;
    }
    .answer-guidance {
      width: 100%;
      margin: -0.2rem 0 0.7rem;
      color: rgba(240,240,245,0.58);
      font-size: 0.84rem;
      line-height: 1.45;
      text-align: left;
    }

    /* ===== Answer input ===== */
    .answer-input {
      width: 100%;
      background: rgba(255,255,255,0.06);
      border: 2px solid rgba(124,111,255,0.3);
      border-radius: 12px;
      padding: 1rem 1.25rem;
      font-size: 1.1rem;
      color: #f0f0f5;
      resize: none;
      min-height: 80px;
      transition: border-color 0.2s;
      font-family: inherit;
    }
    .answer-input:focus {
      outline: none;
      border-color: #7c6fff;
    }
    .answer-input::placeholder { color: rgba(240,240,245,0.35); }

    /* ===== How-it-works strip ===== */
    .how-it-works {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      width: 100%;
      padding: 0.1rem 0;
    }
    .hiw-step {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.78rem;
      color: rgba(240, 240, 245, 0.4);
      font-weight: 500;
    }
    .hiw-num {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(124, 111, 255, 0.18);
      border: 1px solid rgba(124, 111, 255, 0.3);
      color: #7c6fff;
      font-size: 0.68rem;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .hiw-arrow {
      color: rgba(124, 111, 255, 0.3);
      font-size: 0.75rem;
      padding: 0 0.5rem;
    }
    @media (max-width: 420px) {
      .how-it-works { flex-direction: column; gap: 0.4rem; }
      .hiw-arrow { display: none; }
    }

    /* ===== Buttons ===== */
    .btn-primary {
      width: 100%;
      padding: 1rem;
      background: linear-gradient(135deg, #7c6fff, #5b4de8);
      border: none;
      border-radius: 12px;
      color: #fff;
      font-size: 1.05rem;
      font-weight: 700;
      cursor: pointer;
      transition: opacity 0.2s, transform 0.1s;
    }
    .btn-primary:hover { opacity: 0.9; }
    .btn-primary:active { transform: scale(0.98); }
    .btn-primary:disabled { opacity: 0.45; cursor: not-allowed; }

    .btn-secondary {
      width: 100%;
      padding: 0.85rem;
      background: transparent;
      border: 2px solid rgba(124,111,255,0.4);
      border-radius: 12px;
      color: #7c6fff;
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: border-color 0.2s, background 0.2s;
    }
    .btn-secondary:hover {
      border-color: #7c6fff;
      background: rgba(124,111,255,0.08);
    }

    /* ===== Auth gate overlay ===== */
    .auth-overlay {
      position: fixed;
      inset: 0;
      background: rgba(13,13,20,0.92);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 100;
      padding: 1.5rem;
    }
    .auth-box {
      background: #1a1a2e;
      border: 1px solid rgba(124,111,255,0.3);
      border-radius: 20px;
      padding: 2rem;
      width: 100%;
      max-width: 480px;
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
    }
    .auth-title {
      font-size: 1.3rem;
      font-weight: 700;
      text-align: center;
    }
    .auth-subtitle {
      font-size: 0.9rem;
      color: rgba(240,240,245,0.6);
      text-align: center;
    }
    .auth-input {
      width: 100%;
      background: rgba(255,255,255,0.06);
      border: 2px solid rgba(124,111,255,0.3);
      border-radius: 10px;
      padding: 0.85rem 1rem;
      font-size: 1rem;
      color: #f0f0f5;
      font-family: inherit;
      transition: border-color 0.2s;
    }
    .auth-input:focus { outline: none; border-color: #7c6fff; }
    .auth-input::placeholder { color: rgba(240,240,245,0.35); }

    /* Avatar grid */
    .avatar-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
      gap: 0.75rem;
      max-height: 280px;
      overflow-y: auto;
      padding: 0.5rem;
      background: rgba(255,255,255,0.03);
      border-radius: 10px;
    }
    .avatar-card {
      position: relative;
      overflow: hidden;
      background: rgba(255,255,255,0.06);
      border: 2px solid transparent;
      border-radius: 10px;
      padding: 0.6rem;
      color: inherit;
      font: inherit;
      cursor: pointer;
      text-align: center;
      transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
    }
    .avatar-card::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      opacity: 0;
      background: linear-gradient(110deg, transparent 20%, rgba(155,144,255,0.16) 45%, transparent 70%);
      transform: translateX(-110%);
    }
    .avatar-card:hover,.avatar-card:focus-visible { transform: translateY(-5px) scale(1.035); border-color: rgba(124,111,255,0.62); background: rgba(124,111,255,0.12); box-shadow: 0 16px 34px rgba(0,0,0,0.3),0 0 24px rgba(124,111,255,0.16); outline: none; }
    .avatar-card:hover::before,.avatar-card:focus-visible::before { opacity: 1; animation: avatar-shimmer 1.25s ease-out; }
    .avatar-card.selected { transform: translateY(-3px); border-color: #9b90ff; background: rgba(124,111,255,0.2); box-shadow: 0 0 0 2px rgba(124,111,255,0.18),0 14px 30px rgba(0,0,0,0.28); }
    .avatar-img { width: 64px; height: 64px; border: 2px solid rgba(255,255,255,0.1); border-radius: 50%; object-fit: cover; transition: border-color .25s ease,box-shadow .25s ease; }
    .avatar-card:hover .avatar-img,.avatar-card:focus-visible .avatar-img { border-color: rgba(155,144,255,.65); box-shadow:0 0 18px rgba(124,111,255,.28); }
    .avatar-card.rarity-common { --rarity-rgb: 156,163,175; border-color:rgba(var(--rarity-rgb),.3); }
    .avatar-card.rarity-uncommon { --rarity-rgb: 16,185,129; border-color:rgba(var(--rarity-rgb),.3); }
    .avatar-card.rarity-rare { --rarity-rgb: 59,130,246; border-color:rgba(var(--rarity-rgb),.3); }
    .avatar-card.rarity-epic { --rarity-rgb: 139,92,246; border-color:rgba(var(--rarity-rgb),.3); }
    .avatar-card.rarity-legendary { --rarity-rgb: 245,158,11; border-color:rgba(var(--rarity-rgb),.3); }
    .avatar-card[class*="rarity-"]:hover,.avatar-card[class*="rarity-"]:focus-visible { border-color:rgba(var(--rarity-rgb),.65); box-shadow:0 16px 34px rgba(0,0,0,.3),0 0 28px rgba(var(--rarity-rgb),.2); }
    .avatar-card[class*="rarity-"].selected { border-color:rgba(var(--rarity-rgb),.9); box-shadow:0 0 0 2px rgba(var(--rarity-rgb),.2),0 14px 30px rgba(0,0,0,.28); }
    .avatar-name { font-size: 0.7rem; margin-top: 0.35rem; color: rgba(240,240,245,0.7); }
    @keyframes avatar-shimmer { from { transform:translateX(-110%); } to { transform:translateX(110%); } }
    .auth-success { display:none; text-align:center; }
    .auth-success.is-visible { display:block; animation:auth-success-in .38s ease-out both; }
    .auth-success-media { position:relative; width:clamp(150px,38vw,210px); aspect-ratio:1; margin:0 auto 1rem; overflow:hidden; border:3px solid rgba(124,111,255,.72); border-radius:50%; background:#171522; box-shadow:0 0 0 7px rgba(124,111,255,.12),0 22px 55px rgba(0,0,0,.38),0 0 42px rgba(124,111,255,.3); }
    .auth-success-media img,.auth-success-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .auth-success-media video { z-index:2; opacity:0; transition:opacity .2s ease; }
    .auth-success-media.is-playing video { opacity:1; }
    .auth-success-title { margin:0; font-size:clamp(2rem,8vw,3rem); line-height:1; letter-spacing:-.045em; }
    .auth-success-copy { margin:.65rem 0 0; color:rgba(240,240,245,.68); }
    @keyframes auth-success-in { from { opacity:0; transform:translateY(12px) scale(.96); } to { opacity:1; transform:none; } }

    /* ===== Generation experience ===== */
    #screen-generating { max-width: 590px; }
    .generation-card {
      width: 100%;
      padding: 1.7rem;
      overflow: hidden;
      position: relative;
      background:
        radial-gradient(circle at 50% 0%, rgba(124,111,255,0.18), transparent 48%),
        linear-gradient(145deg, rgba(26,26,46,0.98), rgba(17,18,34,0.98));
      border: 1px solid rgba(124,111,255,0.34);
      border-radius: 22px;
      box-shadow: 0 22px 60px rgba(0,0,0,0.28);
      text-align: center;
    }
    .generation-orbit {
      width: 92px;
      height: 92px;
      margin: 0 auto 1.25rem;
      position: relative;
      display: grid;
      place-items: center;
    }
    .generation-orbit::before,
    .generation-orbit::after {
      content: '';
      position: absolute;
      border-radius: 50%;
    }
    .generation-orbit::before {
      inset: 5px;
      border: 2px dashed rgba(124,111,255,0.38);
      animation: orbit-spin 5s linear infinite;
    }
    .generation-orbit::after {
      inset: 20px;
      background: linear-gradient(135deg, #8b7cff, #5b4de8);
      box-shadow: 0 0 30px rgba(124,111,255,0.42);
      animation: idea-pulse 1.8s ease-in-out infinite;
    }
    .generation-mark {
      position: relative;
      z-index: 2;
      color: white;
      font-size: 1.65rem;
      font-weight: 900;
      transform: rotate(-8deg);
    }
    .generation-spark {
      width: 13px;
      height: 13px;
      position: absolute;
      top: 1px;
      left: 39px;
      z-index: 3;
      background: #ffd75e;
      clip-path: polygon(50% 0, 61% 37%, 100% 50%, 61% 63%, 50% 100%, 39% 63%, 0 50%, 39% 37%);
      animation: spark-orbit 2.3s linear infinite;
      transform-origin: 7px 45px;
    }
    @keyframes orbit-spin { to { transform: rotate(360deg); } }
    @keyframes spark-orbit { to { transform: rotate(360deg); } }
    @keyframes idea-pulse { 50% { transform: scale(1.09) rotate(4deg); border-radius: 42%; } }

    .generating-kicker {
      color: rgba(240,240,245,0.48);
      font-size: 0.7rem;
      font-weight: 800;
      letter-spacing: 0.13em;
      text-transform: uppercase;
    }
    .generating-answer {
      margin: 0.45rem auto 1rem;
      max-width: 470px;
      color: #fff;
      font-size: clamp(1.2rem, 4vw, 1.65rem);
      font-style: italic;
      font-weight: 750;
      line-height: 1.3;
      overflow-wrap: anywhere;
    }
    .generating-context {
      margin-bottom: 1.25rem;
      color: rgba(240,240,245,0.56);
      font-size: 0.82rem;
      line-height: 1.5;
    }
    .generating-challenge {
      display: block;
    }
    .generating-format {
      display: block;
      margin-top: 0.25rem;
      color: rgba(190,182,255,0.92);
      font-size: 0.78rem;
      font-weight: 700;
    }
    .generation-progress-track {
      width: 100%;
      height: 8px;
      overflow: hidden;
      background: rgba(255,255,255,0.075);
      border-radius: 999px;
    }
    .generation-progress-bar {
      width: 7%;
      height: 100%;
      position: relative;
      overflow: hidden;
      background: linear-gradient(90deg, #6557e8, #9a7cff, #ff79b8);
      border-radius: inherit;
      box-shadow: 0 0 18px rgba(124,111,255,0.45);
      transition: width 0.45s ease-out;
    }
    .generation-progress-bar::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
      animation: progress-shimmer 1.6s ease-in-out infinite;
      transform: translateX(-100%);
    }
    @keyframes progress-shimmer { to { transform: translateX(100%); } }
    .generating-label {
      min-height: 1.4em;
      margin-top: 0.9rem;
      color: rgba(240,240,245,0.82);
      font-size: 0.95rem;
      font-weight: 650;
    }
    .generating-sub {
      margin-top: 0.5rem;
      color: rgba(240,240,245,0.42);
      font-size: 0.78rem;
      line-height: 1.45;
    }
    @media (prefers-reduced-motion: reduce) {
      .generation-orbit::before, .generation-orbit::after, .generation-spark,
      .generation-progress-bar::after { animation: none; }
    }

    /* ===== Generated image ===== */
    .generated-image {
      width: 100%;
      border-radius: 16px;
      border: 2px solid rgba(124,111,255,0.3);
      display: block;
    }
    .waiting-answer {
      width: 100%;
      margin-top: -0.15rem;
      padding: 0 0.25rem;
      color: rgba(240,240,245,0.68);
      font-size: 0.9rem;
      font-style: italic;
      line-height: 1.4;
      text-align: left;
    }
    .waiting-answer-label {
      margin-right: 0.35rem;
      color: rgba(240,240,245,0.42);
      font-size: 0.72rem;
      font-style: normal;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    /* ===== Waiting screen headline ===== */
    .waiting-headline {
      font-size: 1.5rem;
      font-weight: 800;
      text-align: center;
      color: #ffffff;
      line-height: 1.25;
    }
    .waiting-subhead {
      font-size: 0.9rem;
      color: rgba(240,240,245,0.5);
      text-align: center;
    }
    /* Contest-ready state */
    .contest-ready-banner {
      width: 100%;
      background: rgba(124,111,255,0.12);
      border: 1px solid rgba(124,111,255,0.4);
      border-radius: 12px;
      padding: 1rem 1.25rem;
      text-align: center;
      display: none;
      flex-direction: column;
      gap: 0.5rem;
    }
    .contest-ready-banner.visible { display: flex; }
    .contest-ready-title {
      font-size: 1rem;
      font-weight: 700;
      color: #f0f0f5;
    }
    .contest-ready-sub {
      font-size: 0.82rem;
      color: rgba(240,240,245,0.55);
      line-height: 1.5;
    }
    .btn-start-vote {
      width: 100%;
      padding: 1rem;
      background: linear-gradient(135deg, #7c6fff, #5b4de8);
      border: none;
      border-radius: 12px;
      color: #fff;
      font-size: 1.05rem;
      font-weight: 700;
      cursor: pointer;
      transition: opacity 0.2s, transform 0.1s;
      display: none;
    }
    .btn-start-vote.visible { display: block; }
    .btn-start-vote:hover { opacity: 0.9; }
    .btn-start-vote:active { transform: scale(0.98); }
    .btn-copy-link-secondary {
      width: 100%;
      padding: 0.85rem;
      background: transparent;
      border: 2px solid rgba(124,111,255,0.4);
      border-radius: 12px;
      color: #7c6fff;
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: border-color 0.2s, background 0.2s;
    }
    .btn-copy-link-secondary:hover {
      border-color: #7c6fff;
      background: rgba(124,111,255,0.08);
    }
    /* 1-entry: copy link as primary CTA */
    .btn-copy-invite-primary {
      width: 100%;
      padding: 1rem;
      background: linear-gradient(135deg, #7c6fff, #5b4de8);
      border: none;
      border-radius: 12px;
      color: #fff;
      font-size: 1.05rem;
      font-weight: 700;
      cursor: pointer;
      transition: opacity 0.2s, transform 0.1s;
      display: none;
    }
    .btn-copy-invite-primary.visible { display: block; }
    .btn-copy-invite-primary:hover { opacity: 0.9; }
    .btn-copy-invite-primary:active { transform: scale(0.98); }
    /* Voted state on voting screen */
    .voted-state-box {
      width: 100%;
      background: rgba(124,111,255,0.08);
      border: 1px solid rgba(124,111,255,0.25);
      border-radius: 14px;
      padding: 1.5rem 1.25rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.6rem;
      text-align: center;
    }
    .voted-state-headline {
      font-size: 1.2rem;
      font-weight: 800;
      color: #ffffff;
    }
    .voted-state-sub {
      font-size: 0.88rem;
      color: rgba(240,240,245,0.55);
      line-height: 1.5;
    }
    .btn-view-results {
      width: 100%;
      padding: 1rem;
      background: linear-gradient(135deg, #ffc832, #e8a800);
      border: none;
      border-radius: 12px;
      color: #0d0d14;
      font-size: 1.05rem;
      font-weight: 800;
      cursor: pointer;
      transition: opacity 0.2s, transform 0.1s;
      display: none;
    }
    .btn-view-results.visible { display: block; }
    .btn-view-results:hover { opacity: 0.9; }
    .btn-view-results:active { transform: scale(0.98); }

    /* ===== Invite box ===== */
    .invite-box {
      width: 100%;
      background: rgba(124,111,255,0.08);
      border: 1px solid rgba(124,111,255,0.3);
      border-radius: 12px;
      padding: 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }
    .invite-label {
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #7c6fff;
    }
    .invite-link-row {
      display: flex;
      gap: 0.5rem;
    }
    .invite-link-text {
      flex: 1;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(124,111,255,0.2);
      border-radius: 8px;
      padding: 0.6rem 0.85rem;
      font-size: 0.85rem;
      color: rgba(240,240,245,0.8);
      word-break: break-all;
    }
    .btn-copy {
      padding: 0.6rem 1rem;
      background: rgba(124,111,255,0.2);
      border: 1px solid rgba(124,111,255,0.4);
      border-radius: 8px;
      color: #7c6fff;
      font-size: 0.85rem;
      font-weight: 600;
      cursor: pointer;
      white-space: nowrap;
      transition: background 0.2s;
    }
    .btn-copy:hover { background: rgba(124,111,255,0.35); }

    /* ===== Entry counter ===== */
    .entry-counter {
      font-size: 0.9rem;
      color: rgba(240,240,245,0.55);
      text-align: center;
    }
    .entry-counter strong { color: #f0f0f5; }

    /* ===== Voting grid ===== */
    .entries-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 1rem;
      width: 100%;
    }
    .entry-card {
      background: rgba(255,255,255,0.04);
      border: 2px solid rgba(255,255,255,0.08);
      border-radius: 14px;
      overflow: hidden;
      cursor: pointer;
      transition: border-color 0.2s, transform 0.15s;
      position: relative;
    }
    .entry-card:hover { transform: translateY(-3px) scale(1.015); z-index: 2; }
    .entry-card:hover:not(.own-entry):not(.voted) {
      border-color: rgba(124,111,255,0.6);
    }
    .entry-card.selected-vote { border-color: #7c6fff; background: rgba(124,111,255,0.1); }
    .entry-card.own-entry { cursor: default; opacity: 0.7; }
    .entry-card img { width: 100%; display: block; aspect-ratio: 1; object-fit: cover; }
    .entry-image-wrap { position: relative; overflow: hidden; }
    .entry-expand {
      position: absolute;
      right: 0.65rem;
      bottom: 0.65rem;
      width: 2.15rem;
      height: 2.15rem;
      border: 1px solid rgba(255,255,255,0.32);
      border-radius: 50%;
      background: rgba(13,13,20,0.52);
      color: #fff;
      font-size: 1rem;
      line-height: 1;
      cursor: zoom-in;
      display: grid;
      place-items: center;
      opacity: 0.58;
      transition: opacity 0.15s, transform 0.15s, background 0.15s;
      z-index: 3;
    }
    .entry-expand:hover, .entry-expand:focus-visible {
      opacity: 1;
      transform: scale(1.08);
      background: rgba(91,77,232,0.95);
      outline: 2px solid #fff;
      outline-offset: 2px;
    }
    .image-modal {
      position: fixed;
      inset: 0;
      z-index: 200;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      background: rgba(5,5,10,0.94);
      backdrop-filter: blur(8px);
    }
    .image-modal.visible { display: flex; }
    .image-modal-dialog { position: relative; max-width: min(94vw, 980px); }
    .image-modal-img {
      display: block;
      max-width: 100%;
      max-height: 82vh;
      width: auto;
      height: auto;
      border-radius: 14px;
      box-shadow: 0 24px 80px rgba(0,0,0,0.65);
    }
    .image-modal-caption {
      margin-top: 0.75rem;
      text-align: center;
      color: rgba(240,240,245,0.88);
      font-size: 1rem;
      font-style: italic;
    }
    .image-modal-close {
      position: absolute;
      top: -0.8rem;
      right: -0.8rem;
      width: 2.8rem;
      height: 2.8rem;
      border: 1px solid rgba(255,255,255,0.5);
      border-radius: 50%;
      background: #171722;
      color: #fff;
      font-size: 1.55rem;
      cursor: pointer;
      display: grid;
      place-items: center;
    }
    .entry-card-body { padding: 0.85rem 3.45rem 0.85rem 0.85rem; }
    .entry-answer {
      font-size: 0.9rem;
      font-style: italic;
      color: rgba(240,240,245,0.85);
      margin-bottom: 0.5rem;
      line-height: 1.4;
    }
    .entry-player {
      font-size: 0.78rem;
      color: rgba(240,240,245,0.45);
    }
    .own-badge {
      display: inline-block;
      font-size: 0.7rem;
      background: rgba(124,111,255,0.2);
      color: #7c6fff;
      border-radius: 4px;
      padding: 0.15rem 0.4rem;
      margin-left: 0.35rem;
    }

    /* ===== Results ===== */
    .results-list {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }
    .results-loading-card { position:relative; width:100%; min-height:clamp(420px,70vw,680px); overflow:hidden; border:1px solid rgba(255,200,50,.28); border-radius:18px; background:linear-gradient(145deg,rgba(29,25,28,.98),rgba(16,15,17,.98)); }
    .results-loading-card::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg,transparent 18%,rgba(255,255,255,.045) 38%,transparent 58%); background-size:220% 100%; animation:results-loading-shimmer 1.35s linear infinite; }
    .results-loading-tab { position:absolute; top:0; left:50%; width:128px; height:34px; transform:translateX(-50%); border-radius:0 0 11px 11px; background:rgba(255,200,50,.18); }
    .results-loading-identity { position:absolute; top:70px; left:50%; width:min(290px,62%); height:72px; transform:translateX(-50%); border-radius:40px; background:rgba(255,255,255,.04); }
    .results-loading-image { position:absolute; top:170px; left:50%; width:min(560px,82%); aspect-ratio:1; transform:translateX(-50%); border-radius:14px; background:rgba(255,255,255,.035); }
    .results-actions[hidden] { display:none; }
    @keyframes results-loading-shimmer { to { background-position:-220% 0; } }
    /* Base result card */
    .result-card {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 14px;
      overflow: hidden;
      display: flex;
      gap: 1rem;
      padding: 1rem;
      align-items: flex-start;
    }

    /* Winner card — dominant layout */
    .result-card.rank-1 {
      border-color: rgba(255, 200, 50, 0.55);
      background: linear-gradient(145deg,rgba(29,25,28,.98),rgba(16,15,17,.98));
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 2.6rem clamp(1rem,4vw,2rem) 2rem;
      position: relative;
      box-shadow: 0 0 32px rgba(255, 200, 50, 0.12);
    }
    .result-card.rank-1.is-revealing { animation:winner-card-enter .52s cubic-bezier(.2,.75,.25,1) both,winner-border-settle 1.15s ease-out both; }
    .result-card.rank-1::before { content:'🏆 WINNER'; position:absolute; top:-1px; left:50%; transform:translateX(-50%); padding:.42rem 1.15rem .48rem; border-radius:0 0 11px 11px; color:#121016; background:linear-gradient(135deg,#ffd75a,#edae08); font-size:.7rem; font-weight:950; letter-spacing:.14em; }
    .result-card.rank-1.is-revealing::before { animation:winner-tab-drop .58s cubic-bezier(.18,.85,.3,1.25) .12s both; }
    .winner-identity { display:flex; align-items:center; justify-content:center; gap:.85rem; width:100%; margin:.35rem 0 .65rem; }
    .winner-avatar { position:relative; width:clamp(72px,14vw,96px); aspect-ratio:1; flex:0 0 auto; overflow:hidden; border:3px solid #ffc832; border-radius:50%; background:#171522; box-shadow:0 0 0 5px rgba(255,200,50,.1),0 12px 30px rgba(0,0,0,.35); }
    .winner-avatar img,.winner-avatar video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .winner-avatar video { z-index:2; opacity:0; transition:opacity .2s ease; }
    .winner-avatar.is-playing video { opacity:1; }
    .winner-copy { min-width:0; text-align:left; }
    .winner-kicker { color:#d8b94f; font-size:.62rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
    .winner-name { margin:.15rem 0 0; overflow-wrap:anywhere; font-size:clamp(1.5rem,5vw,2.15rem); line-height:1; letter-spacing:-.045em; color:#fff; }
    .result-card.rank-1 .result-img {
      width: 100%;
      max-width: 560px;
      height: auto;
      aspect-ratio: 1;
      border-radius: 12px;
      margin-top: .4rem;
    }
    .result-card.rank-1.is-revealing .winner-identity { animation:winner-content-in .42s ease-out .18s both; }
    .result-card.rank-1.is-revealing .result-image-open { animation:winner-content-in .48s ease-out .28s both; }
    .result-card.rank-1.is-revealing .result-info { animation:winner-content-in .42s ease-out .38s both; }
    @keyframes winner-card-enter { from { opacity:0; transform:translateY(18px) scale(.985); } to { opacity:1; transform:none; } }
    @keyframes winner-border-settle { 0% { box-shadow:0 0 0 rgba(255,200,50,0); } 45% { box-shadow:0 0 44px rgba(255,200,50,.24); } 100% { box-shadow:0 0 32px rgba(255,200,50,.12); } }
    @keyframes winner-tab-drop { from { opacity:0; transform:translate(-50%,-18px); } to { opacity:1; transform:translate(-50%,0); } }
    @keyframes winner-content-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
    @media (prefers-reduced-motion:reduce) { .result-card.rank-1.is-revealing,.result-card.rank-1.is-revealing::before,.result-card.rank-1.is-revealing .winner-identity,.result-card.rank-1.is-revealing .result-image-open,.result-card.rank-1.is-revealing .result-info { animation:none; } }
    .result-image-open { display:block; position:relative; width:100%; max-width:560px; margin:0 auto; padding:0; overflow:hidden; border:0; border-radius:14px; background:transparent; cursor:zoom-in; }
    .result-image-open::after { content:'⛶'; position:absolute; right:.65rem; bottom:.65rem; display:grid; place-items:center; width:2.2rem; height:2.2rem; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; background:rgba(8,8,12,.66); opacity:.65; transition:opacity .18s,transform .18s; }
    .result-image-open:hover::after,.result-image-open:focus-visible::after { opacity:1; transform:scale(1.08); }
    .result-image-open .result-img { max-width:none!important; margin:0!important; }
    .result-card:not(.rank-1) .result-image-open { width:80px; flex:0 0 80px; margin:0; }
    .result-card:not(.rank-1) .result-image-open::after { right:.3rem; bottom:.3rem; width:1.7rem; height:1.7rem; font-size:.75rem; }
    .result-card.rank-1 .result-rank { display:none; }
    .result-card.rank-1 .result-rank {
      font-size: 2.4rem;
    }
    .result-card.rank-1 .result-answer {
      font-size: 1.1rem;
      color: rgba(240,240,245,0.95);
    }
    .result-card.rank-1 .result-player {
      font-size: 0.9rem;
      color: rgba(240,240,245,0.65);
    }
    .result-card.rank-1 .result-votes {
      font-size: 0.9rem;
    }
    .result-card.rank-1 .result-info {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
      align-items: center;
    }
    .result-card.rank-1 .result-prompt-inline {
      font-size: 0.75rem;
      color: rgba(240,240,245,0.4);
      text-align: center;
      font-style: normal;
      margin-bottom: 0.25rem;
    }
    .result-card.rank-1 .result-prompt-inline strong {
      font-size: 0.7rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(124,111,255,0.55);
      display: block;
      margin-bottom: 0.2rem;
    }
    .wao-winner-brand {
      font-size: 0.65rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(124,111,255,0.45);
      text-align: center;
      margin-top: 0.5rem;
      padding-top: 0.75rem;
      border-top: 1px solid rgba(124,111,255,0.15);
      width: 100%;
    }

    .result-rank {
      font-size: 1.8rem;
      font-weight: 900;
      min-width: 2.5rem;
      text-align: center;
      line-height: 1;
    }
    .rank-1 .result-rank { color: #ffc832; }
    .rank-2 .result-rank { color: #c0c0c0; }
    .rank-3 .result-rank { color: #cd7f32; }
    .result-img {
      width: 80px;
      height: 80px;
      border-radius: 10px;
      object-fit: cover;
      flex-shrink: 0;
    }
    .result-info { flex: 1; }
    .result-answer {
      font-size: 0.95rem;
      font-style: italic;
      color: rgba(240,240,245,0.9);
      margin-bottom: 0.35rem;
      line-height: 1.4;
    }
    .result-player { font-size: 0.8rem; color: rgba(240,240,245,0.5); }
    .result-votes {
      font-size: 0.8rem;
      font-weight: 700;
      color: #7c6fff;
      margin-top: 0.35rem;
    }

    /* ===== Section headings ===== */
    .section-heading {
      font-size: 1.5rem;
      font-weight: 800;
      text-align: center;
      color: #ffffff;
    }
    .section-sub {
      font-size: 0.88rem;
      color: rgba(240,240,245,0.5);
      text-align: center;
    }

    /* ===== Results prompt label ===== */
    .results-prompt-label {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(124, 111, 255, 0.6);
      text-align: center;
    }

    /* ===== Late arrival ===== */
    .late-icon { font-size: 3rem; text-align: center; }

    /* ===== Error / status messages ===== */
    .status-msg {
      font-size: 0.88rem;
      color: rgba(240,240,245,0.55);
      text-align: center;
    }
    .error-msg {
      font-size: 0.88rem;
      color: #ff6b6b;
      text-align: center;
    }

    /* ===== Voted state ===== */
    .voted-msg {
      font-size: 0.95rem;
      color: rgba(240,240,245,0.6);
      text-align: center;
      padding: 0.75rem;
      background: rgba(124,111,255,0.08);
      border-radius: 10px;
      width: 100%;
    }
