:root{--font-sans: "Nunito", system-ui, Segoe UI, Roboto, Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--z-base: 1;--z-raised: 10;--z-overlay: 100;--z-toast: 1000;--bg-dark: #1a2035;--surface-dark: rgba(42, 52, 87, .7);--panel-dark: #232b4a;--text-dark: #eef2ff;--text-muted-dark: #a5b4fc;--accent-dark: #facc15;--accent-hover-dark: #fde047;--good-dark: #4ade80;--bad-dark: #f87171;--border-dark: rgba(255, 255, 255, .1);--chip-dark: #2a3457;--chip-hover-dark: #3c4a7a;--shadow-color-dark: rgba(0, 0, 0, .3);--bg-light: #fef9c3;--surface-light: rgba(255, 255, 255, .7);--panel-light: #fffbeb;--text-light: #44403c;--text-muted-light: #78716c;--accent-light: #fb923c;--accent-hover-light: #fdba74;--good-light: #22c55e;--bad-light: #ef4444;--border-light: rgba(0, 0, 0, .1);--chip-light: #ffffff;--chip-hover-light: #fef9c3;--shadow-color-light: rgba(0, 0, 0, .1)}[data-theme=dark]{--bg: var(--bg-dark);--surface: var(--surface-dark);--panel: var(--panel-dark);--text: var(--text-dark);--text-muted: var(--text-muted-dark);--accent: var(--accent-dark);--accent-hover: var(--accent-hover-dark);--good: var(--good-dark);--bad: var(--bad-dark);--border: var(--border-dark);--chip: var(--chip-dark);--chip-hover: var(--chip-hover-dark);--shadow-color: var(--shadow-color-dark)}[data-theme=light]{--bg: var(--bg-light);--surface: var(--surface-light);--panel: var(--panel-light);--text: var(--text-light);--text-muted: var(--text-muted-light);--accent: var(--accent-light);--accent-hover: var(--accent-hover-light);--good: var(--good-light);--bad: var(--bad-light);--border: var(--border-light);--chip: var(--chip-light);--chip-hover: var(--chip-hover-light);--shadow-color: var(--shadow-color-light)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}.app{width:min(98vw,1400px);margin-inline:auto;padding:var(--space-4);display:grid;gap:var(--space-4);grid-template-rows:auto 1fr}header{background:var(--surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-4);box-shadow:0 4px 12px var(--shadow-color),0 8px 32px var(--shadow-color);flex-shrink:0;z-index:var(--z-raised)}.header-left,.header-right{display:flex;align-items:center;gap:var(--space-4)}.title{font-weight:800;font-size:clamp(1.1rem,2vw,1.25rem)}.instructions{color:var(--text-muted);font-size:clamp(.8rem,1.5vw,.9rem);font-weight:600}.progress{display:flex;gap:var(--space-2);justify-content:center}.dot{width:10px;height:10px;border-radius:var(--radius-full);background:var(--border);transition:all var(--transition-base);cursor:pointer}.dot.active{background:var(--accent);transform:scale(1.2)}.dot:hover{transform:scale(1.1);background:var(--accent-hover)}button,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:var(--chip);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:700;cursor:pointer;transition:all var(--transition-fast);font-size:clamp(.8rem,1.5vw,.875rem);box-shadow:0 2px 8px transparent;display:inline-flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}button:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-color)}button:active,.btn:active{transform:translateY(0);scale:.98}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);min-width:80px;min-height:44px;font-size:clamp(.9rem,2vw,1rem);font-weight:800;box-shadow:0 4px 12px var(--shadow-color)}.btn-primary:hover{background:var(--accent-hover)}.btn-good{background:var(--good);color:var(--bg)}.btn-ghost{background:transparent;box-shadow:none}.btn-ghost:hover{background:var(--chip-hover)}.theme-toggle{font-size:1.25rem;width:44px;height:44px;padding:0;border-radius:var(--radius-md)}.panel{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr))}.scene-container{display:flex}.scene{background-color:var(--surface);background-position:center;background-size:contain;background-repeat:no-repeat;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px var(--shadow-color);width:100%;aspect-ratio:16 / 9;max-height:300px}.game-container{display:grid;grid-template-rows:1fr auto auto;gap:var(--space-4);background:var(--surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:0 8px 32px var(--shadow-color)}.zones{display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto}.zone{background:var(--panel);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-2);align-content:flex-start;align-items:flex-start;min-height:60px}.zone-header{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.zone-title{color:var(--text-muted);font-size:.8rem;font-weight:700}.hint-btn{background:var(--accent);color:var(--bg);padding:3px 8px;border-radius:var(--radius-sm);font-size:.75rem}.hint-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.word-placeholder{background:#0000001a;color:var(--text-muted);padding:var(--space-2);border-radius:var(--radius-sm);font-size:clamp(.8rem,2.2vw,1.1rem);border:2px dashed var(--border);min-width:50px;min-height:40px;flex:0 1 auto;display:flex;align-items:center;justify-content:center}.word-placeholder.drag-over{border-color:var(--accent);background-color:var(--chip-hover)}.word-placeholder.correct{border-style:solid;border-color:var(--good)}.word-placeholder.incorrect{border-style:solid;border-color:var(--bad);animation:shake .4s}.pool{padding:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-start;background:var(--panel);border-radius:var(--radius-md);min-height:120px}.chip{background:var(--chip);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);font-weight:700;cursor:grab;-webkit-user-select:none;user-select:none;transition:all var(--transition-fast);font-size:clamp(.9rem,3vw,1.1rem);touch-action:none;box-shadow:0 2px 6px var(--shadow-color)}.chip:active{cursor:grabbing;transform:scale(.95)}.chip:hover{background:var(--chip-hover);transform:translateY(-2px)}.ghost{opacity:.5;transform:rotate(5deg);background:var(--accent)}.dragging{opacity:.5}.toast{position:fixed;left:50%;bottom:var(--space-5);transform:translate(-50%) translateY(20px);background:var(--accent);color:var(--bg);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);box-shadow:0 8px 30px var(--shadow-color);font-weight:700;opacity:0;pointer-events:none;transition:all var(--transition-slow);z-index:var(--z-toast)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (max-width: 800px){.app{padding:var(--space-2)}header{padding:var(--space-2) var(--space-3)}.instructions{display:none}}
