.tile{cursor:pointer;perspective:800px;aspect-ratio:1}.tile-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1),border-radius .7s ease;border-radius:5px}.tile.flipped .tile-inner{transform:rotateY(180deg)}.tile-back,.tile-front{position:absolute;inset:0;border-radius:5px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:border-radius .7s ease}.tile-front{background:var(--gradient);border:none;display:flex;align-items:center;justify-content:center;padding:.4rem;transition:opacity .15s,border-radius .7s ease}.tile:not(.flipped):hover .tile-front{opacity:.88}.tile.did-happen .tile-front{background:linear-gradient(135deg,#2d7a4f,#4caf6e)}.tile-description{font-size:clamp(9px,2.2vw,18px);font-weight:600;color:#ffffff;text-align:center;line-height:1.35;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.tile-back{transform:rotateY(180deg);background-repeat:no-repeat}.grid-wrapper{width:100%}.grid-status{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;min-height:2rem}.grid-progress{font-size:.875rem;color:#94a3b8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn-reveal-all{font-size:.8rem;font-weight:600;padding:.3rem .75rem;background:var(--gradient);border:none;color:#fff;border-radius:6px;cursor:pointer;transition:opacity .15s}.btn-reveal-all:hover{opacity:.88}.grid-complete{font-size:.875rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.photo-grid{display:grid;grid-gap:3px;gap:3px;width:100%;transition:gap .7s cubic-bezier(.4,0,.2,1)}.photo-grid.completing{gap:0;animation:grid-breathe .65s cubic-bezier(.34,1.56,.64,1)}@keyframes grid-breathe{0%{transform:scale(1)}45%{transform:scale(1.022)}to{transform:scale(1)}}.photo-grid.completing .tile-back,.photo-grid.completing .tile-front,.photo-grid.completing .tile-inner{border-radius:0}.prob-section{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-top:1rem;padding:.75rem 1rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:.8rem;color:#94a3b8;text-align:center}.prob-value{color:#94a3b8}.prob-odds{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-page{max-width:860px;margin:0 auto;padding:2rem 1.25rem 3rem}.game-header{text-align:center;margin-bottom:2rem}.game-header h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.35rem}.game-header p{color:#94a3b8;font-size:.9rem}.game-header-hint{margin-top:.25rem;font-size:.8rem}.game-header-hint a{color:#94a3b8;text-decoration:underline;text-underline-offset:2px}.game-header-hint a:hover{color:#64748b}.game-footer-hint{margin-top:.75rem;font-size:.8rem;color:#94a3b8;text-align:center}.game-footer-hint a{color:#94a3b8;text-decoration:underline;text-underline-offset:2px}.game-footer-hint a:hover{color:#64748b}.controls{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.75rem}.btn,.controls{align-items:center}.btn{display:inline-flex;gap:.4rem;padding:.55rem 1.1rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--gradient);color:#fff;border:none}.btn-primary:not(:disabled):hover{opacity:.88}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0}.difficulty-group{display:flex;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:3px;gap:2px}.difficulty-btn{padding:.35rem .9rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:#94a3b8;transition:color .15s}.difficulty-btn:hover{color:#475569}.difficulty-btn.active{background:var(--gradient);color:#fff}.game-error{border:1px solid #fecaca;background:#fff1f2;border-radius:10px;padding:1rem 1.25rem;color:#dc2626;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.game-loading{display:flex;justify-content:center;align-items:center;min-height:300px}.spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top:3px solid var(--accent-purple);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:300px;border:2px dashed #e2e8f0;border-radius:16px;color:#cbd5e1;padding:3rem}.empty-title{font-size:1rem;font-weight:600;color:#94a3b8}