:root{--void-900: #0b1512;--void-800: #122019;--sky-050: #f6f8f5;--sky-100: #e8f0ea;--gold-300: #e0bd80;--gold-500: #b98b3e;--ink-900: #12211c;--ink-700: #33453d;--line: rgba(18, 33, 28, .12);--font-display: "Fraunces", "Georgia", serif;--font-body: "Inter", system-ui, sans-serif;--shell-padding: clamp(1.25rem, 4vw, 2.5rem);--card-gap: clamp(.5rem, 1.5vw, .85rem);--touch-min: 44px}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;font-family:var(--font-body);color:var(--ink-900);background:var(--sky-050);-webkit-text-size-adjust:100%}.match-game-root{min-height:100vh;min-height:100dvh}.match-game-root[data-screen=active]{background:linear-gradient(180deg,var(--sky-100) 0%,var(--sky-050) 12rem)}.game-screen--active{justify-content:flex-start;padding-top:1rem;padding-bottom:2.5rem;gap:1rem}.active-bar{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:4px;background:#fff}.active-bar__center{text-align:center;min-width:0}.active-bar__title{margin:0;font-size:.88rem;font-weight:600;color:var(--void-900)}.active-badge{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sky-050);background:var(--void-900);padding:.35rem .55rem;border-radius:4px;white-space:nowrap}.status-panel{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;border:1px solid var(--line);border-radius:4px;background:#ffffffbf}.status-label{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-500)}.status-values{margin:0;display:flex;gap:1rem;font-size:1rem;font-weight:600;color:var(--void-900)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink-700);padding:.55rem .85rem;font-size:.88rem}.btn-ghost:hover{background:var(--void-900);border-color:var(--void-900);color:var(--sky-050)}.game-shell{width:min(100%,72rem);margin:0 auto;padding:var(--shell-padding);padding-left:max(var(--shell-padding),env(safe-area-inset-left));padding-right:max(var(--shell-padding),env(safe-area-inset-right));padding-bottom:max(var(--shell-padding),env(safe-area-inset-bottom));min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.game-shell--active{justify-content:flex-start;padding-top:1.5rem;padding-bottom:2.5rem}.game-header{max-width:36rem;text-align:center}.game-header--compact{width:100%;max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;text-align:left}.game-header--compact h1{font-size:clamp(1.25rem,2.5vw,1.75rem);margin-bottom:0}.eyebrow{margin:0 0 .5rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-500)}h1{margin:0 0 .75rem;font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:500;color:var(--void-900);line-height:1.15}.lead,.win-detail{margin:0;font-size:1.05rem;line-height:1.6;color:var(--ink-700)}.progress{margin:0;font-size:.95rem;font-weight:600;color:var(--gold-500);white-space:nowrap}.status{margin:0;font-size:.95rem;color:var(--ink-700);text-align:center}.status span{font-weight:600;color:var(--void-900)}.game-screen--setup{justify-content:flex-start;padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:2rem;gap:1.25rem}.setup-links{width:min(100%,28rem);display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;justify-content:center;padding-top:.25rem}.setup-links .footer-link{appearance:none;border:none;background:none;padding:0;font:inherit;cursor:pointer}.setup-installed{width:min(100%,28rem);margin:0;text-align:center;font-size:.92rem;color:var(--gold-500);font-weight:600}.panel-overlay{position:fixed;inset:0;background:#0b151259;display:flex;align-items:flex-end;justify-content:center;padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));z-index:20}.panel-overlay[hidden]{display:none}body.modal-open{overflow:hidden}.panel{width:min(100%,480px);max-height:85dvh;overflow:auto;background:#fff;border-radius:16px 16px 0 0;padding:1.25rem;box-shadow:0 -8px 32px #0b15121f;text-align:left}.panel h2{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--void-900)}.panel p{margin:0 0 1rem;font-size:.9rem;line-height:1.55;color:var(--ink-700)}.panel-credits{font-size:.85rem}.panel-hint{font-size:.85rem;color:var(--ink-700)}.panel a{color:var(--void-900);font-weight:600}.panel a:hover{color:var(--gold-500)}.panel-legal{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem}.panel .btn-secondary{width:100%}.panel-close{margin-top:.25rem}.language-list{list-style:none;margin:0 0 .5rem;padding:0}.language-item{width:100%;text-align:left;border:1px solid var(--line);border-radius:4px;background:#fff;padding:.85rem 1rem;margin-bottom:.5rem;font:inherit;font-size:.95rem;font-weight:500;cursor:pointer;touch-action:manipulation}.language-item:hover{background:var(--sky-050)}.language-item.is-active{border-color:var(--void-900);background:var(--void-900);color:var(--sky-050)}.panel-instructions{margin-bottom:1rem}.panel-instructions__heading{margin:0 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-500)}.panel-instructions__heading:not(:first-child){margin-top:.85rem}.panel-instructions p{margin:0;font-size:.88rem}@media (min-width: 640px){.panel-overlay{align-items:center;padding:1.5rem}.panel{border-radius:16px;max-height:80dvh}}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink-700);font-weight:500}.btn-secondary:hover{background:var(--void-900);border-color:var(--void-900);color:var(--sky-050)}.app-footer{width:min(100%,28rem);padding:1.25rem 0 0;display:flex;flex-direction:column;align-items:center;gap:.85rem;border-top:1px solid var(--line)}.footer-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;justify-content:center}.footer-link{font-size:.85rem;color:var(--ink-700);text-decoration:underline;text-underline-offset:2px}.footer-link:hover{color:var(--void-900)}.footer-cta{display:block;width:100%;box-sizing:border-box;padding:.85rem 1.1rem;border:1.5px solid var(--void-900);border-radius:4px;background:#fff;font-size:.88rem;font-weight:600;color:var(--void-900);text-align:center;text-decoration:none;line-height:1.35}.footer-cta:hover{background:var(--void-900);color:var(--sky-050)}.setup-form{width:min(100%,28rem);display:flex;flex-direction:column;gap:1.25rem}.setup-fieldset{margin:0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:4px;background:#fff}.setup-fieldset legend{padding:0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-500)}.setup-options-grid{display:grid;grid-template-columns:1fr;gap:.85rem}@media (min-width: 480px){.setup-options-grid{grid-template-columns:1fr 1fr;gap:1.25rem}}.setup-option-group{min-width:0}.setup-group-label{margin:0 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-500)}.choice{display:flex;align-items:center;gap:.65rem;padding:.45rem 0;cursor:pointer;font-size:.98rem}.choice input{accent-color:var(--gold-500)}.btn{appearance:none;border:1px solid var(--void-900);background:#fff;color:var(--void-900);padding:.75rem 1.25rem;min-height:var(--touch-min);font:inherit;font-size:.95rem;font-weight:600;border-radius:4px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.btn:hover{background:var(--void-900);color:var(--sky-050)}.btn-primary{background:var(--void-900);color:var(--sky-050);border-color:var(--void-900)}.btn-primary:hover{background:var(--void-800)}.pairs-counter{font-size:1rem}.board-meta{width:100%;display:flex;flex-wrap:wrap;gap:.65rem}.board-meta .status-panel{flex:1 1 8rem}.card-grid{width:100%;max-width:42rem;display:grid;grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr));gap:var(--card-gap)}.card-grid--fixed{--cols: 4;grid-template-rows:repeat(3,minmax(0,auto))}.card-scene{perspective:900px;aspect-ratio:255 / 187;min-width:0}.card-scene--empty{border:1px dashed var(--line);border-radius:4px;background:#ffffff59;min-height:var(--touch-min)}.card{position:relative;width:100%;min-height:var(--touch-min);height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.4,.2,.2,1);border:2px solid transparent;background:transparent;padding:0;cursor:pointer;border-radius:4px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.card.is-flipped{transform:rotateY(180deg)}.card.is-selected{border-color:var(--gold-500)}.card.is-matched{cursor:default;opacity:.55}.card:disabled{cursor:default}.card-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:4px;overflow:hidden;box-shadow:0 2px 6px #0b151214,0 6px 18px #0b15120f;background:#fff}.card-face img{width:100%;height:100%;object-fit:cover;display:block}.card-face--front{transform:rotateY(180deg)}.gameplay-hint{width:100%;margin:0;text-align:center;font-size:.82rem;line-height:1.45;color:var(--ink-700)}.card-lightbox{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#0b1512e0;cursor:zoom-out}.card-lightbox__dialog{position:relative;width:min(100%,42rem);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:default}.card-lightbox__close{align-self:flex-end;color:var(--sky-050);border-color:#f6f8f559}.card-lightbox__close:hover{background:var(--sky-050);color:var(--void-900)}.card-lightbox__img{width:100%;max-height:min(78dvh,720px);object-fit:contain;border-radius:6px;box-shadow:0 8px 24px #00000059,0 24px 48px #00000040;background:#fff}.card-lightbox__hint{margin:0;font-size:.82rem;color:#f6f8f5d1;text-align:center}@media (max-width: 640px){:root{--shell-padding: .75rem;--card-gap: .4rem}.game-screen--active{padding-top:max(.5rem,env(safe-area-inset-top));gap:.65rem}.game-shell--active,.game-screen--active.game-shell{padding-top:max(.65rem,env(safe-area-inset-top))}.game-shell{gap:1rem}h1{font-size:clamp(1.65rem,7vw,2.25rem)}.lead,.win-detail{font-size:.98rem}.active-bar{grid-template-columns:auto 1fr;grid-template-areas:"menu badge" "center center";padding:.65rem .75rem;gap:.5rem}.active-bar .btn-ghost{grid-area:menu;justify-self:start}.active-bar__center{grid-area:center}.active-badge{grid-area:badge;justify-self:end}.active-bar__title{font-size:.78rem}.pairs-counter{font-size:.92rem}.progress{white-space:normal}.board-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.board-meta .status-panel{flex:unset;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem .55rem}.status-label{font-size:.68rem}.status-values{font-size:.88rem;gap:.5rem}.card-grid{max-width:none}.gameplay-hint{font-size:.78rem}.card-lightbox__img{max-height:min(72dvh,640px)}.choice{min-height:var(--touch-min);padding:.55rem 0;font-size:.95rem}.choice input{width:1.1rem;height:1.1rem}.setup-fieldset{padding:.85rem .9rem}.btn-ghost{min-height:var(--touch-min);padding:.55rem .75rem}.actions{width:100%}.actions .btn{flex:1 1 9rem}}@media (max-width: 380px){:root{--shell-padding: .55rem;--card-gap: .3rem}.board-meta{grid-template-columns:1fr 1fr}.board-meta .status-panel:last-child{grid-column:1 / -1}.active-bar__title{display:none}}@media (prefers-reduced-motion: reduce){.card{transition:none}}
