:root{
  --navy:#101957;
  --blue:#116df2;
  --cyan:#28c7df;
  --teal:#0bb7aa;
  --green:#28b96b;
  --pink:#f43d8b;
  --coral:#ff6f61;
  --orange:#ff9f2f;
  --yellow:#ffc61e;
  --purple:#7b48e8;
  --ink:#17204d;
  --muted:#68718e;
  --line:#dce8f3;
  --surface:#ffffff;
  --surface-soft:#f7fbff;
  --shadow-xs:0 5px 14px rgba(25,61,105,.08);
  --shadow-sm:0 12px 32px rgba(25,61,105,.12);
  --shadow-lg:0 28px 70px rgba(25,61,105,.18);
  --radius:24px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font: Inter, ui-rounded, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
*{box-sizing:border-box}
html{min-height:100%;background:#fffdfb}
body{margin:0;min-height:100dvh;font-family:var(--font);color:var(--ink);background:linear-gradient(180deg,#fffdfb 0%,#f7fbff 48%,#fff8fb 100%);overflow-x:hidden}
button,input{font:inherit}.svg-defs{position:absolute}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.is-hidden{display:none!important}
.page-bg{display:none}
.app{position:relative;z-index:1;width:min(1400px,100%);margin:0 auto;padding:10px 14px 16px;box-sizing:border-box;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;min-height:100dvh;display:flex;flex-direction:column}.app:has(#gameScreen:not(.is-hidden)){overflow:hidden;height:100dvh;min-height:0;padding:4px;width:100%;max-width:none}
.topbar{
  display:none!important;
  align-items:center;gap:18px;
  padding:4px 4px 12px;
  /* Reserva a faixa da engrenagem: os botões ficam sempre à esquerda dela */
  padding-right:calc(var(--nb-gs-safe,60px) + max(8px,env(safe-area-inset-right,0px)) + 4px);
  border-bottom:0;background:transparent;position:relative;z-index:4;flex:0 0 auto;
  max-width:100%;min-width:0;box-sizing:border-box
}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}.brand img{width:clamp(72px,9vw,110px);height:auto;display:block}.game-heading{padding-left:18px;border-left:1px solid #d2e2ef;min-width:0;flex:1 1 auto;overflow:hidden}.game-heading h1{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1;margin:0;color:var(--navy);letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-heading p{margin:4px 0 0;color:#293878;font-size:.9rem;font-weight:650}.top-actions{margin-left:auto;display:flex;gap:9px;flex:0 0 auto;padding-right:0}.circle-btn,.toolbar-btn{width:46px;height:46px;border-radius:50%;border:1px solid #d7e5f1;background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:var(--shadow-xs);transition:.2s var(--ease)}.circle-btn:hover,.toolbar-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.circle-btn:active,.toolbar-btn:active{transform:scale(.95)}.circle-btn svg,.toolbar-btn svg{width:21px;height:21px}
.config-screen{padding:0 0 clamp(12px,2vw,24px);flex:1}.config-intro{max-width:760px;margin:4px auto 12px;text-align:center;padding-right:52px}.kicker,.modal-kicker{display:inline-flex;font-size:.72rem;letter-spacing:.18em;font-weight:900;color:var(--blue);background:#eaf5ff;border-radius:999px;padding:8px 12px}.config-intro h2{margin:0;font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.25;letter-spacing:-.02em;color:var(--navy);font-weight:800}.config-intro p{margin:0;color:var(--muted);font-size:1.02rem;line-height:1.5}

/* Busca + filtro mobile/tablet (estilo Quebra-cabeça) */
.mem-mobile-filters,.mem-my-photo-btn{display:none}
.mem-mobile-filters{align-items:center;gap:8px;margin:0 0 14px;max-width:none;width:100%;padding-right:52px;box-sizing:border-box}
.mem-mobile-search{
  flex:1;min-width:0;position:relative;display:flex;align-items:center;
  background:#fff;border:1px solid #e5e7eb;border-radius:999px;
  box-shadow:0 2px 8px rgba(15,23,42,.06);min-height:44px;padding:0 44px 0 18px
}
.mem-mobile-search:has(.mem-mobile-search-clear:not([hidden])){padding-right:72px}
.mem-mobile-search input{
  width:100%;border:0;background:transparent;outline:none;font:inherit;
  font-size:.95rem;font-weight:550;color:#1e293b;min-height:42px;
  appearance:none;-webkit-appearance:none
}
.mem-mobile-search input:focus,.mem-mobile-search input:focus-visible{outline:none;box-shadow:none}
.mem-mobile-search input::placeholder{color:#94a3b8;font-weight:500}
.mem-mobile-search input::-webkit-search-decoration,
.mem-mobile-search input::-webkit-search-cancel-button,
.mem-mobile-search input::-webkit-search-results-button,
.mem-mobile-search input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none;display:none}
.mem-mobile-search:focus-within{box-shadow:0 0 0 3px rgba(17,109,242,.14),0 2px 8px rgba(15,23,42,.06)}
.mem-mobile-search-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#94a3b8;pointer-events:none}
.mem-mobile-search-clear{position:absolute;right:40px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#94a3b8;display:grid;place-items:center;cursor:pointer;padding:0}
.mem-mobile-search-clear:hover{color:var(--navy);background:#f1f5f9}
.mem-mobile-filter-btn{
  width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;
  border:1px solid #e8e4f5;border-radius:50%;background:#f3f0fb;color:var(--purple);
  box-shadow:0 2px 8px rgba(15,23,42,.06);cursor:pointer;transition:background .15s ease,transform .15s ease
}
.mem-mobile-filter-btn:hover{background:#ebe6fa;transform:translateY(-1px)}
.mem-mobile-filter-btn[aria-expanded="true"]{background:var(--purple);color:#fff;border-color:var(--purple)}
.mem-mobile-filter-btn svg{width:20px;height:20px}
.mem-my-photo-btn{
  width:100%;max-width:none;margin:0 0 14px;align-items:center;justify-content:center;gap:8px;
  border:1.5px dashed #b8d7ef;border-radius:14px;padding:11px 14px;
  background:linear-gradient(145deg,#f7fbff,#fff8fb);color:var(--navy);
  font-weight:900;font-size:.92rem;cursor:pointer;box-shadow:var(--shadow-xs)
}
.mem-my-photo-btn__plus{
  width:26px;height:26px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;font-size:1.05rem;line-height:1;flex:0 0 auto
}
.mem-cats-panel{position:fixed;inset:0;z-index:1600}
.mem-cats-panel__backdrop{position:absolute;inset:0;background:rgba(19,30,63,.45)}
.mem-cats-panel__sheet{
  position:absolute;bottom:0;left:0;right:0;max-height:88vh;background:#fff;border-radius:28px 28px 0 0;
  display:flex;flex-direction:column;box-shadow:0 -18px 48px rgba(21,33,67,.18);
  animation:memSheetUp .28s cubic-bezier(.2,.8,.3,1)
}
@keyframes memSheetUp{from{transform:translateY(100%)}to{transform:none}}
.mem-cats-panel__handle{width:42px;height:5px;border-radius:999px;background:#d8e0ec;margin:12px auto 0}
.mem-cats-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 8px}
.mem-cats-panel__head h2{margin:0;font-size:1.15rem;color:var(--navy);font-weight:950}
.mem-cats-panel__close{width:36px;height:36px;border:0;border-radius:50%;background:#f3f6fb;color:#66708a;font-size:1.2rem;line-height:1;cursor:pointer}
.mem-cats-panel__body{flex:1;overflow-y:auto;padding:8px 18px 12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mem-cats-panel__foot{padding:12px 18px calc(14px + env(safe-area-inset-bottom,0));border-top:1px solid #e8eef6}
.mem-cats-panel__foot .play-btn{width:100%;min-height:52px;border-radius:999px}
.mem-cat-chip{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:86px;padding:12px 8px;border-radius:16px;border:1px solid #e1eaf4;background:#fff;
  font-size:.72rem;font-weight:800;color:#3d4860;cursor:pointer;text-align:center
}
.mem-cat-chip:hover{border-color:#c5daf0;color:var(--navy)}
.mem-cat-chip.active{border-color:color-mix(in srgb,var(--purple) 45%,#e1eaf4);background:#f5f1ff;color:var(--purple);box-shadow:0 0 0 1px color-mix(in srgb,var(--purple) 16%,transparent)}
.mem-cat-chip__icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#f7fbff;border:1px solid #e8eef6;font-size:1.15rem;line-height:1}
.mem-cat-chip.active .mem-cat-chip__icon{background:#fff;border-color:#ddd4ff}
.library-empty{grid-column:1/-1;min-height:180px;border:1px dashed #cfe0ef;border-radius:22px;background:linear-gradient(135deg,#f4fbff,#fff5f9);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;color:var(--muted)}
.library-empty strong{font-size:1.05rem;color:var(--navy);margin-bottom:7px}.library-empty span{font-size:.82rem;max-width:430px;line-height:1.5}

/* Desktop sidebar (igual Quebra-cabeça) */
.library-shell{display:grid;grid-template-columns:minmax(14rem,15.5rem) minmax(0,1fr);gap:20px;align-items:start;max-width:1180px;margin:0 auto}
.library-sidebar{position:sticky;top:12px;background:#fff;border:1px solid #e1ebf4;border-radius:24px;padding:18px 16px;box-shadow:var(--shadow-xs);max-height:calc(100dvh - 24px);overflow:auto;z-index:20}
.library-sidebar-group{margin-bottom:1.15rem}.library-sidebar-group:last-child{margin-bottom:0}
.library-sidebar-label{display:block;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8a94a8;margin:0 0 .65rem}
.library-search{position:relative}
.library-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7b879e;display:grid;place-items:center;pointer-events:none}
.library-search input{width:100%;border:1px solid #d7e3ef;background:#fff;border-radius:14px;padding:11px 12px 11px 38px;font-size:.86rem;font-weight:650;color:var(--ink);box-shadow:0 4px 12px rgba(33,65,105,.05);outline:none;box-sizing:border-box;appearance:none;-webkit-appearance:none}
.library-search input:focus{border-color:#9ec8f3;box-shadow:0 0 0 3px rgba(17,109,242,.14)}
.library-search input::-webkit-search-decoration,
.library-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.library-search-hint{margin:7px 0 0 2px;font-size:.66rem;color:#8a94a8;font-weight:650;line-height:1.35}
.library-sidebar-list{display:flex;flex-direction:column;gap:.4rem}
.library-sidebar-group-title{font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);margin:.55rem 0 .2rem;padding:0 2px}
.library-sidebar-item{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #e1eaf4;background:#fff;text-align:left;padding:9px 10px;border-radius:12px;cursor:pointer;color:#3d4860;font-weight:750;font-size:.84rem;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.library-sidebar-item:hover{background:#f7fbff;border-color:#c5daf0}
.library-sidebar-item.active{background:#fff;border-color:color-mix(in srgb,var(--blue) 45%,#e1eaf4);box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 18%,transparent);color:var(--navy)}
.library-sidebar-item-icon{width:28px;height:28px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;border:1px solid #e1eaf4;background:#f7fbff;font-size:.9rem;line-height:1}
.library-sidebar-item .count{margin-left:auto;font-size:.68rem;color:#8a94a8;font-weight:800}
.library-sidebar-item.active .count{color:var(--blue)}
.library-sidebar-item.is-upload{border-style:dashed;background:#f7fbff}
.library-main{min-width:0}

/* Pop-up de configuração */
.setup-modal-card{
  width:min(420px,100%);max-height:min(92vh,820px);padding:18px 22px 20px;border-radius:32px;
  text-align:left;display:flex;flex-direction:column;overflow:hidden;gap:0;min-width:0;
  box-shadow:0 28px 70px rgba(21,33,67,.28)
}
.setup-modal-handle{width:42px;height:5px;border-radius:999px;background:#d8e0ec;margin:0 auto 14px}
.setup-modal-close{right:14px;top:14px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:#f3f6fb;color:#66708a;font-size:1.15rem}
.setup-modal-close:hover{background:#e8eef6;color:var(--navy)}
.setup-modal-body{
  flex:1 1 auto;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;
  display:grid;gap:16px;padding:4px 0 8px;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none
}
.setup-modal-body::-webkit-scrollbar{display:none;width:0;height:0}
.setup-block{margin:0;min-width:0;max-width:100%}
.setup-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.setup-block-head h3{margin:0;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#7a869c}
.setup-block .section-note{font-size:.72rem;color:#79839d;font-weight:700}
.setup-modal-body .custom-panel{border-radius:18px;padding:12px;box-shadow:none;max-height:160px;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}
.setup-modal-body .custom-panel::-webkit-scrollbar{display:none;width:0;height:0}
.setup-modal-foot{padding-top:4px;display:grid;gap:6px;flex:0 0 auto;min-width:0}
.setup-play-btn{
  border-radius:999px;min-height:54px;padding:16px 20px;
  background:linear-gradient(100deg,var(--blue) 0%,#4f6ef5 48%,var(--purple) 100%);
  box-shadow:0 14px 28px rgba(69,89,220,.28);letter-spacing:.04em;text-transform:uppercase;font-size:.95rem
}
.setup-play-btn:hover{transform:translateY(-1px);box-shadow:0 18px 32px rgba(69,89,220,.34)}
.setup-modal-foot .playHint{margin:2px 0 0!important;min-height:1.1em}
#setupModal .difficulty-btn,#setupModal .player-btn{
  min-height:0;padding:12px 8px;border-radius:16px;border:1.5px solid #e1eaf4;background:#fff
}
#setupModal .difficulty-btn.selected,#setupModal .player-btn.selected{position:relative}
#setupModal .difficulty-btn.selected::after,#setupModal .player-btn.selected::after{
  content:"✓";position:absolute;top:8px;right:8px;width:18px;height:18px;border-radius:50%;
  display:grid;place-items:center;background:currentColor;color:#fff;font-size:.62rem;font-weight:950;line-height:1
}
#setupModal .player-btn.selected::after{background:var(--pink)}
#setupModal .difficulty-btn[data-id="facil"].selected::after{background:var(--green)}
#setupModal .difficulty-btn[data-id="medio"].selected::after{background:var(--blue)}
#setupModal .difficulty-btn[data-id="dificil"].selected::after{background:var(--purple)}
#setupModal .difficulty-grid{width:100%;min-width:0;gap:8px}
#setupModal .difficulty-btn{min-width:0;overflow:hidden;padding:10px 6px}
#setupModal .difficulty-btn strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#setupModal .difficulty-btn span{font-size:.64rem}
#setupModal .setup-block--scroll{position:relative;min-width:0;max-width:100%;overflow:hidden}
#setupModal .setup-block--scroll::after{
  content:"";position:absolute;top:0;right:0;bottom:0;width:28px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0),#f8fcff 88%);
  opacity:0;transition:opacity .18s ease
}
#setupModal .setup-block--scroll.is-scrollable::after{opacity:1}
#setupModal .setup-block--scroll.is-at-end::after{opacity:0}
#setupModal .back-grid,#setupModal .player-grid{
  gap:8px;padding:2px 4px 8px;margin:0;width:100%;max-width:100%;box-sizing:border-box
}
#setupModal .player-btn{min-width:112px}#setupModal .back-btn{width:72px}
#setupModal .back-btn{padding:8px 6px;border-radius:14px;min-height:0}
#setupModal .back-swatch{max-height:88px;margin-bottom:6px;border-radius:12px}
#setupModal .back-btn.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue),0 0 0 3px rgba(17,109,242,.12)}
.link-btn{border:0;background:none;color:var(--blue);font-weight:850;font-size:.86rem;cursor:pointer;padding:8px 0}
.link-btn:hover{text-decoration:underline}
@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.library-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}
.upload-side{position:sticky;top:16px;background:linear-gradient(145deg,#fff 0%,#f3fbff 55%,#fff5f8 100%);border:1px solid #dce9f4;border-radius:24px;padding:18px;box-shadow:var(--shadow-xs)}
.upload-side-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;font-size:1.5rem;margin-bottom:12px}
.upload-side h2{font-size:1.12rem;color:var(--navy);margin:0 0 5px}
.upload-side>p{font-size:.82rem;color:var(--muted);line-height:1.45;margin:0 0 14px}
.upload-side .dropzone{margin-top:0;padding:18px 12px}
.upload-side-hint{margin:12px 0 0;font-size:.72rem;color:#8a94a8;font-weight:650}
.config-section,.custom-panel{background:#fff;border:1px solid var(--line);border-radius:26px;padding:20px;box-shadow:var(--shadow-xs)}
.config-section.compact{padding-bottom:18px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}
.section-heading>div{display:flex;align-items:center;gap:10px}
.section-heading h3,.custom-heading h3{margin:0;font-size:1.07rem;color:var(--navy)}
.section-step{width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--purple));color:white;font-size:.78rem;font-weight:900}
.section-note{font-size:.74rem;color:#79839d;font-weight:650}
.deck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,28px)}
.theme-card{padding:0;border:1px solid #d8e3ef;background:#fff;border-radius:22px;overflow:hidden;cursor:pointer;text-align:left;box-shadow:0 8px 22px rgba(24,53,93,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.theme-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(24,53,93,.12);border-color:#bcdcf7}
.theme-card:focus-visible{outline:3px solid rgba(17,109,242,.28);outline-offset:2px}
.theme-card-media{position:relative;display:block;aspect-ratio:3/4;min-height:220px;background:#eef3f8;overflow:hidden;isolation:isolate}
.theme-card-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:#eef3f8}
.theme-card-tag{position:absolute;left:10px;bottom:10px;z-index:2;max-width:calc(100% - 20px);padding:7px 12px;border-radius:999px;background:rgba(16,24,70,.78);color:#fff;font-size:.78rem;font-weight:850;letter-spacing:.01em;line-height:1.2;backdrop-filter:blur(6px);box-shadow:0 6px 16px rgba(10,20,50,.22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.theme-card[aria-current="true"]{border-color:var(--blue);box-shadow:0 0 0 3px rgba(17,109,242,.12),var(--shadow-xs)}

.custom-panel{border-color:#d3e9f5;background:linear-gradient(180deg,#fbfeff,#f7fbff)}.custom-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.custom-heading p{margin:4px 0 0;color:var(--muted);font-size:.8rem}.upload-count{background:#eef7ff;color:var(--blue);font-weight:900;border-radius:999px;padding:8px 11px;font-size:.78rem}.dropzone{position:relative;margin-top:15px;display:grid;place-items:center;text-align:center;padding:22px 16px;border:1.5px dashed #b9d6e8;border-radius:20px;background:#fff;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.dragover{border-color:var(--blue);background:#f3f9ff}.dropzone svg{width:30px;height:30px;color:var(--blue);margin-bottom:7px}.dropzone strong{font-size:.9rem;color:var(--navy)}.dropzone span{margin-top:4px;color:#7b849d;font-size:.72rem}.dropzone input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;opacity:0}.upload-warning{margin-top:10px;padding:10px 12px;border-radius:14px;background:#fff2f5;color:#a93555;font-size:.76rem;border:1px solid #ffd2de}.thumb-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px}.thumb{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:2px solid transparent;background:#eaf0f5}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.selected{border-color:var(--teal)}.thumb-toggle,.thumb-remove{position:absolute;width:22px;height:22px;border-radius:50%;border:0;display:grid;place-items:center;box-shadow:0 3px 10px rgba(0,0,0,.15)}.thumb-toggle{left:5px;top:5px;background:#fff;color:#9aa4b9}.thumb.selected .thumb-toggle{background:var(--teal);color:#fff}.thumb-toggle svg{width:12px;height:12px}.thumb-remove{right:5px;top:5px;background:rgba(19,29,67,.86);color:#fff;font-size:.7rem}
.difficulty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.difficulty-btn,.player-btn,.back-btn{border:1.5px solid #dfe9f2;background:#fff;border-radius:18px;color:var(--ink);min-height:86px;padding:12px;position:relative;transition:.2s var(--ease)}.difficulty-btn:hover,.player-btn:hover,.back-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-xs)}.difficulty-btn strong,.player-btn strong{display:block;font-size:.92rem;color:var(--navy)}.difficulty-btn span,.player-btn span{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}.difficulty-icon{width:34px;height:24px;margin:0 auto 8px;display:flex;gap:3px;align-items:end;justify-content:center}.difficulty-icon i{width:5px;border-radius:4px;background:currentColor}.difficulty-icon i:nth-child(1){height:8px}.difficulty-icon i:nth-child(2){height:14px}.difficulty-icon i:nth-child(3){height:20px}.difficulty-btn[data-id="facil"]{color:var(--green)}.difficulty-btn[data-id="medio"]{color:var(--blue)}.difficulty-btn[data-id="dificil"]{color:var(--purple)}.difficulty-btn.selected{border-color:currentColor;background:linear-gradient(180deg,#fff,color-mix(in srgb,currentColor 8%,white));box-shadow:inset 0 0 0 1px currentColor,var(--shadow-xs)}.difficulty-btn.selected strong{color:currentColor}
.player-grid,.back-grid{
  display:flex;gap:10px;width:100%;max-width:100%;min-width:0;
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;scroll-padding-inline:10px;
  -webkit-overflow-scrolling:touch;touch-action:pan-x;
  scrollbar-width:none;-ms-overflow-style:none;
  padding:2px 2px 8px;margin:0;cursor:grab
}
.player-grid:active,.back-grid:active{cursor:grabbing}
.player-grid::-webkit-scrollbar,.back-grid::-webkit-scrollbar{display:none;width:0;height:0}
.player-btn,.back-btn{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.player-btn{flex:0 0 auto;min-width:128px;min-height:68px;scroll-snap-align:center}.player-btn.selected{border-color:var(--pink);box-shadow:inset 0 0 0 1px var(--pink),var(--shadow-xs);background:#fff7fb}.player-btn.selected strong{color:#c92d72}
.back-btn{flex:0 0 auto;width:92px;min-height:0;padding:10px 8px;display:flex;flex-direction:column;align-items:center;scroll-snap-align:center}.back-swatch{width:100%;aspect-ratio:3/4;max-height:132px;border-radius:14px;margin-bottom:8px;position:relative;overflow:hidden;background:#f3f7fb center/contain no-repeat;border:1px solid #e1eaf4}.back-swatch--neural{background-image:url(../assets/cards/verso-1.webp)}.back-swatch--brilho{background-image:url(../assets/cards/verso-2.webp)}.back-swatch--ondas{background-image:url(../assets/cards/verso-3.webp)}.back-swatch--folhas{background-image:url(../assets/cards/verso-4.webp)}.back-swatch--espaco{background-image:url(../assets/cards/verso-5.webp)}.back-btn strong{font-size:.74rem;color:var(--navy)}.back-btn.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.summary-card{position:sticky;top:18px;background:linear-gradient(180deg,#fff,#f8fcff);border:1px solid var(--line);border-radius:28px;padding:15px;box-shadow:var(--shadow-sm)}.summary-preview{height:210px;border-radius:20px;overflow:hidden;background:#eef5fb;display:grid;grid-template-columns:1fr 1fr;gap:3px}.summary-preview img{width:100%;height:100%;object-fit:cover}.summary-preview.custom-summary{display:grid;place-items:center;background:linear-gradient(135deg,#fff0f7,#eef8ff);color:var(--purple)}.summary-preview.custom-summary svg{width:56px;height:56px}.summary-copy{padding:16px 4px 12px}.summary-copy span{font-size:.65rem;letter-spacing:.14em;color:#7f8aa3;font-weight:900}.summary-copy h3{margin:6px 0 4px;color:var(--navy);font-size:1.3rem}.summary-copy p{margin:0;color:var(--muted);font-size:.8rem}.play-btn,.modal-primary,.modal-secondary{border:0;border-radius:18px;min-height:58px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:8px;transition:.2s var(--ease)}.play-btn{width:100%;background:linear-gradient(135deg,var(--blue),#0759e6);color:#fff;font-size:1rem;box-shadow:0 12px 24px rgba(17,109,242,.22)}.play-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(17,109,242,.28)}.play-btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.play-btn svg,.modal-primary svg,.modal-secondary svg{width:19px;height:19px}.playHint{font-size:.68rem!important;text-align:center;color:#8d97ac!important;margin:10px 5px 0!important;line-height:1.4}
.game-screen{display:flex;flex-direction:column;gap:4px;padding:2px 2px 4px;background:#f4f8fc;flex:1 1 auto;min-height:0;overflow:hidden}.game-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin:0;padding-right:52px;box-sizing:border-box;flex:0 0 auto}.toolbar-btn{width:44px;height:44px;flex:0 0 auto}.hud{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%}.hud>div,.hud-time{min-width:0;padding:6px 18px;border:1px solid #d9e7f1;border-radius:15px;background:#fff;text-align:center;box-shadow:var(--shadow-xs)}.hud span{display:block;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:#7d879e;font-weight:800}.hud strong{display:block;margin-top:2px;font-size:1.05rem;color:var(--navy);font-variant-numeric:tabular-nums}.multi-score{width:100%;margin:0;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;flex:0 0 auto}.score-chip{display:flex;align-items:center;gap:7px;padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:.72rem;color:var(--muted)}.score-chip i{width:9px;height:9px;border-radius:50%;display:block}.score-chip.active{border-color:var(--pink);color:var(--navy);box-shadow:0 0 0 3px rgba(244,61,139,.08)}.score-chip strong{color:var(--navy)}
.board-shell{flex:1 1 auto;min-height:0;width:100%;margin:0;background:#f4f8fc;border:1px solid transparent;border-radius:16px;padding:clamp(2px,.6vw,8px);box-shadow:none;display:flex;align-items:center;justify-content:center;overflow:hidden;contain:layout}
/* Partida: fundo único (sem degradê) em toda a área ao redor das cartas */
html:has(#gameScreen:not(.is-hidden)),
body:has(#gameScreen:not(.is-hidden)),
body.is-playing,
body:has(#gameScreen:not(.is-hidden)) .app,
body.is-playing .app,
body:has(#gameScreen:not(.is-hidden)) .topbar,
body.is-playing .topbar{
  background:#f4f8fc!important;
}.memory-board{--cols:4;--rows:4;--card-w:96px;--card-h:96px;--gap:8px;display:grid;grid-template-columns:repeat(var(--cols),var(--card-w));grid-template-rows:repeat(var(--rows),var(--card-h));gap:var(--gap);margin:0;width:max-content;height:max-content;max-width:100%}.memory-card{position:relative;border:0;background:transparent;padding:0;width:var(--card-w);height:var(--card-h);border-radius:14px;outline-offset:3px;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation;container-type:inline-size;container-name:memory-card}.memory-card:focus-visible{outline:3px solid var(--blue)}.card-inner{position:absolute;inset:0;border-radius:inherit;transition:transform .28s var(--ease)}.memory-card.flipped .card-inner,.memory-card.matched .card-inner{transform:none}.card-face{position:absolute;inset:0;border-radius:inherit;overflow:hidden;transition:opacity .22s var(--ease),visibility .22s var(--ease)}.face-back{display:grid;place-items:center;color:var(--navy);box-shadow:0 7px 16px rgba(29,48,92,.18);border:2px solid rgba(255,255,255,.92);background:#d7e6f3 center/cover no-repeat;z-index:2;opacity:1;visibility:visible}.card-number-area{position:absolute;left:var(--num-x,50%);top:var(--num-y,47.5%);width:var(--num-size,48%);aspect-ratio:1;display:grid;place-items:center;pointer-events:none;transform:translate(-50%,-50%);box-sizing:border-box;container-type:size;container-name:card-num}
.card-number{display:grid;place-items:center;margin:0;padding:0;width:100%;height:100%;line-height:1;text-align:center;font-family:"Atkinson Hyperlegible",Arial,sans-serif;font-weight:700;color:#102A72;font-variant-numeric:tabular-nums;font-size:clamp(10px,calc(var(--card-w,96px)*0.28),68px);text-shadow:none;-webkit-text-stroke:0;max-width:100%;overflow:visible;box-sizing:border-box}
@supports (font-size:1cqmin){.card-number{font-size:clamp(10px,62cqmin,68px)}}
.memory-card[data-back="neural"]{--num-x:50%;--num-y:46.2%;--num-size:48%}
.memory-card[data-back="brilho"]{--num-x:50.3%;--num-y:42.8%;--num-size:50%}
.memory-card[data-back="ondas"]{--num-x:50%;--num-y:47.7%;--num-size:48%}
.memory-card[data-back="folhas"]{--num-x:49.4%;--num-y:53.8%;--num-size:46%}
.memory-card[data-back="espaco"]{--num-x:50%;--num-y:45.8%;--num-size:48%}.memory-card[data-back="neural"] .face-back{background-image:url(../assets/cards/verso-1.webp)}.memory-card[data-back="brilho"] .face-back{background-image:url(../assets/cards/verso-2.webp)}.memory-card[data-back="ondas"] .face-back{background-image:url(../assets/cards/verso-3.webp)}.memory-card[data-back="folhas"] .face-back{background-image:url(../assets/cards/verso-4.webp)}.memory-card[data-back="espaco"] .face-back{background-image:url(../assets/cards/verso-5.webp)}.face-front{background:transparent;border:2px solid #fff;box-shadow:0 8px 20px rgba(24,53,93,.16);z-index:1;opacity:0;visibility:hidden}.face-front img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:transparent}.memory-card.flipped .face-back,.memory-card.matched .face-back{opacity:0;visibility:hidden;z-index:1;pointer-events:none}.memory-card.flipped .face-front,.memory-card.matched .face-front{opacity:1;visibility:visible;z-index:2}.memory-card.matched{animation:matchPop .5s var(--ease)}.memory-card.matched .face-front{box-shadow:0 0 0 3px rgba(11,183,170,.38),0 8px 20px rgba(24,53,93,.16)}.memory-card.mismatch .card-inner{animation:shake .42s}@keyframes matchPop{40%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}.game-footer{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin:0;color:#7c869c;font-size:.76rem;flex:0 0 auto;min-height:1.2em;text-align:center}.text-action{border:0;background:transparent;color:var(--blue);font-weight:800;display:flex;align-items:center;gap:5px}.text-action svg{width:16px;height:16px}
body.is-playing .game-heading p{display:none}
.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:rgba(13,23,66,.58);backdrop-filter:blur(8px)}
#setupModal{z-index:1700}.modal-card{position:relative;width:min(620px,100%);background:linear-gradient(180deg,#fff,#f8fcff);border:1px solid #dbe8f2;border-radius:30px;padding:28px;box-shadow:0 30px 80px rgba(14,31,71,.28);text-align:center}.modal-card.small{width:min(460px,100%)}.modal-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:1.4rem}.modal-card h2{margin:10px 0 8px;color:var(--navy);font-size:clamp(1.7rem,4vw,2.35rem)}.modal-card>p{color:var(--muted);margin:0 0 18px}.how-list{display:grid;gap:9px;margin:20px 0;text-align:left}.how-list>div{display:flex;align-items:center;gap:11px;padding:12px;background:#f7fbff;border:1px solid #e2edf5;border-radius:16px}.how-list b{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--purple));color:white}.how-list span{font-size:.88rem;color:var(--ink)}.modal-primary,.modal-secondary{width:100%;margin-top:9px}.modal-primary{background:linear-gradient(135deg,var(--blue),#0759e6);color:#fff}.modal-secondary{background:#fff;color:var(--blue);border:1.5px solid #cfe1ef}.celebration{display:none}.result-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:20px 0}.ranking-title{margin:4px 0 0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#7e879e;text-align:left}.rank-item.current{border-color:var(--blue);background:#f0f7ff}.result-stat{padding:14px 8px;background:#f7fbff;border:1px solid #e0ebf3;border-radius:17px}.result-stat span{display:block;font-size:.64rem;color:#7e879e;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.result-stat strong{display:block;margin-top:4px;color:var(--navy);font-size:1.18rem}.ranking{display:grid;gap:8px;margin:18px 0}.rank-item{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:15px;background:#fff;text-align:left}.rank-item.winner{border-color:var(--yellow);background:#fffbea}.rank-item i{width:10px;height:10px;border-radius:50%}.rank-item span{flex:1;font-size:.84rem;font-weight:700}.rank-item strong{font-size:.84rem;color:var(--navy)}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.game-opening{position:fixed;inset:0;z-index:100000;background:#fff;display:grid;place-items:center;overflow:hidden}
.game-opening picture,.game-opening img{width:100%;height:100%;display:block}
.game-opening img{object-fit:contain;object-position:center;animation:openingZoom 1.2s ease both}
.game-opening.is-leaving{animation:openingFade .22s ease forwards;pointer-events:none}
@keyframes openingZoom{from{transform:scale(1.02);opacity:.88}to{transform:scale(1);opacity:1}}
@keyframes openingFade{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){.game-opening img{animation:none}}
@media (max-width:1050px){
  .mem-mobile-filters{display:flex}
  .mem-my-photo-btn{display:inline-flex}
  .library-sidebar,.upload-side{display:none!important}
  .library-shell{grid-template-columns:1fr}
  .library-layout{grid-template-columns:1fr}
  .deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .thumb-grid{grid-template-columns:repeat(5,1fr)}
  .game-screen{height:auto;min-height:0;padding:2px 0 4px}
  .app{width:100%;max-width:none;margin:0;padding:8px 10px 12px}
  .library-shell,.mem-mobile-filters,.mem-my-photo-btn{max-width:none;width:100%;margin-left:0;margin-right:0}
  .library-shell{margin:0}
  .mem-cats-panel__body{grid-template-columns:repeat(3,minmax(0,1fr))}
  .setup-modal-card{
    width:100%;max-width:none;max-height:min(90vh,920px);
    border-radius:28px;align-self:end;margin:0;
    padding:14px 16px 16px
  }
  #setupModal{
    align-items:end;
    padding:12px max(12px,env(safe-area-inset-left,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-right,0px))
  }
  #setupModal .difficulty-btn{padding:10px 6px}
  #setupModal .back-swatch{max-height:78px}
}
@media (max-width:980px){
  .app{padding:10px 12px 16px}
}
@media (max-width:700px){.theme-card-media{min-height:160px}.theme-card-tag{font-size:.72rem;padding:6px 10px;left:8px;bottom:8px}.app{width:100%;margin:0;padding:6px 8px 10px;min-height:100dvh;max-width:none}.app:has(#gameScreen:not(.is-hidden)){height:100dvh;margin:0;padding:2px;width:100%;max-width:none}.topbar{display:none!important}.brand img{width:72px}.game-heading{padding-left:9px;min-width:0}.game-heading h1{font-size:1.05rem}.game-heading p{display:none}.top-actions{gap:6px;padding-right:0}.circle-btn{width:40px;height:40px}.config-screen{padding:0 0 16px}.config-intro{padding-right:52px}.config-intro h2{font-size:1.15rem}.config-section,.custom-panel{border-radius:20px;padding:15px}.section-heading{align-items:flex-start}.section-note{max-width:145px;text-align:right}.library-shell,.mem-mobile-filters,.mem-my-photo-btn{max-width:none;width:100%}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.difficulty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.difficulty-btn{min-height:0;padding:10px 4px;border-radius:14px}.difficulty-btn strong{font-size:.82rem}.difficulty-btn span{font-size:.62rem;margin-top:2px}.difficulty-icon{width:28px;height:18px;margin:0 auto 5px;gap:2px}.difficulty-icon i{width:4px}.difficulty-icon i:nth-child(1){height:6px}.difficulty-icon i:nth-child(2){height:11px}.difficulty-icon i:nth-child(3){height:16px}.player-btn{min-width:118px;min-height:64px}.back-btn{width:84px}.back-swatch{max-height:120px}.thumb-grid{grid-template-columns:repeat(4,1fr)}.summary-card{grid-template-columns:112px 1fr;border-radius:22px}.summary-preview{height:100px}.summary-copy h3{font-size:1.05rem}.play-btn{min-height:56px}.game-screen{padding:0;gap:4px}.game-toolbar{gap:6px;padding-right:52px}.hud>div,.hud-time{min-width:0;padding:5px 14px}.hud{width:100%}.board-shell{padding:0;border-radius:12px}.memory-board{gap:5px}.memory-card,.card-inner,.card-face{border-radius:10px}.face-back,.face-front{border-width:1.5px}.result-actions{grid-template-columns:1fr}.modal-card{border-radius:24px;padding:24px 17px}}
@media (max-width:420px){.brand img{width:72px}.game-heading{border-left:0;padding-left:0}.game-heading h1{font-size:1rem}.topbar{display:none!important}.game-heading{display:none}.top-actions{gap:4px;padding-right:0}.circle-btn{width:38px;height:38px}.config-intro h2{font-size:1.1rem}.kicker{font-size:.62rem}.section-note{display:none}.difficulty-grid{gap:5px}.difficulty-btn{min-height:0;padding:8px 3px}.difficulty-btn strong{font-size:.76rem}.difficulty-btn span{font-size:.58rem}.difficulty-btn .difficulty-icon{display:none}.back-btn{min-height:74px}.player-btn{min-height:60px}.summary-card{grid-template-columns:92px 1fr;padding:11px}.summary-preview{height:82px}.memory-board{gap:4px}.board-shell{padding:2px}.memory-card,.card-inner,.card-face{border-radius:8px}.text-action{font-size:.68rem}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
