@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary: #f8f5ec;--bg-secondary: #ffffff;--bg-tertiary: #f0ebd8;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-muted: #7a7a7a;--accent-primary: #D41159;--accent-secondary: #1A85FF;--accent-tertiary: #ffd700;--success: #00c853;--error: #ff3d00;--warning: #ffea00;--paper-border: 2px solid var(--text-primary);--paper-shadow: 4px 4px 0px rgba(0, 0, 0, .9);--glass-bg: var(--bg-secondary);--glass-border: rgba(0, 0, 0, .1);--glass-shadow: var(--paper-shadow);--overlay-bg: rgba(248, 245, 236, .85);--highlight-bg: rgba(0, 229, 255, .15);--success-bg: rgba(0, 200, 83, .15);--error-bg: rgba(255, 61, 0, .15);font-family:Outfit,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:500;color:var(--text-primary);background-color:var(--bg-primary);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");background-attachment:fixed;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;display:flex;flex-direction:column}#root{flex-grow:1;display:flex;flex-direction:column}.glass-panel{background:var(--bg-secondary);border:var(--paper-border);box-shadow:var(--paper-shadow);border-radius:8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease-out forwards}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.animate-pulse{animation:pulse 2s infinite}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}h1,h2,h3,h4,h5,h6{margin-top:0;font-weight:700;letter-spacing:-.02em}h1{font-size:3.5rem;color:var(--text-primary)}.btn-primary{background:var(--bg-tertiary);color:var(--text-primary);border:var(--paper-border);padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:2px 2px #000000e6;position:relative;overflow:hidden}.btn-primary:hover{transform:translate(-2px,-2px);box-shadow:4px 4px #000000e6}.btn-primary:active{transform:translate(2px,2px);box-shadow:0 0 #000000e6}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-bg);z-index:1000;display:flex;justify-content:center;align-items:center;padding:20px}.modal-content{background:var(--bg-secondary);border:var(--paper-border);box-shadow:var(--paper-shadow);border-radius:8px;width:100%;max-width:700px;max-height:75vh;overflow-y:auto;position:relative;display:flex;flex-direction:column}.modal-content::-webkit-scrollbar{width:10px}.modal-content::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:0 8px 8px 0}.modal-content::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-primary)}.modal-header{padding:20px 24px;border-bottom:var(--paper-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--bg-tertiary);z-index:10;border-top-left-radius:6px;border-top-right-radius:6px}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.modal-close{background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:4px;line-height:1;transition:color .2s}.modal-close:hover{color:var(--accent-primary)}.modal-body{padding:24px;text-align:left}.modal-body section{margin-bottom:32px}.modal-body h3{color:var(--accent-secondary);margin-bottom:16px;font-size:1.2rem}.modal-body ul{padding-left:20px;margin-bottom:16px}.modal-body li{margin-bottom:8px;color:var(--text-secondary)}.modal-body strong{color:var(--text-primary)}.mini-grid-container{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}.mini-hint-card{background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:12px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;width:140px;text-align:center}.mini-hint-card span{font-size:.9rem;color:var(--text-primary);font-weight:500}.mini-grid{display:grid;gap:2px;background:var(--glass-border);border:2px solid var(--glass-border);border-radius:4px;overflow:hidden}.mini-cell{width:20px;height:20px;background:var(--bg-primary);display:flex;justify-content:center;align-items:center;font-size:12px}.mini-cell.room-a{background:#3498db33}.mini-cell.room-b{background:#e74c3c33}.mini-cell.highlight{background:#00e5ff33;border:1px solid var(--accent-secondary)}.spotlight{position:relative;z-index:1001!important;box-shadow:0 0 0 4px var(--accent-primary),0 0 20px 10px #00bfa580!important;animation:pulse-spotlight 1.5s infinite;border-radius:inherit}@keyframes pulse-spotlight{0%{box-shadow:0 0 0 0 var(--accent-primary),0 0 20px 10px #00bfa580}50%{box-shadow:0 0 0 4px var(--accent-primary),0 0 30px 15px #00bfa5b3}to{box-shadow:0 0 0 0 var(--accent-primary),0 0 20px 10px #00bfa580}}.error-shake{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both;border:2px solid var(--danger)!important}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.tutorial-dim-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-bg);z-index:1000;pointer-events:none;transition:opacity .3s}.tutorial-active .glass-panel{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important;animation:none!important}.hint-scroll-container::-webkit-scrollbar{width:10px}.hint-scroll-container::-webkit-scrollbar-track{background:var(--bg-primary);border-radius:4px}.hint-scroll-container::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.hint-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--text-primary)}@keyframes fill-ring{0%{stroke-dasharray:0 100;opacity:.5}to{stroke-dasharray:100 100;opacity:1}}.long-press-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-90deg);width:90%;height:90%;pointer-events:none;z-index:10}.long-press-ring circle{fill:none;stroke:var(--accent-primary);stroke-width:6;stroke-dasharray:0 100;animation:fill-ring .4s linear forwards}
