@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f9f8f6;--bg-panel: rgba(249,248,246,.96);--bg-panel2: rgba(242,240,235,.97);--border: rgba(60,50,40,.1);--text: #23201a;--text-dim: #7a7060;--accent: hsl(25,30%,45%);--accent-lt: hsl(25,30%,93%);--accent-md: hsl(25,28%,55%);--green: #4a7c59}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,sans-serif}.game-root{display:flex;flex-direction:column;height:100vh;width:100vw;background:radial-gradient(ellipse at 50% 0%,#fbf7ef,#f9f8f6 60%)}.hud{flex-shrink:0;padding:8px 16px;background:var(--bg-panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;flex-wrap:wrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hud-left{display:flex;flex-direction:column;gap:2px;min-width:130px}.hud-center{flex:1;display:flex;flex-direction:column;gap:6px}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.hub-link{font-family:Inter,sans-serif;font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);text-decoration:none;transition:color .15s}.hub-link:hover{color:var(--accent)}.game-title{font-family:Playfair Display,Georgia,serif;font-size:17px;font-weight:700;letter-spacing:.01em;color:var(--text);white-space:nowrap}.stats{display:flex;gap:10px;font-size:10px;color:var(--text-dim);font-family:Inter,sans-serif;letter-spacing:.03em}.difficulty-row{display:flex;gap:5px;flex-wrap:wrap}.diff-btn{padding:3px 10px;border-radius:20px;border:1.5px solid var(--border);background:transparent;color:var(--text-dim);font-family:Inter,sans-serif;font-size:10px;font-weight:500;letter-spacing:.03em;cursor:pointer;transition:all .18s ease;white-space:nowrap}.diff-btn:hover{border-color:var(--accent-md);color:var(--accent);background:var(--accent-lt)}.diff-btn.active{border-color:var(--accent);background:var(--accent);color:#fff}.face-progress{display:flex;gap:5px;flex-wrap:wrap}.face-chip{font-size:9px;font-family:Inter,sans-serif;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:20px;border:1.5px solid;transition:all .3s ease;white-space:nowrap}.face-chip.done{animation:chipPop .3s ease}@keyframes chipPop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.selected-hint{font-size:10px;color:var(--green);font-family:Inter,sans-serif;letter-spacing:.02em;animation:pulse 1.2s ease-in-out infinite;white-space:nowrap}.selected-hint kbd{display:inline-block;padding:1px 5px;font-size:9px;font-family:monospace;background:#0000000f;border:1px solid rgba(0,0,0,.15);border-radius:3px;color:var(--text);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.win-banner{font-family:Playfair Display,serif;font-style:italic;font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.02em;animation:glow 1.2s ease-in-out infinite alternate;white-space:nowrap}@keyframes glow{0%{text-shadow:0 0 6px hsla(25,30%,45%,.3)}to{text-shadow:0 0 18px hsla(25,30%,45%,.7)}}.reset-btn{padding:5px 14px;border:1.5px solid var(--accent);border-radius:20px;background:transparent;color:var(--accent);font-family:Inter,sans-serif;font-size:10px;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:all .2s ease;white-space:nowrap}.reset-btn:hover{background:var(--accent);color:#fff}.music-btn{padding:5px 14px;border:1.5px solid var(--green);border-radius:20px;background:transparent;color:var(--green);font-family:Inter,sans-serif;font-size:10px;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:all .2s ease;white-space:nowrap}.music-btn:hover,.music-btn.active{background:var(--green);color:#fff}.music-control{display:flex;align-items:center;gap:6px}.music-next-btn{padding:4px 8px;border:1.5px solid var(--green);border-radius:20px;background:transparent;color:var(--green);font-size:12px;cursor:pointer;transition:all .2s ease;line-height:1}.music-next-btn:hover{background:var(--green);color:#fff}.hud-controls{display:flex;align-items:center;gap:10px}.scene-area{flex:1;position:relative;min-height:0}.canvas-wrapper{width:100%;height:100%;position:relative;background:radial-gradient(ellipse at 50% 30%,#faf5eb,#f9f8f6 70%)}.rotate-toggle{position:absolute;bottom:12px;right:14px;padding:5px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:20px;color:var(--text-dim);font-family:Inter,sans-serif;font-size:10px;letter-spacing:.04em;cursor:pointer;transition:all .2s ease;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.rotate-toggle:hover{background:var(--bg-panel2);color:var(--text);border-color:var(--accent-md)}.piece-tray{flex-shrink:0;background:var(--bg-panel);border-top:1px solid var(--border);padding:10px 16px;max-height:200px;overflow-y:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tray-label{font-size:10px;color:var(--text-dim);font-family:Inter,sans-serif;letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}.pieces-flat{display:flex;gap:4px;flex-wrap:wrap;align-items:flex-start}.piece-btn{border:none;border-radius:5px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;display:block;background-color:#e5e2dc;flex-shrink:0}.piece-btn:hover{filter:brightness(.94);transform:translateY(-1px);box-shadow:0 3px 8px #0000001f}.empty-tray{display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-style:italic;font-size:12px;color:var(--text-dim);letter-spacing:.02em}.group-label{font-size:9px;font-family:Inter,sans-serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding-bottom:4px;border-bottom:1px solid transparent}.webgl-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--text-dim);text-align:center;padding:20px}.fallback-icon{font-size:56px;opacity:.25;line-height:1}.webgl-fallback h2{font-family:Playfair Display,serif;font-size:18px;color:var(--text);letter-spacing:.01em}.webgl-fallback p{font-size:13px;line-height:1.6;max-width:320px}.instructions{position:absolute;top:10px;left:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;max-width:230px;overflow:hidden;box-shadow:0 4px 16px #00000012}.instructions-toggle{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;padding:9px 13px;cursor:pointer;font-family:Inter,sans-serif;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);text-align:left;transition:color .15s;font-weight:500}.instructions-toggle:hover{color:var(--text)}.instructions-arrow{font-size:7px;transition:transform .2s}.instructions-body{max-height:0;overflow:hidden;transition:max-height .28s ease}.instructions.open .instructions-body{max-height:400px}.instructions ol{list-style:decimal inside;display:flex;flex-direction:column;gap:5px;padding:0 13px 10px;margin:0}.instructions li{font-size:11px;color:var(--text);line-height:1.5}.instructions-keys{border-top:1px solid var(--border);padding:8px 13px 11px;display:flex;flex-direction:column;gap:5px}.keys-label{font-family:Inter,sans-serif;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:2px}.key-row{font-size:11px;color:var(--text);display:flex;align-items:center;gap:6px}.instructions kbd{display:inline-block;padding:1px 5px;font-size:9px;font-family:monospace;background:#0000000d;border:1px solid rgba(0,0,0,.12);border-radius:3px;color:var(--text);line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:2px}
