Mudanças entre as edições de "Widget:Teste"

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
Linha 1: Linha 1:
<!-- Widget:Teste — CSS + JS do exemplo didático (colar na página Widget:Teste) -->
<style>
<style>
     .teste-caixa {
     /* {literal} */
        border: 1px solid #444;
    #fq-widget * { box-sizing: border-box; margin: 0; padding: 0; }
        border-radius: 6px;
   
        padding: 10px;
    #fq-widget {
        max-width: 36em;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
        font-family: system-ui, sans-serif;
      background: #ffffff;
      color: #202122;
      max-width: 780px;
      margin: 1rem 0;
      font-size: 0.9375rem;
      line-height: 1.6;
     }
     }
 
   
     .teste-caixa h3 {
     .fq-header { margin-bottom: 1.25rem; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
        margin: 0 0 8px;
    .fq-header-main { flex: 1; min-width: 12rem; }
        font-size: 1.1em;
    .fq-title  { font-size: 1.25rem; font-weight: 600; color: #202122; margin-bottom: 0.2rem; }
    .fq-sub    { font-size: 0.875rem; color: #54595d; }
    .fq-lang-wrap { flex-shrink: 0; }
    #fq-lang-select {
      font-size: 0.8125rem; padding: 0.35rem 0.5rem; border: 1px solid #a2a9b1; border-radius: 2px;
      background: #f8f9fa; color: #202122; cursor: pointer; max-width: 100%;
     }
     }
 
    #fq-lang-select:focus { outline: none; border-color: #36c; box-shadow: 0 0 0 2px rgba(51,102,204,0.15); }
     .teste-caixa .teste-corpo {
   
        margin: 0;
     .fq-weekly {
      display: flex; align-items: center; gap: 0.5rem;
      margin-bottom: 1.25rem; cursor: pointer; user-select: none; width: fit-content;
     }
     }
 
     .fq-checkbox {
     .teste-caixa .teste-corpo.teste-colapsado {
      display: flex; align-items: center; justify-content: center;
        max-height: 3.2em;
      width: 1.125rem; height: 1.125rem; border-radius: 3px;
        overflow: hidden;
      border: 1px solid #a2a9b1; flex-shrink: 0;
      background: #f8f9fa; transition: all 0.15s;
     }
     }
 
    .fq-checkbox.on { background: #36c; border-color: #36c; }
     .teste-caixa .teste-toggle {
     .fq-checkbox svg { display: none; }
        display: inline-block;
    .fq-checkbox.on svg { display: block; }
        margin-top: 8px;
    .fq-weekly-label { font-size: 0.875rem; color: #54595d; transition: color 0.15s; }
        padding: 4px 10px;
    .fq-weekly-label.on { color: #36c; font-weight: 500; }
        cursor: pointer;
    .fq-weekly:hover .fq-checkbox:not(.on) { border-color: #36c; }
        border: 1px solid #666;
    .fq-weekly:hover .fq-weekly-label:not(.on) { color: #36c; }
        border-radius: 4px;
   
        background: #f0f0f0;
    .fq-search-wrap { position: relative; margin-bottom: 0.75rem; }
        font: inherit;
    .fq-search-icon {
        user-select: none;
      position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%);
      color: #72777d; pointer-events: none; line-height: 0;
     }
     }
 
    #fq-input {
    .teste-caixa .teste-toggle:hover {
      width: 100%; background: #fff; border: 1px solid #a2a9b1;
        background: #e4e4e4;
      border-radius: 2px; padding: 0.45rem 2.5rem;
      font-size: 0.9375rem; color: #202122; outline: none;
      transition: border-color 0.15s, box-shadow 0.15s;
     }
     }
</style>
    #fq-input::placeholder { color: #72777d; }
<script>
    #fq-input:focus { border-color: #36c; box-shadow: 0 0 0 2px rgba(51,102,204,0.15); }
     (function () {
    #fq-clear {
         function init() {
      position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
            document.querySelectorAll('.teste-caixa').forEach(function (box) {
      background: none; border: none; color: #72777d; cursor: pointer;
                if (box.dataset.testeInit) return;
      line-height: 0; padding: 0; transition: color 0.15s;
                box.dataset.testeInit = '1';
    }
                var body = box.querySelector('.teste-corpo');
    #fq-clear:hover { color: #202122; }
                var btn = box.querySelector('.teste-toggle');
    #fq-clear.hidden { display: none; }
                if (!body || !btn) return;
   
                var aberto = false;
    #fq-stats { font-size: 0.8125rem; color: #54595d; margin-bottom: 0.75rem; }
                function toggle() {
    #fq-stats .vd  { color: #14866d; font-weight: 500; }
                    aberto = !aberto;
    #fq-stats .fa  { color: #c0392b; font-weight: 500; }
                    body.classList.toggle('teste-colapsado', !aberto);
    #fq-stats .sep { color: #a2a9b1; margin: 0 0.3rem; }
                    btn.textContent = aberto ? 'Recolher' : 'Expandir';
    #fq-stats.hidden { display: none; }
                }
   
                btn.addEventListener('click', toggle);
    .fq-msg { font-size: 0.875rem; color: #72777d; text-align: center; padding: 3rem 0; }
                btn.addEventListener('keydown', function (e) {
    .fq-msg.hidden { display: none; }
                    if (e.key === 'Enter' || e.key === ' ') {
   
                        e.preventDefault();
    #fq-results { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
                        toggle();
    #fq-results.hidden { display: none; }
                    }
   
                });
    .fq-item {
            });
      display: flex; align-items: flex-start; gap: 0.625rem;
      border: 1px solid; border-radius: 2px;
      padding: 0.625rem 0.875rem; font-size: 0.9rem; line-height: 1.55;
    }
    .fq-item.vd { background: #f0fdf4; border-color: #14866d; color: #14433a; }
    .fq-item.fa { background: #fff0f0; border-color: #c0392b; color: #5a1010; }
   
    .fq-badge {
      flex-shrink: 0; margin-top: 0.1rem;
      width: 1.125rem; height: 1.125rem; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-weight: 700; font-size: 0.7rem; color: #fff;
    }
    .fq-badge.vd { background: #14866d; }
    .fq-badge.fa { background: #c0392b; }
   
    mark { background: #fef08a; color: #713f12; border-radius: 1px; padding: 0 1px; }
    /* {/literal} */
    </style>
   
    <div id="fq-widget" data-fq-lang="">
      
      <div class="fq-header">
        <div class="fq-header-main">
          <h1 class="fq-title">Foxy Quiz</h1>
          <p class="fq-sub" id="fq-sub"></p>
        </div>
        <div class="fq-lang-wrap">
          <label for="fq-lang-select" class="fq-visually-hidden" id="fq-lang-label" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">Language</label>
          <select id="fq-lang-select" aria-labelledby="fq-lang-label">
            <option value="pt">Português</option>
            <option value="en">English</option>
            <option value="es">Español</option>
            <option value="pl">Polski</option>
          </select>
        </div>
      </div>
   
      <div class="fq-weekly" id="fq-weekly">
        <span class="fq-checkbox" id="fq-chk">
          <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"
              fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
            <polyline points="20 6 9 17 4 12"/>
          </svg>
        </span>
        <span class="fq-weekly-label" id="fq-lbl"></span>
      </div>
   
      <div class="fq-search-wrap">
        <span class="fq-search-icon">
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"
              viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
            <circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/>
          </svg>
        </span>
        <input id="fq-input" type="text" />
        <button id="fq-clear" class="hidden" type="button" aria-label="">
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"
              viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
            <path d="M18 6 6 18M6 6l12 12"/>
          </svg>
        </button>
      </div>
   
      <p id="fq-stats" class="hidden"></p>
      <div id="fq-tip"  class="fq-msg"></div>
      <div id="fq-nores" class="fq-msg hidden"></div>
      <ul id="fq-results" class="hidden"></ul>
   
    </div>
   
    <script>
    /* {literal} */
   
    var FQ_LANG_KEY = 'foxy-quiz-lang';
   
    var FQ_STRINGS = {
      pt: {
        langLabel: 'Idioma',
        sub: 'Pesquise uma afirmação para ver se ela é verdadeira ou falsa.',
        weeklyOff: 'Já recebi a recompensa do Foxy Quiz nesta semana!',
        weeklyDone: 'Foxy Quiz concluído em ',
        placeholder: 'Digite palavras-chave para pesquisar...',
        clearAria: 'Limpar',
        tip: 'Digite ao menos 2 caracteres para pesquisar.',
        nores: 'Nenhuma afirmação encontrada.',
         locale: 'pt-BR'
      },
      en: {
        langLabel: 'Language',
        sub: 'Search for a statement to see if it is true or false.',
        weeklyOff: 'I already claimed my Foxy Quiz reward this week!',
        weeklyDone: 'Foxy Quiz completed on ',
        placeholder: 'Type keywords to search...',
        clearAria: 'Clear',
        tip: 'Enter at least 2 characters to search.',
        nores: 'No matching statements found.',
        locale: 'en-US'
      },
      es: {
        langLabel: 'Idioma',
        sub: 'Busca una afirmación para ver si es verdadera o falsa.',
        weeklyOff: '¡Ya reclamé la recompensa del Foxy Quiz esta semana!',
        weeklyDone: 'Foxy Quiz completado el ',
        placeholder: 'Escribe palabras clave para buscar...',
        clearAria: 'Borrar',
        tip: 'Introduce al menos 2 caracteres para buscar.',
        nores: 'No se encontraron afirmaciones.',
        locale: 'es'
      },
      pl: {
        langLabel: 'Język',
        sub: 'Wyszukaj stwierdzenie, aby sprawdzić, czy jest prawdziwe, czy fałszywe.',
        weeklyOff: 'Odebrałem już nagrodę Foxy Quiz w tym tygodniu!',
        weeklyDone: 'Foxy Quiz ukończono ',
        placeholder: 'Wpisz słowa kluczowe, aby wyszukać...',
        clearAria: 'Wyczyść',
        tip: 'Wpisz co najmniej 2 znaki, aby wyszukać.',
        nores: 'Nie znaleziono stwierdzeń.',
        locale: 'pl-PL'
      }
    };
   
    function fqStatsHtml(n, t, f, lang) {
      if (lang === 'en') {
        return n + ' result' + (n !== 1 ? 's' : '') +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="vd">' + t + ' true</span>' +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="fa">' + f + ' false</span>';
      }
      if (lang === 'es') {
        return n + ' resultado' + (n !== 1 ? 's' : '') +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="vd">' + t + ' verdadero' + (t !== 1 ? 's' : '') + '</span>' +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="fa">' + f + ' falso' + (f !== 1 ? 's' : '') + '</span>';
      }
      if (lang === 'pl') {
        return n + ' wynik' + (n === 1 ? '' : (n < 5 ? 'i' : 'ów')) +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="vd">' + t + ' prawdziw' + (t === 1 ? 'e' : (t < 5 ? 'e' : 'ych')) + '</span>' +
          '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
          '<span class="fa">' + f + ' fałszyw' + (f === 1 ? 'e' : (f < 5 ? 'e' : 'ych')) + '</span>';
      }
      return n + ' resultado' + (n !== 1 ? 's' : '') +
        '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
        '<span class="vd">' + t + ' verdadeiro' + (t !== 1 ? 's' : '') + '</span>' +
        '<span class="sep">&nbsp;&middot;&nbsp;</span>' +
        '<span class="fa">' + f + ' falso' + (f !== 1 ? 's' : '') + '</span>';
    }
   
    var QUIZ_CORE = [
      { c: true, en: 'Eiichiro Oda is the creator of One Piece.', pt: 'Eiichiro Oda é o criador de One Piece.', es: 'Eiichiro Oda es el creador de One Piece.', pl: 'Eiichiro Oda jest twórcą One Piece.' },
      { c: true, en: 'Zeus is an One Piece character.', pt: 'Zeus é um personagem de One Piece.', es: 'Zeus es un personaje de One Piece.', pl: 'Zeus jest postacią z One Piece.' },
      { c: true, en: 'Neptune is an One Piece character.', pt: 'Neptune é um personagem de One Piece.', es: 'Neptuno es un personaje de One Piece.', pl: 'Neptun jest postacią z One Piece.' },
      { c: true, en: 'If the World Government had known that Crocodile was the head of Baroque Works, his bounty would be at least doubled to 162,000,000 berry.', pt: 'Se o Governo Mundial soubesse que Crocodile era o chefe da Baroque Works, sua recompensa pelo menos dobraria para 162.000.000 de berries.', es: 'Si el Gobierno Mundial hubiera sabido que Crocodile era el jefe de Baroque Works, su recompensa se habría duplicado al menos a 162.000.000 de berries.', pl: 'Gdyby Światowy Rząd wiedział, że Crocodile był szefem Baroque Works, jego nagroda wzrosłaby co najmniej dwukrotnie do 162 000 000 berry.' },
      { c: true, en: "Crocodile's dream was to become the Pirate King.", pt: 'O sonho de Crocodile era se tornar o Rei dos Piratas.', es: 'El sueño de Crocodile era convertirse en el Rey de los Piratas.', pl: 'Marzeniem Crocodile\'a zostało Królem Piratów.' },
      { c: true, en: 'Hancock is the first female character in the series capable of using all three forms of Haki.', pt: 'Hancock é a primeira personagem feminina da série capaz de usar as três formas de Haki.', es: 'Hancock es la primera personaje femenina de la serie capaz de usar las tres formas de Haki.', pl: 'Hancock jest pierwszą kobiecą postacią w serii zdolną do użycia wszystkich trzech form Haki.' },
      { c: true, en: 'Boa Hancock character has several references to Greek mythology.', pt: 'A personagem Boa Hancock tem várias referências à mitologia grega.', es: 'El personaje Boa Hancock tiene varias referencias a la mitología griega.', pl: 'Postać Boa Hancock zawiera kilka odniesień do greckiej mitologii.' },
      { c: true, en: 'If One Piece was set in the real world, then Luffy would be from Brazil.', pt: 'Se One Piece se passasse no mundo real, Luffy seria do Brasil.', es: 'Si One Piece se ambientara en el mundo real, Luffy sería de Brasil.', pl: 'Gdyby One Piece rozgrywało się w prawdziwym świecie, Luffy pochodziłby z Brazylii.' },
      { c: true, en: 'Buggy is the first villain to appear in the series who is a Devil Fruit user. He is the also first Devil Fruit user whom Luffy has fought.', pt: 'Buggy é o primeiro vilão da série que é usuário de Akuma no Mi. Também é o primeiro usuário de Akuma no Mi com quem Luffy lutou.', es: 'Buggy es el primer villano de la serie que es usuario de Fruta del Diablo. También es el primer usuario de Fruta del Diablo contra el que lucha Luffy.', pl: 'Buggy jest pierwszym antagonistą w serii użytkownikiem Diabelskiego Owocu. To także pierwszy taki przeciwnik, z którym walczy Luffy.' },
      { c: true, en: "Monkey D. Luffy's mother was not revealed yet.", pt: 'A mãe de Monkey D. Luffy ainda não foi revelada.', es: 'La madre de Monkey D. Luffy aún no ha sido revelada.', pl: 'Matka Monkey D. Luffy\'ego nie została jeszcze ujawniona.' },
      { c: true, en: "Portgas D. Ace is Gold Roger's son.", pt: 'Portgas D. Ace é filho de Gold Roger.', es: 'Portgas D. Ace es hijo de Gold Roger.', pl: 'Portgas D. Ace jest synem Gold Rogera.' },
      { c: true, en: "Portgas D. Ace is Rouge's son.", pt: 'Portgas D. Ace é filho de Rouge.', es: 'Portgas D. Ace es hijo de Rouge.', pl: 'Portgas D. Ace jest synem Rouge.' },
      { c: true, en: "Gum-Gum Fruit is the official name of Luffy's Devil Fruit in English.", pt: 'Fruta Gum-Gum é o nome oficial da Akuma no Mi do Luffy em inglês.', es: 'Gum-Gum Fruit es el nombre oficial de la Fruta del Diablo de Luffy en inglés.', pl: 'Gum-Gum Fruit to oficjalna angielska nazwa Diabelskiego Owocu Luffy\'ego.' },
      { c: true, en: 'Wapol is the first king shown in the series.', pt: 'Wapol é o primeiro rei mostrado na série.', es: 'Wapol es el primer rey que aparece en la serie.', pl: 'Wapol jest pierwszym królem pokazanym w serii.' },
      { c: true, en: 'Arlong is the only known individual to have been released from Impel Down.', pt: 'Arlong é o único indivíduo conhecido a ter sido solto de Impel Down.', es: 'Arlong es el único individuo conocido que ha sido liberado de Impel Down.', pl: 'Arlong jest jedyną znaną osobą, która została zwolniona z Impel Down.' },
      { c: true, en: 'Mr. 2 has the same voice actor as Franky and Jango.', pt: 'Mr. 2 tem o mesmo dublador que Franky e Jango.', es: 'Mr. 2 tiene el mismo actor de voz que Franky y Jango.', pl: 'Mr. 2 ma tego samego aktora głosowego co Franky i Jango.' },
      { c: true, en: 'Akainu has the same voice actor as Krieg.', pt: 'Akainu tem o mesmo dublador que Krieg.', es: 'Akainu tiene el mismo actor de voz que Krieg.', pl: 'Akainu ma tego samego aktora głosowego co Krieg.' },
      { c: true, en: 'Sanji in his childhood has the same voice actress as Chopper.', pt: 'Sanji na infância tem a mesma dubladora que Chopper.', es: 'Sanji de niño tiene la misma actriz de voz que Chopper.', pl: 'Sanji w dzieciństwie ma tę samą aktorkę głosową co Chopper.' },
      { c: true, en: 'Chopper has his voice actress changed in some episodes.', pt: 'A dubladora de Chopper foi trocada em alguns episódios.', es: 'La actriz de voz de Chopper cambió en algunos episodios.', pl: 'Aktorka głosowa Choppera została zmieniona w niektórych odcinkach.' },
      { c: true, en: 'Nico Robin was also known as Miss All Sunday.', pt: 'Nico Robin também era conhecida como Miss All Sunday.', es: 'Nico Robin también era conocida como Miss All Sunday.', pl: 'Nico Robin znana była też jako Miss All Sunday.' },
      { c: true, en: "Nico Robin's mother hair is white.", pt: 'O cabelo da mãe de Nico Robin é branco.', es: 'El pelo de la madre de Nico Robin es blanco.', pl: 'Włosy matki Nico Robin są białe.' },
      { c: true, en: "Yubashiri (One of Zoro's sword) rusted.", pt: 'Yubashiri (uma das espadas de Zoro) enferrujou.', es: 'Yubashiri (una de las espadas de Zoro) se oxidó.', pl: 'Yubashiri (jeden z mieczy Zoro) zardzewiał.' },
      { c: false, en: 'Masashi Kishimoto is the creator of One Piece.', pt: 'Masashi Kishimoto é o criador de One Piece.', es: 'Masashi Kishimoto es el creador de One Piece.', pl: 'Masashi Kishimoto jest twórcą One Piece.' },
      { c: false, en: 'Akira Toriyama is the creator of One Piece.', pt: 'Akira Toriyama é o criador de One Piece.', es: 'Akira Toriyama es el creador de One Piece.', pl: 'Akira Toriyama jest twórcą One Piece.' },
      { c: false, en: 'Frost is an One Piece character.', pt: 'Frost é um personagem de One Piece.', es: 'Frost es un personaje de One Piece.', pl: 'Frost jest postacią z One Piece.' },
      { c: false, en: 'The bounty of a Pirate reflects his strength.', pt: 'A recompensa de um pirata reflete sua força.', es: 'La recompensa de un pirata refleja su fuerza.', pl: 'Nagroda za pirata odzwierciedla jego siłę.' },
      { c: false, en: 'Franky was the first cyborg to appear in the series.', pt: 'Franky foi o primeiro ciborgue a aparecer na série.', es: 'Franky fue el primer cyborg en aparecer en la serie.', pl: 'Franky był pierwszym cyborgiem w serii.' },
      { c: false, en: "Teach's favorite food is apple pie.", pt: 'A comida favorita de Teach é torta de maçã.', es: 'La comida favorita de Teach es pastel de manzana.', pl: 'Ulubionym jedzeniem Teach\'a jest szarlotka.' },
      { c: false, en: "Monkey D. Garp is Luffy's real father.", pt: 'Monkey D. Garp é o pai biológico de Luffy.', es: 'Monkey D. Garp es el padre biológico de Luffy.', pl: 'Monkey D. Garp jest biologicznym ojcem Luffy\'ego.' },
      { c: false, en: "Pandaman is in Trafalgar Law's Crew.", pt: 'Pandaman está na tripulação de Trafalgar Law.', es: 'Pandaman está en la tripulación de Trafalgar Law.', pl: 'Pandaman jest w załodze Trafalgara Law.' },
      { c: false, en: 'Bepo is not a Mink.', pt: 'Bepo não é um Mink.', es: 'Bepo no es un Mink.', pl: 'Bepo nie jest Minkiem.' },
      { c: false, en: 'Gin has the same voice actor as Kuro.', pt: 'Gin tem o mesmo dublador que Kuro.', es: 'Gin tiene el mismo actor de voz que Kuro.', pl: 'Gin ma tego samego aktora głosowego co Kuro.' },
      { c: false, en: 'Perona has the same voice actress as Koala.', pt: 'Perona tem a mesma dubladora que Koala.', es: 'Perona tiene la misma actriz de voz que Koala.', pl: 'Perona ma tę samą aktorkę głosową co Koala.' },
      { c: false, en: 'Boa Hancock has the same voice actress as Reiju.', pt: 'Boa Hancock tem a mesma dubladora que Reiju.', es: 'Boa Hancock tiene la misma actriz de voz que Reiju.', pl: 'Boa Hancock ma tę samą aktorkę głosową co Reiju.' },
      { c: false, en: 'Dracule Mihawk had only one voice actor in the entire anime.', pt: 'Dracule Mihawk teve apenas um dublador em todo o anime.', es: 'Dracule Mihawk solo tuvo un actor de voz en todo el anime.', pl: 'Dracule Mihawk miał tylko jednego aktora głosowego w całym anime.' },
      { c: false, en: 'Luffy got his scar from a tiger in Foosha Village.', pt: 'Luffy ganhou sua cicatriz de um tigre na Vila Foosha.', es: 'Luffy se hizo la cicatriz por un tigre en la aldea Foosha.', pl: 'Luffy dostał bliznę od tygrysa we wsi Foosha.' },
      { c: false, en: "Sandai Kitetsu (One of Zoro's sword) rusted.", pt: 'Sandai Kitetsu (uma das espadas de Zoro) enferrujou.', es: 'Sandai Kitetsu (una de las espadas de Zoro) se oxidó.', pl: 'Sandai Kitetsu (jeden z mieczy Zoro) zardzewiał.' },
      { c: false, en: 'Ryuma had the shadow of a Legendary Wano samurai.', pt: 'Ryuma tinha a sombra de um samurai lendário de Wano.', es: 'Ryuma tenía la sombra de un samurái legendario de Wano.', pl: 'Ryuma miał cień legendarnego samuraja z Wano.' },
      { c: false, en: "Bartolomeo's Barrier broke only one time during the anime.", pt: 'A barreira de Bartolomeo quebrou apenas uma vez no anime.', es: 'La barrera de Bartolomeo solo se rompió una vez en el anime.', pl: 'Bariera Bartolomeo pękła tylko raz w anime.' },
      { c: false, en: 'Bartolomeo has the Nikyu Nikyu no Mi devil fruit.', pt: 'Bartolomeo possui a Akuma no Mi Nikyu Nikyu no Mi.', es: 'Bartolomeo tiene la Fruta del Diablo Nikyu Nikyu no Mi.', pl: 'Bartolomeo ma Diabelski Owoc Nikyu Nikyu no Mi.' }
    ];
   
    var FQ_KEY = 'foxy-quiz-weekly';
   
    var FQ_LANG = 'pt';
    var QUIZ_DATA = [];
    var IDX = [];
   
    function norm(s) {
      return s.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
    }
   
    function weekKey() {
      var now  = new Date();
      var diff = (now.getDay() - 5 + 7) % 7;
      var fri  = new Date(now);
      fri.setDate(now.getDate() - diff);
      return fri.toISOString().slice(0, 10);
    }
   
    function esc(s) {
      return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    }
   
    function highlight(texto, tokens) {
      var n = norm(texto);
      var ranges = [], i, t, idx, pos;
      for (i = 0; i < tokens.length; i++) {
        t = tokens[i]; idx = 0;
        while ((pos = n.indexOf(t, idx)) !== -1) {
          ranges.push([pos, pos + t.length]);
          idx = pos + 1;
         }
         }
         if (document.readyState === 'loading') {
      }
            document.addEventListener('DOMContentLoaded', init);
      if (!ranges.length) return esc(texto);
         } else {
      ranges.sort(function(a, b) { return a[0] - b[0]; });
            init();
      var merged = [], r, last;
      for (i = 0; i < ranges.length; i++) {
        r = ranges[i]; last = merged[merged.length - 1];
         if (last && r[0] <= last[1]) { if (r[1] > last[1]) last[1] = r[1]; }
        else { merged.push([r[0], r[1]]); }
      }
      var out = '', cur = 0, seg;
      for (i = 0; i < merged.length; i++) {
        seg = merged[i];
        out += esc(texto.slice(cur, seg[0]));
        out += '<mark>' + esc(texto.slice(seg[0], seg[1])) + '</mark>';
        cur  = seg[1];
      }
      return out + esc(texto.slice(cur));
    }
   
    function rebuildIndex() {
      var lang = FQ_LANG;
      var ii, row, t;
      QUIZ_DATA = [];
      for (ii = 0; ii < QUIZ_CORE.length; ii++) {
        row = QUIZ_CORE[ii];
        t = row[lang] || row.en;
        QUIZ_DATA.push({ correto: row.c, texto: t });
      }
      IDX = [];
      for (ii = 0; ii < QUIZ_DATA.length; ii++) {
        IDX.push({ e: QUIZ_DATA[ii], n: norm(QUIZ_DATA[ii].texto) });
      }
    }
   
    function applyUi() {
      var ui = FQ_STRINGS[FQ_LANG] || FQ_STRINGS.en;
      document.getElementById('fq-sub').textContent = ui.sub;
      document.getElementById('fq-lang-label').textContent = ui.langLabel;
      elInput.placeholder = ui.placeholder;
      elClear.setAttribute('aria-label', ui.clearAria);
      elTip.textContent = ui.tip;
      elNores.textContent = ui.nores;
      var on = elChk.classList.contains('on');
      if (!on) elLbl.textContent = ui.weeklyOff;
      elLang.value = FQ_LANG;
    }
   
    var elWidget = document.getElementById('fq-widget');
    var elWeekly  = document.getElementById('fq-weekly');
    var elChk    = document.getElementById('fq-chk');
    var elLbl    = document.getElementById('fq-lbl');
    var elInput  = document.getElementById('fq-input');
    var elClear  = document.getElementById('fq-clear');
    var elStats  = document.getElementById('fq-stats');
    var elTip    = document.getElementById('fq-tip');
    var elNores  = document.getElementById('fq-nores');
    var elResults = document.getElementById('fq-results');
    var elLang    = document.getElementById('fq-lang-select');
   
    function resolveInitialLang() {
      var d = elWidget.getAttribute('data-fq-lang');
      if (d && FQ_STRINGS[d]) return d;
      try {
        var s = localStorage.getItem(FQ_LANG_KEY);
        if (s && FQ_STRINGS[s]) return s;
      } catch (e) {}
      var nav = (navigator.language || navigator.userLanguage || 'en').slice(0, 2).toLowerCase();
      if (nav === 'pt') return 'pt';
      if (nav === 'es') return 'es';
      if (nav === 'pl') return 'pl';
      return 'en';
    }
   
    FQ_LANG = resolveInitialLang();
    rebuildIndex();
    applyUi();
   
    elLang.addEventListener('change', function() {
      FQ_LANG = elLang.value;
      try { localStorage.setItem(FQ_LANG_KEY, FQ_LANG); } catch (e) {}
      rebuildIndex();
      applyUi();
      elInput.dispatchEvent(new Event('input'));
    });
   
    elWeekly.addEventListener('click', function() {
      var ui = FQ_STRINGS[FQ_LANG] || FQ_STRINGS.en;
      var loc = ui.locale;
      var on = elChk.classList.contains('on');
      if (on) {
        elChk.classList.remove('on');
        elLbl.classList.remove('on');
        elLbl.textContent = ui.weeklyOff;
        try { localStorage.removeItem(FQ_KEY); } catch(e) {}
      } else {
        var d = new Date();
        var ds = d.toLocaleDateString(loc) + ' (' + d.toLocaleDateString(loc, { weekday: 'long' }) + ')';
        elChk.classList.add('on');
        elLbl.classList.add('on');
        elLbl.textContent = ui.weeklyDone + ds;
        try { localStorage.setItem(FQ_KEY, JSON.stringify({ weekKey: weekKey(), date: ui.weeklyDone + ds })); } catch(e) {}
      }
    });
   
    elClear.addEventListener('click', function() {
      elInput.value = '';
      elInput.dispatchEvent(new Event('input'));
      elInput.focus();
    });
   
    elInput.addEventListener('input', function() {
      var raw = elInput.value;
      var trimmed = raw.trim();
   
      if (raw.length > 0) {
         elClear.classList.remove('hidden');
      } else {
        elClear.classList.add('hidden');
      }
   
      if (trimmed.length < 2) {
        elStats.classList.add('hidden');
        elTip.classList.remove('hidden');
        elNores.classList.add('hidden');
        elResults.classList.add('hidden');
        elResults.innerHTML = '';
        return;
      }
   
      var parts = trimmed.split(/\s+/);
      var tokens = [];
      for (var i = 0; i < parts.length; i++) {
        if (parts[i]) tokens.push(norm(parts[i]));
      }
   
      var hits = [], item, j, ok;
      for (var k = 0; k < IDX.length; k++) {
        item = IDX[k]; ok = true;
        for (j = 0; j < tokens.length; j++) {
          if (item.n.indexOf(tokens[j]) === -1) { ok = false; break; }
         }
         }
        if (ok) hits.push(item.e);
      }
   
      elTip.classList.add('hidden');
   
      if (hits.length === 0) {
        elStats.classList.add('hidden');
        elResults.classList.add('hidden');
        elResults.innerHTML = '';
        elNores.classList.remove('hidden');
        return;
      }
   
      var tc = 0, fc = 0;
      for (var x = 0; x < hits.length; x++) {
        if (hits[x].correto) tc++; else fc++;
      }
   
      elStats.innerHTML = fqStatsHtml(hits.length, tc, fc, FQ_LANG);
      elStats.classList.remove('hidden');
   
      var html = '', h, cls, sym;
      for (var y = 0; y < hits.length; y++) {
        h  = hits[y];
        cls = h.correto ? 'vd' : 'fa';
        sym = h.correto ? '&#10003;' : '&#10007;';
        html += '<li class="fq-item ' + cls + '">' +
                '<span class="fq-badge ' + cls + '">' + sym + '</span>' +
                '<span>' + highlight(h.texto, tokens) + '</span>' +
                '</li>';
      }
      elResults.innerHTML = html;
      elResults.classList.remove('hidden');
      elNores.classList.add('hidden');
    });
   
    (function() {
      try {
        var raw = localStorage.getItem(FQ_KEY);
        if (!raw) return;
        var obj = JSON.parse(raw);
        if (obj.weekKey !== weekKey()) return;
        elChk.classList.add('on');
        elLbl.classList.add('on');
        elLbl.textContent = obj.date;
      } catch(e) {}
     })();
     })();
</script>
   
    /* {/literal} */
    </script>

Edição das 01h53min de 4 de abril de 2026

<style>

   /* {literal} */
   #fq-widget * { box-sizing: border-box; margin: 0; padding: 0; }
   
   #fq-widget {
     font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
     background: #ffffff;
     color: #202122;
     max-width: 780px;
     margin: 1rem 0;
     font-size: 0.9375rem;
     line-height: 1.6;
   }
   
   .fq-header { margin-bottom: 1.25rem; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
   .fq-header-main { flex: 1; min-width: 12rem; }
   .fq-title  { font-size: 1.25rem; font-weight: 600; color: #202122; margin-bottom: 0.2rem; }
   .fq-sub    { font-size: 0.875rem; color: #54595d; }
   .fq-lang-wrap { flex-shrink: 0; }
   #fq-lang-select {
     font-size: 0.8125rem; padding: 0.35rem 0.5rem; border: 1px solid #a2a9b1; border-radius: 2px;
     background: #f8f9fa; color: #202122; cursor: pointer; max-width: 100%;
   }
   #fq-lang-select:focus { outline: none; border-color: #36c; box-shadow: 0 0 0 2px rgba(51,102,204,0.15); }
   
   .fq-weekly {
     display: flex; align-items: center; gap: 0.5rem;
     margin-bottom: 1.25rem; cursor: pointer; user-select: none; width: fit-content;
   }
   .fq-checkbox {
     display: flex; align-items: center; justify-content: center;
     width: 1.125rem; height: 1.125rem; border-radius: 3px;
     border: 1px solid #a2a9b1; flex-shrink: 0;
     background: #f8f9fa; transition: all 0.15s;
   }
   .fq-checkbox.on { background: #36c; border-color: #36c; }
   .fq-checkbox svg { display: none; }
   .fq-checkbox.on svg { display: block; }
   .fq-weekly-label { font-size: 0.875rem; color: #54595d; transition: color 0.15s; }
   .fq-weekly-label.on { color: #36c; font-weight: 500; }
   .fq-weekly:hover .fq-checkbox:not(.on) { border-color: #36c; }
   .fq-weekly:hover .fq-weekly-label:not(.on) { color: #36c; }
   
   .fq-search-wrap { position: relative; margin-bottom: 0.75rem; }
   .fq-search-icon {
     position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%);
     color: #72777d; pointer-events: none; line-height: 0;
   }
   #fq-input {
     width: 100%; background: #fff; border: 1px solid #a2a9b1;
     border-radius: 2px; padding: 0.45rem 2.5rem;
     font-size: 0.9375rem; color: #202122; outline: none;
     transition: border-color 0.15s, box-shadow 0.15s;
   }
   #fq-input::placeholder { color: #72777d; }
   #fq-input:focus { border-color: #36c; box-shadow: 0 0 0 2px rgba(51,102,204,0.15); }
   #fq-clear {
     position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
     background: none; border: none; color: #72777d; cursor: pointer;
     line-height: 0; padding: 0; transition: color 0.15s;
   }
   #fq-clear:hover { color: #202122; }
   #fq-clear.hidden { display: none; }
   
   #fq-stats { font-size: 0.8125rem; color: #54595d; margin-bottom: 0.75rem; }
   #fq-stats .vd  { color: #14866d; font-weight: 500; }
   #fq-stats .fa  { color: #c0392b; font-weight: 500; }
   #fq-stats .sep { color: #a2a9b1; margin: 0 0.3rem; }
   #fq-stats.hidden { display: none; }
   
   .fq-msg { font-size: 0.875rem; color: #72777d; text-align: center; padding: 3rem 0; }
   .fq-msg.hidden { display: none; }
   
   #fq-results { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
   #fq-results.hidden { display: none; }
   
   .fq-item {
     display: flex; align-items: flex-start; gap: 0.625rem;
     border: 1px solid; border-radius: 2px;
     padding: 0.625rem 0.875rem; font-size: 0.9rem; line-height: 1.55;
   }
   .fq-item.vd { background: #f0fdf4; border-color: #14866d; color: #14433a; }
   .fq-item.fa { background: #fff0f0; border-color: #c0392b; color: #5a1010; }
   
   .fq-badge {
     flex-shrink: 0; margin-top: 0.1rem;
     width: 1.125rem; height: 1.125rem; border-radius: 50%;
     display: flex; align-items: center; justify-content: center;
     font-weight: 700; font-size: 0.7rem; color: #fff;
   }
   .fq-badge.vd { background: #14866d; }
   .fq-badge.fa { background: #c0392b; }
   
   mark { background: #fef08a; color: #713f12; border-radius: 1px; padding: 0 1px; }
   /* {/literal} */
   </style>
   

Foxy Quiz

         <label for="fq-lang-select" class="fq-visually-hidden" id="fq-lang-label" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">Language</label>
         <select id="fq-lang-select" aria-labelledby="fq-lang-label">
           <option value="pt">Português</option>
           <option value="en">English</option>
           <option value="es">Español</option>
           <option value="pl">Polski</option>
         </select>
       
         <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"
              fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
           <polyline points="20 6 9 17 4 12"/>
         </svg>
       
       
       
         <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"
              viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
           <circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/>
         </svg>
       
       <input id="fq-input" type="text" />
       <button id="fq-clear" class="hidden" type="button" aria-label="">
         <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"
              viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
           <path d="M18 6 6 18M6 6l12 12"/>
         </svg>
       </button>
   <script>
   /* {literal} */
   
   var FQ_LANG_KEY = 'foxy-quiz-lang';
   
   var FQ_STRINGS = {
     pt: {
       langLabel: 'Idioma',
       sub: 'Pesquise uma afirmação para ver se ela é verdadeira ou falsa.',
       weeklyOff: 'Já recebi a recompensa do Foxy Quiz nesta semana!',
       weeklyDone: 'Foxy Quiz concluído em ',
       placeholder: 'Digite palavras-chave para pesquisar...',
       clearAria: 'Limpar',
       tip: 'Digite ao menos 2 caracteres para pesquisar.',
       nores: 'Nenhuma afirmação encontrada.',
       locale: 'pt-BR'
     },
     en: {
       langLabel: 'Language',
       sub: 'Search for a statement to see if it is true or false.',
       weeklyOff: 'I already claimed my Foxy Quiz reward this week!',
       weeklyDone: 'Foxy Quiz completed on ',
       placeholder: 'Type keywords to search...',
       clearAria: 'Clear',
       tip: 'Enter at least 2 characters to search.',
       nores: 'No matching statements found.',
       locale: 'en-US'
     },
     es: {
       langLabel: 'Idioma',
       sub: 'Busca una afirmación para ver si es verdadera o falsa.',
       weeklyOff: '¡Ya reclamé la recompensa del Foxy Quiz esta semana!',
       weeklyDone: 'Foxy Quiz completado el ',
       placeholder: 'Escribe palabras clave para buscar...',
       clearAria: 'Borrar',
       tip: 'Introduce al menos 2 caracteres para buscar.',
       nores: 'No se encontraron afirmaciones.',
       locale: 'es'
     },
     pl: {
       langLabel: 'Język',
       sub: 'Wyszukaj stwierdzenie, aby sprawdzić, czy jest prawdziwe, czy fałszywe.',
       weeklyOff: 'Odebrałem już nagrodę Foxy Quiz w tym tygodniu!',
       weeklyDone: 'Foxy Quiz ukończono ',
       placeholder: 'Wpisz słowa kluczowe, aby wyszukać...',
       clearAria: 'Wyczyść',
       tip: 'Wpisz co najmniej 2 znaki, aby wyszukać.',
       nores: 'Nie znaleziono stwierdzeń.',
       locale: 'pl-PL'
     }
   };
   
   function fqStatsHtml(n, t, f, lang) {
     if (lang === 'en') {
       return n + ' result' + (n !== 1 ? 's' : ) +
         ' · ' +
         '' + t + ' true' +
         ' · ' +
         '' + f + ' false';
     }
     if (lang === 'es') {
       return n + ' resultado' + (n !== 1 ? 's' : ) +
         ' · ' +
         '' + t + ' verdadero' + (t !== 1 ? 's' : ) + '' +
         ' · ' +
         '' + f + ' falso' + (f !== 1 ? 's' : ) + '';
     }
     if (lang === 'pl') {
       return n + ' wynik' + (n === 1 ?  : (n < 5 ? 'i' : 'ów')) +
         ' · ' +
         '' + t + ' prawdziw' + (t === 1 ? 'e' : (t < 5 ? 'e' : 'ych')) + '' +
         ' · ' +
         '' + f + ' fałszyw' + (f === 1 ? 'e' : (f < 5 ? 'e' : 'ych')) + '';
     }
     return n + ' resultado' + (n !== 1 ? 's' : ) +
       ' · ' +
       '' + t + ' verdadeiro' + (t !== 1 ? 's' : ) + '' +
       ' · ' +
       '' + f + ' falso' + (f !== 1 ? 's' : ) + '';
   }
   
   var QUIZ_CORE = [
     { c: true, en: 'Eiichiro Oda is the creator of One Piece.', pt: 'Eiichiro Oda é o criador de One Piece.', es: 'Eiichiro Oda es el creador de One Piece.', pl: 'Eiichiro Oda jest twórcą One Piece.' },
     { c: true, en: 'Zeus is an One Piece character.', pt: 'Zeus é um personagem de One Piece.', es: 'Zeus es un personaje de One Piece.', pl: 'Zeus jest postacią z One Piece.' },
     { c: true, en: 'Neptune is an One Piece character.', pt: 'Neptune é um personagem de One Piece.', es: 'Neptuno es un personaje de One Piece.', pl: 'Neptun jest postacią z One Piece.' },
     { c: true, en: 'If the World Government had known that Crocodile was the head of Baroque Works, his bounty would be at least doubled to 162,000,000 berry.', pt: 'Se o Governo Mundial soubesse que Crocodile era o chefe da Baroque Works, sua recompensa pelo menos dobraria para 162.000.000 de berries.', es: 'Si el Gobierno Mundial hubiera sabido que Crocodile era el jefe de Baroque Works, su recompensa se habría duplicado al menos a 162.000.000 de berries.', pl: 'Gdyby Światowy Rząd wiedział, że Crocodile był szefem Baroque Works, jego nagroda wzrosłaby co najmniej dwukrotnie do 162 000 000 berry.' },
     { c: true, en: "Crocodile's dream was to become the Pirate King.", pt: 'O sonho de Crocodile era se tornar o Rei dos Piratas.', es: 'El sueño de Crocodile era convertirse en el Rey de los Piratas.', pl: 'Marzeniem Crocodile\'a zostało Królem Piratów.' },
     { c: true, en: 'Hancock is the first female character in the series capable of using all three forms of Haki.', pt: 'Hancock é a primeira personagem feminina da série capaz de usar as três formas de Haki.', es: 'Hancock es la primera personaje femenina de la serie capaz de usar las tres formas de Haki.', pl: 'Hancock jest pierwszą kobiecą postacią w serii zdolną do użycia wszystkich trzech form Haki.' },
     { c: true, en: 'Boa Hancock character has several references to Greek mythology.', pt: 'A personagem Boa Hancock tem várias referências à mitologia grega.', es: 'El personaje Boa Hancock tiene varias referencias a la mitología griega.', pl: 'Postać Boa Hancock zawiera kilka odniesień do greckiej mitologii.' },
     { c: true, en: 'If One Piece was set in the real world, then Luffy would be from Brazil.', pt: 'Se One Piece se passasse no mundo real, Luffy seria do Brasil.', es: 'Si One Piece se ambientara en el mundo real, Luffy sería de Brasil.', pl: 'Gdyby One Piece rozgrywało się w prawdziwym świecie, Luffy pochodziłby z Brazylii.' },
     { c: true, en: 'Buggy is the first villain to appear in the series who is a Devil Fruit user. He is the also first Devil Fruit user whom Luffy has fought.', pt: 'Buggy é o primeiro vilão da série que é usuário de Akuma no Mi. Também é o primeiro usuário de Akuma no Mi com quem Luffy lutou.', es: 'Buggy es el primer villano de la serie que es usuario de Fruta del Diablo. También es el primer usuario de Fruta del Diablo contra el que lucha Luffy.', pl: 'Buggy jest pierwszym antagonistą w serii użytkownikiem Diabelskiego Owocu. To także pierwszy taki przeciwnik, z którym walczy Luffy.' },
     { c: true, en: "Monkey D. Luffy's mother was not revealed yet.", pt: 'A mãe de Monkey D. Luffy ainda não foi revelada.', es: 'La madre de Monkey D. Luffy aún no ha sido revelada.', pl: 'Matka Monkey D. Luffy\'ego nie została jeszcze ujawniona.' },
     { c: true, en: "Portgas D. Ace is Gold Roger's son.", pt: 'Portgas D. Ace é filho de Gold Roger.', es: 'Portgas D. Ace es hijo de Gold Roger.', pl: 'Portgas D. Ace jest synem Gold Rogera.' },
     { c: true, en: "Portgas D. Ace is Rouge's son.", pt: 'Portgas D. Ace é filho de Rouge.', es: 'Portgas D. Ace es hijo de Rouge.', pl: 'Portgas D. Ace jest synem Rouge.' },
     { c: true, en: "Gum-Gum Fruit is the official name of Luffy's Devil Fruit in English.", pt: 'Fruta Gum-Gum é o nome oficial da Akuma no Mi do Luffy em inglês.', es: 'Gum-Gum Fruit es el nombre oficial de la Fruta del Diablo de Luffy en inglés.', pl: 'Gum-Gum Fruit to oficjalna angielska nazwa Diabelskiego Owocu Luffy\'ego.' },
     { c: true, en: 'Wapol is the first king shown in the series.', pt: 'Wapol é o primeiro rei mostrado na série.', es: 'Wapol es el primer rey que aparece en la serie.', pl: 'Wapol jest pierwszym królem pokazanym w serii.' },
     { c: true, en: 'Arlong is the only known individual to have been released from Impel Down.', pt: 'Arlong é o único indivíduo conhecido a ter sido solto de Impel Down.', es: 'Arlong es el único individuo conocido que ha sido liberado de Impel Down.', pl: 'Arlong jest jedyną znaną osobą, która została zwolniona z Impel Down.' },
     { c: true, en: 'Mr. 2 has the same voice actor as Franky and Jango.', pt: 'Mr. 2 tem o mesmo dublador que Franky e Jango.', es: 'Mr. 2 tiene el mismo actor de voz que Franky y Jango.', pl: 'Mr. 2 ma tego samego aktora głosowego co Franky i Jango.' },
     { c: true, en: 'Akainu has the same voice actor as Krieg.', pt: 'Akainu tem o mesmo dublador que Krieg.', es: 'Akainu tiene el mismo actor de voz que Krieg.', pl: 'Akainu ma tego samego aktora głosowego co Krieg.' },
     { c: true, en: 'Sanji in his childhood has the same voice actress as Chopper.', pt: 'Sanji na infância tem a mesma dubladora que Chopper.', es: 'Sanji de niño tiene la misma actriz de voz que Chopper.', pl: 'Sanji w dzieciństwie ma tę samą aktorkę głosową co Chopper.' },
     { c: true, en: 'Chopper has his voice actress changed in some episodes.', pt: 'A dubladora de Chopper foi trocada em alguns episódios.', es: 'La actriz de voz de Chopper cambió en algunos episodios.', pl: 'Aktorka głosowa Choppera została zmieniona w niektórych odcinkach.' },
     { c: true, en: 'Nico Robin was also known as Miss All Sunday.', pt: 'Nico Robin também era conhecida como Miss All Sunday.', es: 'Nico Robin también era conocida como Miss All Sunday.', pl: 'Nico Robin znana była też jako Miss All Sunday.' },
     { c: true, en: "Nico Robin's mother hair is white.", pt: 'O cabelo da mãe de Nico Robin é branco.', es: 'El pelo de la madre de Nico Robin es blanco.', pl: 'Włosy matki Nico Robin są białe.' },
     { c: true, en: "Yubashiri (One of Zoro's sword) rusted.", pt: 'Yubashiri (uma das espadas de Zoro) enferrujou.', es: 'Yubashiri (una de las espadas de Zoro) se oxidó.', pl: 'Yubashiri (jeden z mieczy Zoro) zardzewiał.' },
     { c: false, en: 'Masashi Kishimoto is the creator of One Piece.', pt: 'Masashi Kishimoto é o criador de One Piece.', es: 'Masashi Kishimoto es el creador de One Piece.', pl: 'Masashi Kishimoto jest twórcą One Piece.' },
     { c: false, en: 'Akira Toriyama is the creator of One Piece.', pt: 'Akira Toriyama é o criador de One Piece.', es: 'Akira Toriyama es el creador de One Piece.', pl: 'Akira Toriyama jest twórcą One Piece.' },
     { c: false, en: 'Frost is an One Piece character.', pt: 'Frost é um personagem de One Piece.', es: 'Frost es un personaje de One Piece.', pl: 'Frost jest postacią z One Piece.' },
     { c: false, en: 'The bounty of a Pirate reflects his strength.', pt: 'A recompensa de um pirata reflete sua força.', es: 'La recompensa de un pirata refleja su fuerza.', pl: 'Nagroda za pirata odzwierciedla jego siłę.' },
     { c: false, en: 'Franky was the first cyborg to appear in the series.', pt: 'Franky foi o primeiro ciborgue a aparecer na série.', es: 'Franky fue el primer cyborg en aparecer en la serie.', pl: 'Franky był pierwszym cyborgiem w serii.' },
     { c: false, en: "Teach's favorite food is apple pie.", pt: 'A comida favorita de Teach é torta de maçã.', es: 'La comida favorita de Teach es pastel de manzana.', pl: 'Ulubionym jedzeniem Teach\'a jest szarlotka.' },
     { c: false, en: "Monkey D. Garp is Luffy's real father.", pt: 'Monkey D. Garp é o pai biológico de Luffy.', es: 'Monkey D. Garp es el padre biológico de Luffy.', pl: 'Monkey D. Garp jest biologicznym ojcem Luffy\'ego.' },
     { c: false, en: "Pandaman is in Trafalgar Law's Crew.", pt: 'Pandaman está na tripulação de Trafalgar Law.', es: 'Pandaman está en la tripulación de Trafalgar Law.', pl: 'Pandaman jest w załodze Trafalgara Law.' },
     { c: false, en: 'Bepo is not a Mink.', pt: 'Bepo não é um Mink.', es: 'Bepo no es un Mink.', pl: 'Bepo nie jest Minkiem.' },
     { c: false, en: 'Gin has the same voice actor as Kuro.', pt: 'Gin tem o mesmo dublador que Kuro.', es: 'Gin tiene el mismo actor de voz que Kuro.', pl: 'Gin ma tego samego aktora głosowego co Kuro.' },
     { c: false, en: 'Perona has the same voice actress as Koala.', pt: 'Perona tem a mesma dubladora que Koala.', es: 'Perona tiene la misma actriz de voz que Koala.', pl: 'Perona ma tę samą aktorkę głosową co Koala.' },
     { c: false, en: 'Boa Hancock has the same voice actress as Reiju.', pt: 'Boa Hancock tem a mesma dubladora que Reiju.', es: 'Boa Hancock tiene la misma actriz de voz que Reiju.', pl: 'Boa Hancock ma tę samą aktorkę głosową co Reiju.' },
     { c: false, en: 'Dracule Mihawk had only one voice actor in the entire anime.', pt: 'Dracule Mihawk teve apenas um dublador em todo o anime.', es: 'Dracule Mihawk solo tuvo un actor de voz en todo el anime.', pl: 'Dracule Mihawk miał tylko jednego aktora głosowego w całym anime.' },
     { c: false, en: 'Luffy got his scar from a tiger in Foosha Village.', pt: 'Luffy ganhou sua cicatriz de um tigre na Vila Foosha.', es: 'Luffy se hizo la cicatriz por un tigre en la aldea Foosha.', pl: 'Luffy dostał bliznę od tygrysa we wsi Foosha.' },
     { c: false, en: "Sandai Kitetsu (One of Zoro's sword) rusted.", pt: 'Sandai Kitetsu (uma das espadas de Zoro) enferrujou.', es: 'Sandai Kitetsu (una de las espadas de Zoro) se oxidó.', pl: 'Sandai Kitetsu (jeden z mieczy Zoro) zardzewiał.' },
     { c: false, en: 'Ryuma had the shadow of a Legendary Wano samurai.', pt: 'Ryuma tinha a sombra de um samurai lendário de Wano.', es: 'Ryuma tenía la sombra de un samurái legendario de Wano.', pl: 'Ryuma miał cień legendarnego samuraja z Wano.' },
     { c: false, en: "Bartolomeo's Barrier broke only one time during the anime.", pt: 'A barreira de Bartolomeo quebrou apenas uma vez no anime.', es: 'La barrera de Bartolomeo solo se rompió una vez en el anime.', pl: 'Bariera Bartolomeo pękła tylko raz w anime.' },
     { c: false, en: 'Bartolomeo has the Nikyu Nikyu no Mi devil fruit.', pt: 'Bartolomeo possui a Akuma no Mi Nikyu Nikyu no Mi.', es: 'Bartolomeo tiene la Fruta del Diablo Nikyu Nikyu no Mi.', pl: 'Bartolomeo ma Diabelski Owoc Nikyu Nikyu no Mi.' }
   ];
   
   var FQ_KEY = 'foxy-quiz-weekly';
   
   var FQ_LANG = 'pt';
   var QUIZ_DATA = [];
   var IDX = [];
   
   function norm(s) {
     return s.normalize('NFD').replace(/[\u0300-\u036f]/g, ).toLowerCase();
   }
   
   function weekKey() {
     var now  = new Date();
     var diff = (now.getDay() - 5 + 7) % 7;
     var fri  = new Date(now);
     fri.setDate(now.getDate() - diff);
     return fri.toISOString().slice(0, 10);
   }
   
   function esc(s) {
     return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
   }
   
   function highlight(texto, tokens) {
     var n = norm(texto);
     var ranges = [], i, t, idx, pos;
     for (i = 0; i < tokens.length; i++) {
       t = tokens[i]; idx = 0;
       while ((pos = n.indexOf(t, idx)) !== -1) {
         ranges.push([pos, pos + t.length]);
         idx = pos + 1;
       }
     }
     if (!ranges.length) return esc(texto);
     ranges.sort(function(a, b) { return a[0] - b[0]; });
     var merged = [], r, last;
     for (i = 0; i < ranges.length; i++) {
       r = ranges[i]; last = merged[merged.length - 1];
       if (last && r[0] <= last[1]) { if (r[1] > last[1]) last[1] = r[1]; }
       else { merged.push([r[0], r[1]]); }
     }
     var out = , cur = 0, seg;
     for (i = 0; i < merged.length; i++) {
       seg = merged[i];
       out += esc(texto.slice(cur, seg[0]));
       out += '' + esc(texto.slice(seg[0], seg[1])) + '';
       cur  = seg[1];
     }
     return out + esc(texto.slice(cur));
   }
   
   function rebuildIndex() {
     var lang = FQ_LANG;
     var ii, row, t;
     QUIZ_DATA = [];
     for (ii = 0; ii < QUIZ_CORE.length; ii++) {
       row = QUIZ_CORE[ii];
       t = row[lang] || row.en;
       QUIZ_DATA.push({ correto: row.c, texto: t });
     }
     IDX = [];
     for (ii = 0; ii < QUIZ_DATA.length; ii++) {
       IDX.push({ e: QUIZ_DATA[ii], n: norm(QUIZ_DATA[ii].texto) });
     }
   }
   
   function applyUi() {
     var ui = FQ_STRINGS[FQ_LANG] || FQ_STRINGS.en;
     document.getElementById('fq-sub').textContent = ui.sub;
     document.getElementById('fq-lang-label').textContent = ui.langLabel;
     elInput.placeholder = ui.placeholder;
     elClear.setAttribute('aria-label', ui.clearAria);
     elTip.textContent = ui.tip;
     elNores.textContent = ui.nores;
     var on = elChk.classList.contains('on');
     if (!on) elLbl.textContent = ui.weeklyOff;
     elLang.value = FQ_LANG;
   }
   
   var elWidget = document.getElementById('fq-widget');
   var elWeekly  = document.getElementById('fq-weekly');
   var elChk     = document.getElementById('fq-chk');
   var elLbl     = document.getElementById('fq-lbl');
   var elInput   = document.getElementById('fq-input');
   var elClear   = document.getElementById('fq-clear');
   var elStats   = document.getElementById('fq-stats');
   var elTip     = document.getElementById('fq-tip');
   var elNores   = document.getElementById('fq-nores');
   var elResults = document.getElementById('fq-results');
   var elLang    = document.getElementById('fq-lang-select');
   
   function resolveInitialLang() {
     var d = elWidget.getAttribute('data-fq-lang');
     if (d && FQ_STRINGS[d]) return d;
     try {
       var s = localStorage.getItem(FQ_LANG_KEY);
       if (s && FQ_STRINGS[s]) return s;
     } catch (e) {}
     var nav = (navigator.language || navigator.userLanguage || 'en').slice(0, 2).toLowerCase();
     if (nav === 'pt') return 'pt';
     if (nav === 'es') return 'es';
     if (nav === 'pl') return 'pl';
     return 'en';
   }
   
   FQ_LANG = resolveInitialLang();
   rebuildIndex();
   applyUi();
   
   elLang.addEventListener('change', function() {
     FQ_LANG = elLang.value;
     try { localStorage.setItem(FQ_LANG_KEY, FQ_LANG); } catch (e) {}
     rebuildIndex();
     applyUi();
     elInput.dispatchEvent(new Event('input'));
   });
   
   elWeekly.addEventListener('click', function() {
     var ui = FQ_STRINGS[FQ_LANG] || FQ_STRINGS.en;
     var loc = ui.locale;
     var on = elChk.classList.contains('on');
     if (on) {
       elChk.classList.remove('on');
       elLbl.classList.remove('on');
       elLbl.textContent = ui.weeklyOff;
       try { localStorage.removeItem(FQ_KEY); } catch(e) {}
     } else {
       var d = new Date();
       var ds = d.toLocaleDateString(loc) + ' (' + d.toLocaleDateString(loc, { weekday: 'long' }) + ')';
       elChk.classList.add('on');
       elLbl.classList.add('on');
       elLbl.textContent = ui.weeklyDone + ds;
       try { localStorage.setItem(FQ_KEY, JSON.stringify({ weekKey: weekKey(), date: ui.weeklyDone + ds })); } catch(e) {}
     }
   });
   
   elClear.addEventListener('click', function() {
     elInput.value = ;
     elInput.dispatchEvent(new Event('input'));
     elInput.focus();
   });
   
   elInput.addEventListener('input', function() {
     var raw = elInput.value;
     var trimmed = raw.trim();
   
     if (raw.length > 0) {
       elClear.classList.remove('hidden');
     } else {
       elClear.classList.add('hidden');
     }
   
     if (trimmed.length < 2) {
       elStats.classList.add('hidden');
       elTip.classList.remove('hidden');
       elNores.classList.add('hidden');
       elResults.classList.add('hidden');
       elResults.innerHTML = ;
       return;
     }
   
     var parts = trimmed.split(/\s+/);
     var tokens = [];
     for (var i = 0; i < parts.length; i++) {
       if (parts[i]) tokens.push(norm(parts[i]));
     }
   
     var hits = [], item, j, ok;
     for (var k = 0; k < IDX.length; k++) {
       item = IDX[k]; ok = true;
       for (j = 0; j < tokens.length; j++) {
         if (item.n.indexOf(tokens[j]) === -1) { ok = false; break; }
       }
       if (ok) hits.push(item.e);
     }
   
     elTip.classList.add('hidden');
   
     if (hits.length === 0) {
       elStats.classList.add('hidden');
       elResults.classList.add('hidden');
       elResults.innerHTML = ;
       elNores.classList.remove('hidden');
       return;
     }
   
     var tc = 0, fc = 0;
     for (var x = 0; x < hits.length; x++) {
       if (hits[x].correto) tc++; else fc++;
     }
   
     elStats.innerHTML = fqStatsHtml(hits.length, tc, fc, FQ_LANG);
     elStats.classList.remove('hidden');
   
     var html = , h, cls, sym;
     for (var y = 0; y < hits.length; y++) {
       h   = hits[y];
       cls = h.correto ? 'vd' : 'fa';
       sym = h.correto ? '✓' : '✗';

html += '

  • ' + '' + sym + '' + '' + highlight(h.texto, tokens) + '' + '
  • '; } elResults.innerHTML = html; elResults.classList.remove('hidden'); elNores.classList.add('hidden'); }); (function() { try { var raw = localStorage.getItem(FQ_KEY); if (!raw) return; var obj = JSON.parse(raw); if (obj.weekKey !== weekKey()) return; elChk.classList.add('on'); elLbl.classList.add('on'); elLbl.textContent = obj.date; } catch(e) {} })(); /* {/literal} */ </script>