:root{--color-bg: #0f172a;--color-surface: #1e293b;--color-primary: #8b5cf6;--color-primary-hover: #7c3aed;--color-secondary: #06b6d4;--color-text: #f8fafc;--color-text-muted: #94a3b8;--font-main: "Outfit", sans-serif;--radius-md: 12px;--radius-lg: 24px;--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh;overflow-x:hidden}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}h1{font-size:3rem;background:linear-gradient(to right,var(--color-primary),var(--color-secondary));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:2rem;font-weight:700;letter-spacing:-.025em}button{cursor:pointer;border:none;font-family:inherit}.btn-primary{background:var(--color-primary);color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius-md);text-decoration:none;font-weight:600;display:inline-block;transition:background .2s}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:600;transition:background .2s;border:1px solid var(--color-text-muted)}.btn-secondary:hover{background:#2d3a4f}.puzzle-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:#222;z-index:100}.canvas-wrapper{flex:1;position:relative;overflow:hidden;cursor:default}.canvas-wrapper:active{cursor:pointer}canvas{display:block}.hidden{display:none!important}.fade-in{animation:fadeIn .5s ease-out}.win-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.win-card{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);text-align:center;max-width:500px;width:90%;box-shadow:0 25px 50px -12px #00000040}.win-image{width:100%;max-height:300px;object-fit:contain;margin:1.5rem 0;border-radius:var(--radius-md)}.win-actions{display:flex;gap:1rem;justify-content:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.subtitle{color:var(--color-text-muted);font-size:1.25rem;margin-bottom:3rem}.controls{margin-bottom:3rem;background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:inline-block}.slider-label{display:block;margin-bottom:1rem;font-size:1.25rem;font-weight:500}.difficulty-slider{width:100%;max-width:400px;cursor:pointer;accent-color:var(--color-primary)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;padding:1rem}.image-card{position:relative;background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;aspect-ratio:4/3;box-shadow:var(--shadow-lg)}.image-card:hover{transform:translateY(-5px);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.image-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.image-card:hover img{transform:scale(1.05)}.card-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;opacity:0;transition:opacity .3s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.image-card:hover .card-overlay{opacity:1}.error-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000}.error-card{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);text-align:center;max-width:400px;width:90%;box-shadow:0 25px 50px -12px #00000040}.error-card h2{color:var(--color-primary);margin-bottom:1rem}.error-card p{color:var(--color-text-muted);margin-bottom:1.5rem}.btn-secondary{background:var(--color-surface);color:var(--color-text);padding:.75rem 1.5rem;border-radius:var(--radius-md);text-decoration:none;font-weight:600;display:inline-block;transition:background .2s;border:1px solid var(--color-primary);margin-left:1rem}.btn-secondary:hover{background:var(--color-primary);color:#fff}.confirm-modal{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-card{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);text-align:center;max-width:450px;width:90%;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(139,92,246,.3)}.confirm-message{color:var(--color-text);font-size:1.1rem;margin-bottom:1.5rem;line-height:1.6}.confirm-actions{display:flex;gap:1rem;justify-content:center}.confirm-actions .btn-primary,.confirm-actions .btn-secondary{flex:1;max-width:150px}.fade-out{animation:fadeOut .2s ease-out forwards}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}
