{"id":2710,"date":"2023-01-01T15:27:13","date_gmt":"2023-01-01T15:27:13","guid":{"rendered":"https:\/\/hostelhome.com.br\/base\/?page_id=2710"},"modified":"2026-02-07T12:44:42","modified_gmt":"2026-02-07T12:44:42","slug":"reality-game","status":"publish","type":"page","link":"https:\/\/hostelhome.com.br\/base\/reservar\/reality-game\/","title":{"rendered":"Reality Game"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2710\" class=\"elementor elementor-2710\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f38d8f5 e-flex e-con-boxed e-con e-parent\" data-id=\"f38d8f5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c11d2bb elementor-widget elementor-widget-html\" data-id=\"c11d2bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n\r\n<style>\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;800&display=swap');\r\n\r\n  #hostel-game-widget {\r\n    font-family: 'Inter', sans-serif;\r\n    background-color: #f8fafc;\r\n    color: #0f172a;\r\n    min-height: 100vh;\r\n    position: relative;\r\n    overflow: hidden;\r\n    border-radius: 0;\r\n    box-sizing: border-box;\r\n    width: 100%;\r\n  }\r\n\r\n  @media (min-width: 640px) {\r\n    #hostel-game-widget {\r\n      min-height: 600px;\r\n      border-radius: 1rem;\r\n    }\r\n  }\r\n\r\n  #hostel-game-widget * {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .game-card {\r\n    position: absolute;\r\n    width: 100%;\r\n    max-width: min(320px, 90vw);\r\n    height: min(420px, 70vh);\r\n    background: white;\r\n    border-radius: 24px;\r\n    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);\r\n    transform-origin: 50% 100%;\r\n    transition: transform 0.3s ease, opacity 0.3s ease;\r\n    cursor: grab;\r\n    user-select: none;\r\n    z-index: 10;\r\n    touch-action: none;\r\n  }\r\n\r\n  .game-card.swiping {\r\n    transition: none;\r\n  }\r\n\r\n  \/* Gradientes para as categorias *\/\r\n  .bg-gradient-kitchen { background: linear-gradient(to bottom right, #fb923c, #ef4444); }\r\n  .bg-gradient-dorm { background: linear-gradient(to bottom right, #60a5fa, #6366f1); }\r\n  .bg-gradient-bathroom { background: linear-gradient(to bottom right, #22d3ee, #3b82f6); }\r\n  .bg-gradient-social { background: linear-gradient(to bottom right, #f472b6, #a855f7); }\r\n  .bg-gradient-security { background: linear-gradient(to bottom right, #334155, #000000); }\r\n  .bg-gradient-service { background: linear-gradient(to bottom right, #34d399, #0d9488); }\r\n  .bg-gradient-value { background: linear-gradient(to bottom right, #facc15, #d97706); }\r\n  .bg-gradient-general { background: linear-gradient(to bottom right, #a78bfa, #c026d3); }\r\n\r\n  .hidden-screen { display: none !important; }\r\n  .fade-in { animation: fadeIn 0.5s ease-out forwards; }\r\n  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\r\n\r\n  @media (max-width: 640px) {\r\n    .game-card h3 {\r\n      font-size: 0.95rem !important;\r\n      line-height: 1.3 !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div id=\"hostel-game-widget\">\r\n\r\n    <!-- TELA INICIAL -->\r\n    <div id=\"screen-start\" class=\"flex flex-col items-center justify-center h-full min-h-screen sm:min-h-0 p-4 sm:p-6 text-center space-y-4 sm:space-y-6 fade-in w-full\">\r\n      <div class=\"relative inline-block mb-2\">\r\n        <div class=\"absolute inset-0 bg-blue-500 blur-2xl opacity-20 rounded-full\"><\/div>\r\n        <svg class=\"w-16 h-16 sm:w-20 sm:h-20 text-blue-600 relative z-10 mx-auto\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n          <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/>\r\n        <\/svg>\r\n      <\/div>\r\n      \r\n      <div class=\"px-4\">\r\n        <h1 class=\"text-2xl sm:text-3xl font-black tracking-tight text-slate-900\">\r\n          Desafio Hostel<span class=\"text-blue-600\">Home<\/span>\r\n        <\/h1>\r\n        <p class=\"text-sm sm:text-base text-slate-500 mt-2\">\r\n          Voc\u00ea sabe conviver em um hostel? Teste seus conhecimentos!\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <button id=\"btn-start-game\" type=\"button\" class=\"w-full max-w-xs py-3 sm:py-4 text-base sm:text-lg font-bold text-white rounded-full bg-blue-600 hover:bg-blue-700 shadow-lg shadow-blue-200 transition-transform transform hover:scale-105 cursor-pointer\">\r\n        Come\u00e7ar Desafio\r\n      <\/button>\r\n      \r\n      <div class=\"text-slate-400 text-xs sm:text-sm\">10 perguntas r\u00e1pidas<\/div>\r\n    <\/div>\r\n\r\n    <!-- TELA DO JOGO -->\r\n    <div id=\"screen-game\" class=\"hidden-screen w-full h-full min-h-screen sm:min-h-0 flex flex-col items-center p-3 sm:p-4 relative\">\r\n      <div class=\"w-full max-w-xs mb-6 sm:mb-8 mt-4\">\r\n        <div class=\"flex justify-between items-end mb-2 text-xs font-bold\">\r\n          <span class=\"text-slate-400 uppercase tracking-wider\">Progresso<\/span>\r\n          <span id=\"progress-text\" class=\"text-slate-900\">1 \/ 10<\/span>\r\n        <\/div>\r\n        <div class=\"h-2 bg-slate-200 rounded-full overflow-hidden\">\r\n          <div id=\"progress-bar\" class=\"h-full bg-blue-500 transition-all duration-300\" style=\"width: 10%\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"relative w-full flex-1 flex justify-center items-center perspective-1000\" style=\"min-height: 450px; max-height: 70vh;\">\r\n        <div class=\"absolute top-4 w-full max-w-[320px] h-[420px] bg-slate-200 rounded-3xl scale-95 opacity-50 -z-10\" style=\"max-height: 70vh;\"><\/div>\r\n        <div id=\"card-container\" class=\"flex justify-center w-full items-center\"><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mt-4 mb-4 flex justify-center items-center gap-6 sm:gap-8 text-slate-400 text-xs sm:text-sm font-medium\">\r\n        <div class=\"flex items-center gap-2\"><span class=\"text-red-400 font-bold\">\u2190 N\u00c3O<\/span><\/div>\r\n        <div class=\"flex items-center gap-2\"><span class=\"text-green-500 font-bold\">SIM \u2192<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- TELA DE RESULTADO -->\r\n    <div id=\"screen-result\" class=\"hidden-screen w-full h-full min-h-screen sm:min-h-0 flex flex-col items-center p-4 sm:p-6 text-center fade-in overflow-y-auto\">\r\n      <div id=\"result-capture-area\" class=\"w-full\">\r\n        <svg class=\"w-14 h-14 sm:w-16 sm:h-16 text-yellow-500 mx-auto mb-4 mt-4\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n          <path d=\"M6 9H4.5a2.5 2.5 0 0 1 0-5H6\"\/><path d=\"M18 9h1.5a2.5 2.5 0 0 0 0-5H18\"\/><path d=\"M4 22h16\"\/><path d=\"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22\"\/><path d=\"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22\"\/><path d=\"M18 2H6v7a6 6 0 0 0 12 0V2Z\"\/>\r\n        <\/svg>\r\n        \r\n        <h2 id=\"result-title\" class=\"text-2xl sm:text-3xl font-bold text-slate-900 mb-2\">Resultado<\/h2>\r\n        <p id=\"result-message\" class=\"text-slate-500 mb-4 sm:mb-6 px-2 text-xs sm:text-sm leading-tight max-w-sm mx-auto\">Mensagem.<\/p>\r\n        \r\n        <div class=\"grid grid-cols-2 gap-3 mb-4 sm:mb-6 w-full max-w-xs mx-auto\">\r\n          <div class=\"bg-white p-3 rounded-2xl border border-slate-100 shadow-sm\">\r\n            <div id=\"result-score\" class=\"text-2xl sm:text-3xl font-bold text-slate-900\">0<\/div>\r\n            <div class=\"text-[10px] text-slate-400 uppercase font-bold\">Acertos<\/div>\r\n          <\/div>\r\n          <div class=\"bg-blue-50 p-3 rounded-2xl border border-blue-100\">\r\n            <div id=\"result-discount\" class=\"text-2xl sm:text-3xl font-bold text-blue-600\">0%<\/div>\r\n            <div class=\"text-[10px] text-blue-400 uppercase font-bold\">Desconto<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bg-slate-900 text-white p-4 sm:p-5 rounded-xl mb-4 sm:mb-6 w-full max-w-xs mx-auto relative overflow-hidden\">\r\n          <div class=\"absolute inset-0 bg-gradient-to-r from-purple-500 to-pink-500 opacity-20\"><\/div>\r\n          <p class=\"text-xs text-slate-300 mb-1 relative z-10\">Seu cupom<\/p>\r\n          <div id=\"result-code\" class=\"text-xl sm:text-2xl font-mono font-black tracking-widest relative z-10 text-yellow-400 mb-3\">---<\/div>\r\n          \r\n          <button id=\"btn-copy\" type=\"button\" class=\"cursor-pointer relative z-10 bg-white\/10 hover:bg-white\/20 text-white text-xs py-2 px-4 rounded transition-colors border border-white\/20\">\r\n            Copiar C\u00f3digo\r\n          <\/button>\r\n        <\/div>\r\n\r\n        <p class=\"text-xs text-slate-400 font-medium mb-2\">\r\n          Desafio HostelHome\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <button id=\"btn-save-image\" type=\"button\" class=\"cursor-pointer w-full max-w-xs py-3 sm:py-4 text-base sm:text-lg font-bold text-white rounded-xl bg-blue-600 hover:bg-blue-700 shadow-lg shadow-blue-200 transition-transform transform hover:scale-105 mb-3 flex items-center justify-center gap-2\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"w-5 h-5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n          <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/>\r\n        <\/svg>\r\n        Salvar Imagem\r\n      <\/button>\r\n\r\n      <a id=\"btn-share-whatsapp\" href__=\"#\" target=\"_blank\" class=\"cursor-pointer w-full max-w-xs py-3 sm:py-4 text-base sm:text-lg font-bold text-white rounded-xl bg-green-600 hover:bg-green-700 shadow-lg shadow-green-200 transition-transform transform hover:scale-105 mb-4 flex items-center justify-center gap-2 no-underline\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"w-5 h-5 flex-shrink-0\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\r\n        <\/svg>\r\n        <span class=\"text-sm sm:text-base\">Solicite o desconto<\/span>\r\n      <\/a>\r\n\r\n      <p class=\"text-xs text-slate-400 font-medium flex items-center justify-center gap-2 pb-4\">\r\n         Volte amanh\u00e3 para jogar novamente\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <!-- FEEDBACK OVERLAY -->\r\n    <div id=\"feedback-overlay\" class=\"hidden absolute inset-0 z-50 flex items-center justify-center p-4 sm:p-6 bg-black\/60 backdrop-blur-sm fade-in\">\r\n      <div id=\"feedback-box\" class=\"w-full max-w-xs bg-white rounded-3xl p-5 sm:p-6 text-center shadow-2xl\">\r\n        <div id=\"feedback-icon-container\" class=\"mx-auto w-14 h-14 sm:w-16 sm:h-16 rounded-full flex items-center justify-center mb-4 text-2xl font-bold\"><\/div>\r\n        <h2 id=\"feedback-title\" class=\"text-xl sm:text-2xl font-bold mb-2\"><\/h2>\r\n        <p id=\"feedback-text\" class=\"text-slate-600 mb-5 sm:mb-6 text-xs sm:text-sm leading-relaxed\"><\/p>\r\n        <button id=\"btn-next-card\" type=\"button\" class=\"cursor-pointer w-full py-3 text-base font-bold text-white rounded-xl bg-slate-900 hover:bg-slate-800\">\r\n          Pr\u00f3xima Carta\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  const CONFIG = {\r\n    secret: \"HOSTEL_HOME_SECURE_KEY_2025\",\r\n    hostelWhatsApp: \"+5511983344000\",\r\n    questions: [\r\n        { statement: '\u00c9 permitido hospedar crian\u00e7as pequenas em dormit\u00f3rios compartilhados?', answer: false, explanation: 'Crian\u00e7as em dormit\u00f3rios compartilhados geralmente n\u00e3o s\u00e3o permitidas. Apenas em quartos privativos.', category: 'general' },\r\n        { statement: 'Consigo reservar tours e passeios tur\u00edsticos diretamente na recep\u00e7\u00e3o do hostel?', answer: true, explanation: 'Muitos hostels vendem passeios e tickets direto na recep\u00e7\u00e3o para facilitar.', category: 'service' },\r\n        { statement: 'Devo manter a porta do dormit\u00f3rio fechada ao entrar ou sair?', answer: true, explanation: 'Manter a porta fechada ajuda na seguran\u00e7a e bloqueia ru\u00eddos externos.', category: 'dorm' },\r\n        { statement: 'Hostels econ\u00f4micos costumam oferecer servi\u00e7o de bab\u00e1?', answer: false, explanation: 'O pre\u00e7o baixo geralmente n\u00e3o inclui servi\u00e7os extras como bab\u00e1.', category: 'value' },\r\n        { statement: 'A luz de leitura individual na cama \u00e9 um item comum?', answer: true, explanation: 'Beliches costumam ter luz de leitura para voc\u00ea ler sem acender a luz geral.', category: 'dorm' },\r\n        { statement: 'Posso descartar papel higi\u00eanico no vaso sanit\u00e1rio no Brasil?', answer: false, explanation: 'No Brasil, o sistema de esgoto exige que o papel seja jogado no lixo para n\u00e3o entupir.', category: 'bathroom' },\r\n        { statement: '\u00c9 comum ter caf\u00e9 ou ch\u00e1 dispon\u00edvel gratuitamente na cozinha?', answer: true, explanation: 'Muitos hostels oferecem caf\u00e9 e ch\u00e1 gratuitos como cortesia.', category: 'kitchen' },\r\n        { statement: 'Posso levar um amigo de fora para dormir na minha cama de solteiro?', answer: false, explanation: 'Proibido. A cama \u00e9 individual e convidados externos n\u00e3o podem pernoitar sem pagar.', category: 'value' },\r\n        { statement: 'O quadro de avisos \u00e9 bom para encontrar caronas ou companhias?', answer: true, explanation: 'Sim! Murais de avisos conectam viajantes e divulgam festas.', category: 'social' },\r\n        { statement: 'Posso levar a toalha de banho do quarto para a praia?', answer: false, explanation: 'Geralmente n\u00e3o. Toalhas brancas do hostel mancham na areia. Alugue uma de praia.', category: 'service' },\r\n        { statement: 'Devo lavar minha lou\u00e7a imediatamente ap\u00f3s usar na cozinha compartilhada?', answer: true, explanation: 'Sempre! Deixar lou\u00e7a suja na pia \u00e9 a regra n\u00famero 1 de m\u00e1 conviv\u00eancia.', category: 'kitchen' },\r\n        { statement: 'Posso pegar comida da geladeira que n\u00e3o tem nome?', answer: false, explanation: 'Nunca. Se n\u00e3o \u00e9 seu e n\u00e3o est\u00e1 na prateleira \"Gr\u00e1tis\", n\u00e3o pegue.', category: 'kitchen' },\r\n        { statement: '\u00c9 educado acender a luz principal do quarto \u00e0s 3 da manh\u00e3?', answer: false, explanation: 'N\u00e3o! Use a lanterna do celular ou sua luz individual para n\u00e3o acordar os outros.', category: 'dorm' },\r\n        { statement: 'Posso usar meu saco de dormir em cima da roupa de cama do hostel?', answer: false, explanation: 'Muitos hostels pro\u00edbem sacos de dormir para evitar trazer percevejos (bed bugs).', category: 'dorm' },\r\n        { statement: 'Devo colocar etiquetas com meu nome e data de sa\u00edda na minha comida?', answer: true, explanation: 'Sim, isso evita que a limpeza jogue sua comida fora por engano.', category: 'kitchen' },\r\n        { statement: 'Posso fazer sexo no dormit\u00f3rio compartilhado se todos estiverem dormindo?', answer: false, explanation: 'Definitivamente n\u00e3o. \u00c9 desrespeitoso. Reserve um quarto privativo.', category: 'dorm' },\r\n        { statement: '\u00c9 seguro deixar meu passaporte e dinheiro embaixo do travesseiro?', answer: false, explanation: 'N\u00e3o arrisque. Use sempre os lockers (arm\u00e1rios) com cadeado.', category: 'security' },\r\n        { statement: 'Preciso levar meu pr\u00f3prio cadeado para o hostel?', answer: true, explanation: 'Sim! A maioria dos hostels oferece o arm\u00e1rio, mas voc\u00ea deve trazer o cadeado.', category: 'security' },\r\n        { statement: 'Posso pendurar minhas roupas \u00edntimas molhadas na cama do vizinho?', answer: false, explanation: 'Mantenha suas coisas no seu espa\u00e7o. Invadir a cama alheia \u00e9 invasivo.', category: 'dorm' },\r\n        { statement: '\u00c9 de bom tom dizer \"Bom dia\" ao entrar na \u00e1rea de caf\u00e9 da manh\u00e3?', answer: true, explanation: 'Sim! Hostels s\u00e3o ambientes sociais. Cumprimentar quebra o gelo.', category: 'social' },\r\n        { statement: 'Posso ouvir m\u00fasica sem fones de ouvido na \u00e1rea comum?', answer: false, explanation: 'Nem todos querem ouvir sua m\u00fasica. Use fones ou pergunte se pode ligar o som.', category: 'social' },\r\n        { statement: 'Hostels costumam ter toque de recolher (hor\u00e1rio limite para voltar)?', answer: false, explanation: 'A maioria n\u00e3o tem toque de recolher, voc\u00ea tem chave ou senha para entrar a qualquer hora.', category: 'security' },\r\n        { statement: 'Posso usar o shampoo que est\u00e1 no box do banheiro, mesmo n\u00e3o sendo meu?', answer: false, explanation: 'N\u00e3o use produtos alheios sem permiss\u00e3o. Leve seus itens de higiene.', category: 'bathroom' },\r\n        { statement: 'Devo secar o ch\u00e3o do banheiro ap\u00f3s o banho se molhar tudo?', answer: true, explanation: 'Sim, \u00e9 gentileza com o pr\u00f3ximo que vai entrar de meias ou descal\u00e7o.', category: 'bathroom' },\r\n        { statement: '\u00c9 permitido fumar dentro do dormit\u00f3rio se a janela estiver aberta?', answer: false, explanation: 'Fumar em quartos \u00e9 proibido e pode acionar detectores de fuma\u00e7a.', category: 'general' },\r\n        { statement: 'O staff da recep\u00e7\u00e3o geralmente fala ingl\u00eas?', answer: true, explanation: 'Sim, a grande maioria dos recepcionistas de hostel fala pelo menos ingl\u00eas.', category: 'service' },\r\n        { statement: 'Posso arrumar minha mala fazendo barulho \u00e0s 5 da manh\u00e3?', answer: false, explanation: 'Tente arrumar tudo na noite anterior para sair em sil\u00eancio pela manh\u00e3.', category: 'dorm' },\r\n        { statement: '\u00c9 comum hostels oferecerem mapas gratuitos da cidade?', answer: true, explanation: 'Sim, e o staff geralmente d\u00e1 as melhores dicas locais no mapa.', category: 'service' },\r\n        { statement: 'Posso convidar algu\u00e9m que conheci na balada para tomar banho no hostel?', answer: false, explanation: 'Visitantes n\u00e3o registrados geralmente n\u00e3o podem passar da recep\u00e7\u00e3o.', category: 'security' },\r\n        { statement: 'Devo tirar os len\u00e7\u00f3is da cama ao fazer check-out?', answer: true, explanation: 'Muitos hostels pedem que voc\u00ea traga a roupa de cama usada at\u00e9 a recep\u00e7\u00e3o.', category: 'service' },\r\n        { statement: 'Posso cozinhar um banquete de 3 horas no hor\u00e1rio de pico da cozinha?', answer: false, explanation: 'Evite monopolizar o fog\u00e3o quando todos est\u00e3o com fome. Seja breve.', category: 'kitchen' },\r\n        { statement: '\u00c9 seguro compartilhar o c\u00f3digo da porta da frente com um entregador?', answer: false, explanation: 'Nunca. Voc\u00ea deve descer para pegar a encomenda. Mantenha a seguran\u00e7a.', category: 'security' },\r\n        { statement: 'Posso andar pelado do chuveiro at\u00e9 o meu quarto?', answer: false, explanation: 'N\u00e3o. Cubra-se com a toalha ou vista-se no banheiro. Respeite o espa\u00e7o comum.', category: 'general' },\r\n        { statement: 'A maioria dos hostels oferece Wi-Fi gratuito?', answer: true, explanation: 'Sim, Wi-Fi gr\u00e1tis \u00e9 item essencial em quase todos os hostels hoje.', category: 'service' },\r\n        { statement: 'Posso reservar a cama de baixo (beliche) com anteced\u00eancia?', answer: true, explanation: 'Alguns hostels permitem escolher, outros \u00e9 por ordem de chegada. Vale pedir!', category: 'dorm' },\r\n        { statement: 'Devo fechar a cortina da minha cama (se tiver) para ter privacidade?', answer: true, explanation: 'Sim, as cortinas \"pods\" s\u00e3o \u00f3timas para criar seu mini espa\u00e7o privado.', category: 'dorm' },\r\n        { statement: 'Posso deixar meu celular despertando soneca 10 vezes de manh\u00e3?', answer: false, explanation: 'Por favor, n\u00e3o! Acorde no primeiro toque para n\u00e3o irritar o quarto todo.', category: 'dorm' },\r\n        { statement: '\u00c9 legal oferecer comida que sobrou para outros h\u00f3spedes?', answer: true, explanation: 'Super legal! \u00c9 uma \u00f3tima forma de fazer amigos e evitar desperd\u00edcio.', category: 'kitchen' },\r\n        { statement: 'Posso ocupar duas tomadas para carregar celular e powerbank ao mesmo tempo?', answer: false, explanation: 'Se houver poucas tomadas, use apenas uma e compartilhe o recurso.', category: 'general' },\r\n        { statement: 'Devo limpar a mesa depois de comer, mesmo se tiver staff de limpeza?', answer: true, explanation: 'Sim. O staff limpa o geral, mas voc\u00ea deve limpar sua pr\u00f3pria sujeira imediata.', category: 'kitchen' },\r\n        { statement: 'Posso lavar minhas roupas no chuveiro e pendurar no quarto?', answer: false, explanation: 'Isso deixa o quarto \u00famido e com cheiro ruim. Use a lavanderia.', category: 'service' },\r\n        { statement: '\u00c9 aceit\u00e1vel falar alto no telefone dentro do quarto?', answer: false, explanation: 'V\u00e1 para a \u00e1rea comum ou corredor para falar ao telefone.', category: 'dorm' },\r\n        { statement: 'Posso trocar de cama se eu preferir outra que est\u00e1 vazia?', answer: false, explanation: 'Sempre pergunte na recep\u00e7\u00e3o. Aquela cama pode estar reservada para algu\u00e9m.', category: 'general' },\r\n        { statement: 'Hostels costumam ter \"Happy Hour\" ou eventos sociais?', answer: true, explanation: 'Sim! \u00c9 a melhor hora para socializar e beber barato.', category: 'social' },\r\n        { statement: 'Posso dormir no sof\u00e1 da sala comum se roncarem no meu quarto?', answer: false, explanation: 'Geralmente n\u00e3o \u00e9 permitido dormir nas \u00e1reas comuns. Fale com a recep\u00e7\u00e3o.', category: 'general' },\r\n        { statement: 'Devo respeitar o \"Quiet Hours\" (hor\u00e1rio de sil\u00eancio)?', answer: true, explanation: 'Essencial. Geralmente ap\u00f3s as 22h ou 23h, o sil\u00eancio \u00e9 regra.', category: 'dorm' },\r\n        { statement: 'Posso pedir para o staff guardar minha mala antes do check-in?', answer: true, explanation: 'A maioria tem um \"Luggage Room\" (sala de bagagem) para isso.', category: 'service' },\r\n        { statement: '\u00c9 comum dar gorjeta para os volunt\u00e1rios ou staff do hostel?', answer: true, explanation: 'Se o servi\u00e7o foi bom, \u00e9 muito apreciado, embora n\u00e3o obrigat\u00f3rio.', category: 'value' },\r\n        { statement: 'Posso usar o computador da recep\u00e7\u00e3o para imprimir passagens?', answer: true, explanation: 'Geralmente sim, \u00e0s vezes cobram uma pequena taxa pela impress\u00e3o.', category: 'service' },\r\n        { statement: 'Se eu ronco muito, devo avisar meus colegas de quarto?', answer: true, explanation: '\u00c9 gentil avisar e talvez oferecer protetores de ouvido se tiver extras.', category: 'social' },\r\n        { statement: 'Posso usar a m\u00e1quina de lavar do hostel sem perguntar o pre\u00e7o antes?', answer: false, explanation: 'Sempre confirme o pre\u00e7o antes. Alguns hostels cobram por lavagem e outros oferecem gr\u00e1tis.', category: 'service' },\r\n        { statement: '\u00c9 permitido cozinhar comidas com cheiro forte (como peixe) na cozinha compartilhada?', answer: false, explanation: 'Evite comidas com cheiro forte. Pode incomodar muito e o cheiro fica por horas.', category: 'kitchen' },\r\n        { statement: 'Devo avisar a recep\u00e7\u00e3o se vou chegar ap\u00f3s a meia-noite?', answer: true, explanation: 'Sim, especialmente se n\u00e3o for recep\u00e7\u00e3o 24h. Eles podem te dar c\u00f3digo de acesso.', category: 'service' },\r\n        { statement: 'Posso emprestar meu cadeado do locker para outro h\u00f3spede?', answer: false, explanation: 'N\u00e3o. Voc\u00ea \u00e9 respons\u00e1vel pela chave. Se perderem, voc\u00ea paga a troca.', category: 'security' },\r\n        { statement: '\u00c9 normal encontrar tomadas dentro do locker para carregar eletr\u00f4nicos?', answer: true, explanation: 'Hostels modernos t\u00eam tomadas USB dentro dos arm\u00e1rios para seguran\u00e7a dos aparelhos.', category: 'dorm' },\r\n        { statement: 'Posso secar minhas roupas no varal da \u00e1rea comum sem etiqueta?', answer: false, explanation: 'Identifique suas roupas! Caso contr\u00e1rio, pode ser confundida com roupa de outro.', category: 'general' },\r\n        { statement: 'Hostels pet-friendly permitem que meu cachorro durma na cama comigo?', answer: false, explanation: 'Geralmente o pet deve ficar em camas\/caixas pr\u00f3prias no ch\u00e3o, n\u00e3o na cama.', category: 'general' },\r\n        { statement: 'Posso estender minha estadia diretamente pela recep\u00e7\u00e3o?', answer: true, explanation: 'Sim, se houver disponibilidade. Fale com a recep\u00e7\u00e3o antes do check-out.', category: 'service' },\r\n        { statement: '\u00c9 obrigat\u00f3rio fazer o check-in presencialmente ou posso fazer online?', answer: false, explanation: 'Muitos hostels j\u00e1 oferecem check-in online, mas confirme antes de ir.', category: 'service' },\r\n        { statement: 'Posso deixar meu notebook carregando no quarto enquanto saio para passear?', answer: false, explanation: 'N\u00e3o \u00e9 seguro. Sempre guarde eletr\u00f4nicos no locker quando sair.', category: 'security' },\r\n        { statement: '\u00c9 normal que hostels vendam bebidas alco\u00f3licas no bar interno?', answer: true, explanation: 'Sim! Muitos t\u00eam bar pr\u00f3prio com pre\u00e7os acess\u00edveis e promo\u00e7\u00f5es.', category: 'social' },\r\n        { statement: 'Posso levar meu pr\u00f3prio travesseiro e cobertor de casa?', answer: true, explanation: 'Claro! Muitos viajantes trazem itens pessoais para maior conforto.', category: 'dorm' },\r\n        { statement: 'Devo deixar gorjeta para a equipe de limpeza dos dormit\u00f3rios?', answer: true, explanation: 'N\u00e3o \u00e9 obrigat\u00f3rio, mas \u00e9 um gesto gentil deixar alguns trocados.', category: 'value' },\r\n        { statement: 'Posso usar chinelos de dedo para tomar banho no banheiro compartilhado?', answer: true, explanation: 'Recomendado! Chinelos protegem contra fungos e bact\u00e9rias do ch\u00e3o molhado.', category: 'bathroom' },\r\n        { statement: '\u00c9 permitido gravar v\u00eddeos ou tirar fotos dos outros h\u00f3spedes sem permiss\u00e3o?', answer: false, explanation: 'Nunca! Sempre pe\u00e7a autoriza\u00e7\u00e3o antes de fotografar ou filmar algu\u00e9m.', category: 'general' },\r\n        { statement: 'Hostels costumam ter seguro contra roubo de pertences pessoais?', answer: false, explanation: 'N\u00e3o. O hostel n\u00e3o se responsabiliza. Por isso, use sempre o locker.', category: 'security' },\r\n        { statement: 'Posso receber encomendas\/pacotes no endere\u00e7o do hostel?', answer: true, explanation: 'Sim, mas avise a recep\u00e7\u00e3o antes para n\u00e3o ter problemas com a entrega.', category: 'service' },\r\n        { statement: '\u00c9 comum ter regras sobre hor\u00e1rio limite para uso da cozinha?', answer: true, explanation: 'Sim, algumas cozinhas fecham \u00e0 noite (por volta das 23h) para evitar barulho.', category: 'kitchen' },\r\n        { statement: 'Posso deixar minha mochila grande bloqueando o corredor do quarto?', answer: false, explanation: 'Nunca! \u00c9 perigoso e incomoda. Guarde sua mochila embaixo ou ao lado da cama.', category: 'dorm' },\r\n        { statement: '\u00c9 aceit\u00e1vel comer na cama do dormit\u00f3rio compartilhado?', answer: false, explanation: 'Evite! Migalhas atraem insetos e podem sujar a roupa de cama.', category: 'dorm' },\r\n        { statement: 'Posso convidar outros h\u00f3spedes para meu anivers\u00e1rio na sala comum?', answer: true, explanation: 'Sim! Desde que respeite o hor\u00e1rio de sil\u00eancio e limpe depois.', category: 'social' },\r\n        { statement: 'Hostels oferecem arm\u00e1rios grandes o suficiente para malas de 23kg?', answer: false, explanation: 'Geralmente n\u00e3o. Lockers s\u00e3o para itens valiosos. A mala fica embaixo da cama.', category: 'dorm' },\r\n        { statement: '\u00c9 normal ter limite de tempo para o banho em hostels?', answer: true, explanation: 'Alguns t\u00eam placas pedindo banhos de at\u00e9 5-10 minutos para n\u00e3o faltar \u00e1gua quente.', category: 'bathroom' },\r\n        { statement: 'Posso usar a geladeira para guardar alimentos por mais de 3 dias?', answer: false, explanation: 'A maioria dos hostels limpa geladeiras semanalmente. Marque a data e consuma logo.', category: 'kitchen' },\r\n        { statement: '\u00c9 permitido fazer trabalho remoto nas \u00e1reas comuns durante o dia?', answer: true, explanation: 'Sim! Muitos hostels t\u00eam espa\u00e7os de coworking ou mesas para trabalhar.', category: 'general' },\r\n        { statement: 'Posso trancar a porta do banheiro compartilhado por 40 minutos?', answer: false, explanation: 'Seja r\u00e1pido! Outros tamb\u00e9m precisam usar. Respeite o tempo de todos.', category: 'bathroom' },\r\n        { statement: '\u00c9 comum ter tomada perto da cama para carregar o celular?', answer: true, explanation: 'Sim, hostels modernos t\u00eam tomadas e USB na lateral dos beliches.', category: 'dorm' },\r\n        { statement: 'Posso pedir emprestado utens\u00edlios da cozinha (panelas, pratos) para levar no quarto?', answer: false, explanation: 'Utens\u00edlios devem ficar na cozinha. N\u00e3o leve para o quarto ou voc\u00ea paga multa.', category: 'kitchen' },\r\n        { statement: 'Hostels costumam ter parceria com restaurantes locais para descontos?', answer: true, explanation: 'Sim! Muitos oferecem cupons de desconto em restaurantes e bares pr\u00f3ximos.', category: 'value' },\r\n        { statement: '\u00c9 permitido fazer chamadas de v\u00eddeo no dormit\u00f3rio durante o dia?', answer: false, explanation: 'N\u00e3o. Mesmo de dia, pode ter gente dormindo ou descansando. V\u00e1 para \u00e1rea comum.', category: 'dorm' },\r\n        { statement: 'Posso deixar roupas no varal externo durante a noite?', answer: false, explanation: 'N\u00e3o \u00e9 seguro. Al\u00e9m de poder chover, h\u00e1 risco de furto. Recolha \u00e0 noite.', category: 'security' },\r\n        { statement: '\u00c9 normal ter espelho e tomada na \u00e1rea dos beliches para se arrumar?', answer: true, explanation: 'Hostels modernos t\u00eam essas comodidades para voc\u00ea n\u00e3o precisar ir ao banheiro.', category: 'dorm' },\r\n        { statement: 'Posso usar os jogos de tabuleiro da \u00e1rea comum e levar para o quarto?', answer: false, explanation: 'Jogos ficam na \u00e1rea comum para todos usarem. N\u00e3o leve para o quarto.', category: 'social' },\r\n        { statement: '\u00c9 aceit\u00e1vel reservar mesa ou sof\u00e1 da \u00e1rea comum com minhas coisas por horas?', answer: false, explanation: 'N\u00e3o \"marque territ\u00f3rio\". Se sair, libere o espa\u00e7o para outros usarem.', category: 'general' },\r\n        { statement: 'Hostels costumam ter biblioteca de troca de livros (book exchange)?', answer: true, explanation: 'Sim! Deixe um livro e leve outro. \u00c9 uma tradi\u00e7\u00e3o bacana em hostels.', category: 'social' },\r\n        { statement: 'Posso usar o secador de cabelo por 30 minutos no banheiro compartilhado?', answer: false, explanation: 'Seja breve! Outros est\u00e3o esperando. Use no m\u00e1ximo 5-10 minutos.', category: 'bathroom' },\r\n        { statement: '\u00c9 permitido deixar meus cal\u00e7ados no corredor fora do quarto?', answer: false, explanation: 'Cal\u00e7ados podem fazer algu\u00e9m trope\u00e7ar. Guarde embaixo da sua cama.', category: 'dorm' },\r\n        { statement: 'Hostels oferecem transfer gratuito do aeroporto?', answer: false, explanation: 'Alguns oferecem, mas geralmente \u00e9 pago. Sempre confirme os valores antes.', category: 'service' },\r\n        { statement: '\u00c9 normal ter \u00e1rea de fumantes designada no hostel?', answer: true, explanation: 'Sim, geralmente \u00e9 em \u00e1rea externa ou varanda. Nunca fume em \u00e1reas internas.', category: 'general' },\r\n        { statement: 'Posso trazer comida delivery para comer no dormit\u00f3rio?', answer: false, explanation: 'Coma na cozinha ou sala comum. Cheiro de comida no quarto incomoda muito.', category: 'dorm' },\r\n        { statement: '\u00c9 comum ter prateleira individual dentro do locker?', answer: false, explanation: 'Lockers geralmente s\u00e3o espa\u00e7os vazios. Voc\u00ea organiza como quiser dentro.', category: 'dorm' },\r\n        { statement: 'Posso pedir reembolso se n\u00e3o gostar do hostel no primeiro dia?', answer: false, explanation: 'Pol\u00edticas variam, mas geralmente n\u00e3o h\u00e1 reembolso ap\u00f3s check-in. Leia antes.', category: 'value' },\r\n        { statement: 'Hostels costumam ter regras sobre consumo de bebidas alco\u00f3licas nas \u00e1reas comuns?', answer: true, explanation: 'Sim, alguns permitem apenas no bar\/\u00e1rea externa. Respeite as regras locais.', category: 'general' },\r\n        { statement: '\u00c9 permitido estender meu tempo no chuveiro se n\u00e3o houver fila?', answer: true, explanation: 'Se n\u00e3o tem ningu\u00e9m esperando e voc\u00ea precisa, aproveite. Mas n\u00e3o abuse!', category: 'bathroom' },\r\n        { statement: 'Posso fazer check-out tarde (ap\u00f3s \u00e0s 11h) sem pagar taxa extra?', answer: false, explanation: 'Late check-out geralmente tem custo adicional. Combine na recep\u00e7\u00e3o.', category: 'service' },\r\n        { statement: '\u00c9 normal encontrar prateleira de temperos compartilhados na cozinha?', answer: true, explanation: 'Sim! Muitos viajantes deixam temperos e molhos para todos usarem.', category: 'kitchen' },\r\n        { statement: 'Posso usar adaptador de tomada universal em todas as camas?', answer: true, explanation: 'Sim, mas verifique a voltagem do pa\u00eds para n\u00e3o queimar seus aparelhos.', category: 'dorm' },\r\n        { statement: 'Hostels vendem itens de higiene pessoal (shampoo, sabonete) na recep\u00e7\u00e3o?', answer: true, explanation: 'Sim, a maioria vende itens b\u00e1sicos para emerg\u00eancias, mas \u00e9 mais caro.', category: 'service' },\r\n        { statement: '\u00c9 aceit\u00e1vel pedir carona para outros h\u00f3spedes que est\u00e3o indo para o mesmo destino?', answer: true, explanation: 'Claro! Hostels s\u00e3o \u00f3timos para dividir custos de transporte e fazer amigos.', category: 'social' }\r\n    ],\r\n    messages: {\r\n      0: \"Ops! Precisa conhecer mais sobre hostels.\",\r\n      5: \"Meio termo! Conhece o b\u00e1sico.\",\r\n      7: \"Mandou bem! Sabe conviver.\",\r\n      10: \"Perfeito! H\u00f3spede dos sonhos!\"\r\n    }\r\n  };\r\n\r\n  let state = { cards: [], index: 0, score: 0, dragging: false, startX: 0, currentX: 0 };\r\n  const getEl = (id) => document.getElementById(id);\r\n\r\n  function init() {\r\n    if(!getEl('btn-start-game')) return setTimeout(init, 500);\r\n    \r\n    getEl('btn-start-game').onclick = startGame;\r\n    getEl('btn-next-card').onclick = nextCard;\r\n    getEl('btn-copy').onclick = copyCode;\r\n    getEl('btn-save-image').onclick = saveImage;\r\n\r\n    try {\r\n      const today = new Date().toDateString();\r\n      const saved = JSON.parse(localStorage.getItem('hostelGameDaily') || '{}');\r\n      if (saved.date === today) {\r\n        state.score = saved.score;\r\n        state.cards = Array(saved.total || 10).fill({});\r\n        showResult();\r\n      }\r\n    } catch(e) {}\r\n  }\r\n\r\n  function startGame() {\r\n    state.cards = [...CONFIG.questions].sort(() => 0.5 - Math.random()).slice(0, 10);\r\n    state.index = 0;\r\n    state.score = 0;\r\n    getEl('screen-start').classList.add('hidden-screen');\r\n    getEl('screen-game').classList.remove('hidden-screen');\r\n    renderCard();\r\n    updateProgress();\r\n  }\r\n\r\n  function renderCard() {\r\n    const container = getEl('card-container');\r\n    container.innerHTML = '';\r\n    if (state.index >= state.cards.length) return finishGame();\r\n\r\n    const rule = state.cards[state.index];\r\n    const el = document.createElement('div');\r\n    el.className = 'game-card';\r\n    el.id = 'current-card';\r\n    el.innerHTML = `\r\n      <div style=\"position: absolute; top: 20px; left: 20px; border: 4px solid #22c55e; color: #22c55e; border-radius: 8px; padding: 5px 10px; font-weight: bold; font-size: 2rem; transform: rotate(-12deg); opacity: 0;\" id=\"badge-sim\">SIM<\/div>\r\n      <div style=\"position: absolute; top: 20px; right: 20px; border: 4px solid #ef4444; color: #ef4444; border-radius: 8px; padding: 5px 10px; font-weight: bold; font-size: 2rem; transform: rotate(12deg); opacity: 0;\" id=\"badge-nao\">N\u00c3O<\/div>\r\n      <div class=\"h-2\/3 w-full p-6 flex items-center justify-center rounded-t-3xl bg-gradient-${rule.category} text-white\">\r\n        <svg class=\"w-20 h-20 opacity-90\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"><\/path>\r\n        <\/svg>\r\n      <\/div>\r\n      <div class=\"h-1\/3 p-6 flex flex-col justify-center items-center text-center\">\r\n        <h3 class=\"text-lg font-bold text-slate-800 leading-tight mb-2\">${rule.statement}<\/h3>\r\n        <p class=\"text-xs text-slate-400 uppercase font-semibold\">${rule.category}<\/p>\r\n      <\/div>`;\r\n    container.appendChild(el);\r\n    attachEvents(el);\r\n  }\r\n\r\n  function attachEvents(el) {\r\n    const start = (e) => { state.dragging = true; state.startX = e.pageX || e.touches[0].pageX; el.classList.add('swiping'); };\r\n    const move = (e) => {\r\n      if (!state.dragging) return;\r\n      const x = (e.pageX || e.touches[0].pageX) - state.startX;\r\n      state.currentX = x;\r\n      el.style.transform = `translateX(${x}px) rotate(${x * 0.05}deg)`;\r\n      const opacity = Math.min(Math.abs(x) \/ 100, 1);\r\n      if (x > 0) { el.querySelector('#badge-sim').style.opacity = opacity; el.querySelector('#badge-nao').style.opacity = 0; }\r\n      else { el.querySelector('#badge-nao').style.opacity = opacity; el.querySelector('#badge-sim').style.opacity = 0; }\r\n    };\r\n    const end = () => {\r\n      if (!state.dragging) return;\r\n      state.dragging = false;\r\n      el.classList.remove('swiping');\r\n      if (state.currentX > 100) handleSwipe(true);\r\n      else if (state.currentX < -100) handleSwipe(false);\r\n      else { el.style.transform = 'none'; el.querySelector('#badge-sim').style.opacity = 0; el.querySelector('#badge-nao').style.opacity = 0; }\r\n      state.currentX = 0;\r\n    };\r\n    el.addEventListener('mousedown', start); el.addEventListener('touchstart', start);\r\n    window.addEventListener('mousemove', move); window.addEventListener('touchmove', move);\r\n    window.addEventListener('mouseup', end); window.addEventListener('touchend', end);\r\n  }\r\n\r\n  function handleSwipe(isYes) {\r\n    const el = getEl('current-card');\r\n    const newEl = el.cloneNode(true);\r\n    el.parentNode.replaceChild(newEl, el);\r\n    newEl.style.transition = \"transform 0.4s ease\";\r\n    newEl.style.transform = `translateX(${isYes ? 1000 : -1000}px) rotate(${isYes ? 30 : -30}deg)`;\r\n    const rule = state.cards[state.index];\r\n    const correct = (isYes === rule.answer);\r\n    if (correct) state.score++;\r\n    setTimeout(() => showFeedback(correct, rule.explanation), 300);\r\n  }\r\n\r\n  function showFeedback(correct, text) {\r\n    getEl('feedback-overlay').classList.remove('hidden');\r\n    getEl('feedback-text').innerText = text;\r\n    const box = getEl('feedback-box');\r\n    const title = getEl('feedback-title');\r\n    const icon = getEl('feedback-icon-container');\r\n    if (correct) {\r\n      box.className = \"w-full max-w-xs bg-white rounded-3xl p-5 sm:p-6 text-center shadow-2xl border-b-8 border-green-500\";\r\n      title.className = \"text-xl sm:text-2xl font-bold mb-2 text-green-600\"; title.innerText = \"Mandou bem!\";\r\n      icon.className = \"mx-auto w-14 h-14 sm:w-16 sm:h-16 rounded-full flex items-center justify-center mb-4 bg-green-100 text-green-600\"; icon.innerText = \"\u2713\";\r\n    } else {\r\n      box.className = \"w-full max-w-xs bg-white rounded-3xl p-5 sm:p-6 text-center shadow-2xl border-b-8 border-red-500\";\r\n      title.className = \"text-xl sm:text-2xl font-bold mb-2 text-red-600\"; title.innerText = \"Ops...\";\r\n      icon.className = \"mx-auto w-14 h-14 sm:w-16 sm:h-16 rounded-full flex items-center justify-center mb-4 bg-red-100 text-red-600\"; icon.innerText = \"\u2715\";\r\n    }\r\n  }\r\n\r\n  function nextCard() {\r\n    getEl('feedback-overlay').classList.add('hidden');\r\n    state.index++; updateProgress(); renderCard();\r\n  }\r\n\r\n  function updateProgress() {\r\n    const pct = (state.index \/ state.cards.length) * 100;\r\n    getEl('progress-bar').style.width = `${pct}%`;\r\n    getEl('progress-text').innerText = `${Math.min(state.index + 1, state.cards.length)} \/ ${state.cards.length}`;\r\n  }\r\n\r\n  function finishGame() {\r\n    localStorage.setItem('hostelGameDaily', JSON.stringify({ date: new Date().toDateString(), score: state.score, total: state.cards.length }));\r\n    showResult();\r\n  }\r\n\r\n  function showResult() {\r\n    getEl('screen-game').classList.add('hidden-screen');\r\n    getEl('screen-start').classList.add('hidden-screen');\r\n    getEl('screen-result').classList.remove('hidden-screen');\r\n    \r\n    let discount = 0;\r\n    if (state.score >= 3) {\r\n      discount = Math.floor(state.score * 0.5);\r\n    } \r\n    \r\n    const data = `${state.score}-${CONFIG.secret}`;\r\n    let hash = 5381; for (let i = 0; i < data.length; i++) hash = ((hash << 5) + hash) + data.charCodeAt(i);\r\n    const sig = Math.abs(hash).toString(16).slice(-4).toUpperCase();\r\n    \r\n    const couponCode = `HOSTEL${state.score}-${sig}`;\r\n    \r\n    getEl('result-score').innerText = state.score;\r\n    getEl('result-discount').innerText = `${discount}%`;\r\n    getEl('result-code').innerText = couponCode;\r\n    \r\n    let msg = CONFIG.messages[0];\r\n    if (state.score >= 10) msg = CONFIG.messages[10];\r\n    else if (state.score >= 7) msg = CONFIG.messages[7];\r\n    else if (state.score >= 5) msg = CONFIG.messages[5];\r\n    getEl('result-message').innerText = msg;\r\n    \r\n    const whatsappMessage = encodeURIComponent(\r\n      `\ud83c\udfae *Desafio HostelHome* \ud83c\udfe0\\n\\n` +\r\n      `Ol\u00e1! Acabei de completar o desafio e consegui:\\n\\n` +\r\n      `\u2705 *${state.score} acertos* de 10 perguntas\\n` +\r\n      `\ud83c\udf81 *${discount}% de desconto*\\n` +\r\n      `\ud83c\udf9f\ufe0f *Cupom:* ${couponCode}\\n\\n` +\r\n      `Gostaria de usar meu desconto! \ud83d\ude0a`\r\n    );\r\n    getEl('btn-share-whatsapp').href = `https:\/\/wa.me\/${CONFIG.hostelWhatsApp}?text=${whatsappMessage}`;\r\n  }\r\n\r\n  function copyCode() {\r\n    navigator.clipboard.writeText(getEl('result-code').innerText);\r\n    getEl('btn-copy').innerText = \"Copiado!\";\r\n    setTimeout(() => getEl('btn-copy').innerText = \"Copiar C\u00f3digo\", 2000);\r\n  }\r\n\r\n  async function saveImage() {\r\n    const btn = getEl('btn-save-image');\r\n    const originalText = btn.innerHTML;\r\n    btn.innerHTML = '<span>Gerando...<\/span>';\r\n    btn.disabled = true;\r\n\r\n    try {\r\n      const canvas = await html2canvas(getEl('result-capture-area'), {\r\n        backgroundColor: '#f8fafc',\r\n        scale: 2,\r\n        logging: false\r\n      });\r\n      \r\n      canvas.toBlob((blob) => {\r\n        const url = URL.createObjectURL(blob);\r\n        const a = document.createElement('a');\r\n        a.href = url;\r\n        a.download = `hostel-resultado-${state.score}-pontos.png`;\r\n        document.body.appendChild(a);\r\n        a.click();\r\n        document.body.removeChild(a);\r\n        URL.revokeObjectURL(url);\r\n        \r\n        btn.innerHTML = '<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"w-5 h-5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg> Salvo!';\r\n        setTimeout(() => {\r\n          btn.innerHTML = originalText;\r\n          btn.disabled = false;\r\n        }, 2000);\r\n      });\r\n    } catch (error) {\r\n      console.error('Erro ao salvar imagem:', error);\r\n      btn.innerHTML = originalText;\r\n      btn.disabled = false;\r\n      alert('Erro ao gerar imagem. Tente novamente.');\r\n    }\r\n  }\r\n\r\n  init();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Desafio HostelHome Voc\u00ea sabe conviver em um hostel? Teste seus conhecimentos! Come\u00e7ar Desafio 10 perguntas r\u00e1pidas Progresso 1 \/ 10 \u2190 N\u00c3O SIM \u2192 Resultado Mensagem. 0 Acertos 0% Desconto Seu cupom &#8212; Copiar C\u00f3digo Desafio HostelHome Salvar Imagem Solicite o desconto Volte amanh\u00e3 para jogar novamente Pr\u00f3xima Carta<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2397,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2710","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/pages\/2710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/comments?post=2710"}],"version-history":[{"count":39,"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/pages\/2710\/revisions"}],"predecessor-version":[{"id":4841,"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/pages\/2710\/revisions\/4841"}],"up":[{"embeddable":true,"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/pages\/2397"}],"wp:attachment":[{"href":"https:\/\/hostelhome.com.br\/base\/wp-json\/wp\/v2\/media?parent=2710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}