:root{--bg-primary:#0a0a0a;--bg-secondary:#171717;--bg-tertiary:#262626;--border-light:#ffffff1a;--border-hover:#fff3;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#2563eb;--accent-primary-hover:#1d4ed8;--accent-success:#10b981;--accent-error:#ef4444;--accent-warning:#f59e0b;--accent-highlight:#3b82f6;--font-main:"Inter", system-ui, -apple-system, sans-serif;--container-width:100%;--border-radius-lg:8px;--border-radius-md:6px;--transition-smooth:all .2s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;padding-bottom:40px;overflow-x:hidden}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--text-primary);font-weight:600}.app-container{max-width:var(--container-width);width:100%;margin:0 auto;padding:24px 40px}.glass-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--border-radius-lg);transition:var(--transition-smooth);padding:24px}.glass-card:hover{border-color:var(--border-hover)}.hover-lift{transition:transform .2s,box-shadow .2s}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.app-header-bar{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;display:flex}.logo-section h1{color:#fff;font-size:1.5rem;font-weight:600}.logo-section p{color:var(--text-secondary);margin-top:4px;font-size:.875rem}.header-controls{align-items:center;gap:16px;display:flex}.stats-counter-badge{flex-direction:column;align-items:flex-end;display:flex}.stats-counter-badge .lbl{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem}.stats-counter-badge .val{color:var(--accent-primary);font-size:1.25rem;font-weight:600}.language-selector-wrapper{position:relative}.language-select-dropdown,.styled-select{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);color:var(--text-primary);font-family:var(--font-main);cursor:pointer;transition:var(--transition-smooth);outline:none;padding:8px 12px;font-size:.875rem}.language-select-dropdown:hover,.styled-select:hover{border-color:var(--border-hover)}.language-select-dropdown option,.styled-select option{background:var(--bg-secondary);color:var(--text-primary)}.dashboard-grid{grid-template-columns:400px 1fr;align-items:start;gap:24px;display:grid}.explorer-grid{grid-template-columns:320px 1fr;gap:24px;display:grid}.workspace-column{flex-direction:column;gap:24px;display:flex}.workspace-card-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:24px;display:flex}.workspace-card-header h2{font-size:1.25rem;font-weight:600}.glass-btn{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);color:var(--text-primary);cursor:pointer;font-family:var(--font-main);transition:var(--transition-smooth);align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;display:inline-flex}.glass-btn:hover:not(:disabled){border-color:var(--border-hover);background:#333}.glass-btn:disabled{opacity:.5;cursor:not-allowed}.glass-btn.primary-btn,.suggest-btn{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff!important}.glass-btn.primary-btn:hover,.suggest-btn:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.board-wrapper{aspect-ratio:1;border:1px solid var(--border-light);touch-action:none;background:#111;border-radius:12px;width:100%;max-width:360px;margin:0 auto;padding:24px;position:relative}.pattern-svg-board{-webkit-user-select:none;user-select:none;width:100%;height:100%}.decor-circle,.decor-axis{display:none}.board-line,.board-line-active{fill:none;stroke:var(--accent-primary);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.board-line-guide{fill:none;stroke:var(--text-muted);stroke-width:4px;stroke-dasharray:4 6;opacity:.5;stroke-linecap:round}.board-line-success{stroke:var(--accent-success)}.board-line-error{stroke:var(--accent-error)}.node-group{cursor:pointer}.node-hitbox{fill:#0000;cursor:pointer}.node-dot{fill:var(--bg-tertiary);stroke:var(--border-hover);stroke-width:2px;transition:var(--transition-smooth);r:6}.board-node:hover .node-dot{fill:#333;r:8}.node-center{display:none}.node-active .node-dot{fill:var(--accent-primary);stroke:var(--accent-primary);r:8}.node-active.status-active .node-dot{fill:var(--accent-primary);stroke:var(--accent-primary)}.node-active.status-success .node-dot{fill:var(--accent-success);stroke:var(--accent-success)}.node-active.status-error .node-dot{fill:var(--accent-error);stroke:var(--accent-error)}.node-ripple,.node-index-bg,.node-index-text{display:none}.workspace-tabs-menu{border-bottom:1px solid var(--border-light);width:100%;margin-top:24px;display:flex}.workspace-tab-header-btn{color:var(--text-secondary);cursor:pointer;font-family:var(--font-main);transition:var(--transition-smooth);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 16px;font-size:.875rem;font-weight:500}.workspace-tab-header-btn:hover{color:var(--text-primary)}.workspace-tab-header-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-content-panel{flex-direction:column;min-height:240px;padding-top:24px;display:flex}.stats-empty-state,.practice-empty-state{text-align:center;color:var(--text-secondary);padding:40px 10px;font-size:.875rem}.stats-primary-row{align-items:center;gap:24px;margin-bottom:24px;display:flex}.score-gauge-container{width:80px;height:80px}.score-svg-gauge{width:100%;height:100%}.gauge-track{fill:none;stroke:var(--bg-tertiary);stroke-width:6px}.gauge-indicator{fill:none;stroke-width:6px;stroke-linecap:round;transform-origin:40px 40px;transform:rotate(-90deg)}.gauge-score-val{fill:var(--text-primary);text-anchor:middle;font-size:20px;font-weight:600}.gauge-score-label{display:none}.grade-badge-card{background:var(--bg-tertiary);border:1px solid var(--border-light);border-left:4px solid var(--accent-primary);border-radius:var(--border-radius-md);flex:1;padding:16px}.grade-badge-card .badge-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.grade-badge-card h2{margin:4px 0;font-size:1.25rem}.grade-badge-card .badge-text{color:var(--text-secondary);font-size:.875rem}.mnemonic-section,.security-warnings-section{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);margin-bottom:16px;padding:16px}.mnemonic-section h5,.security-warnings-section h5{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:8px;font-size:.875rem;font-weight:600;display:flex}.mnemonic-desc,.security-warnings-section .warning-item{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.stats-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.stat-card{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex}.stat-card .stat-num{color:var(--text-primary);font-size:1.25rem;font-weight:600}.stat-card .stat-label{color:var(--text-muted);margin-top:4px;font-size:.75rem}.practice-tabs{background:var(--bg-tertiary);border-radius:var(--border-radius-md);margin-bottom:16px;padding:4px;display:flex}.practice-tab-btn{color:var(--text-secondary);cursor:pointer;font-family:var(--font-main);transition:var(--transition-smooth);background:0 0;border:none;border-radius:4px;flex:1;padding:8px;font-size:.875rem;font-weight:500}.practice-tab-btn.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 3px #0003}.practice-instructions{color:var(--text-secondary);margin-bottom:16px;font-size:.875rem;line-height:1.5}.practice-feedback{border-radius:var(--border-radius-md);align-items:center;gap:8px;margin-bottom:16px;padding:12px;font-size:.875rem;font-weight:500;display:flex}.feedback-success{border:1px solid var(--accent-success);color:var(--accent-success);background:#10b9811a}.feedback-error{border:1px solid var(--accent-error);color:var(--accent-error);background:#ef44441a}.recall-scoreboard{background:var(--bg-tertiary);border-radius:var(--border-radius-md);justify-content:space-around;padding:16px;display:flex}.score-stat{flex-direction:column;align-items:center;display:flex}.score-val{font-size:1.25rem;font-weight:600}.score-lbl{color:var(--text-muted);text-transform:uppercase;margin-top:4px;font-size:.75rem}.filter-panel{flex-direction:column;gap:24px;display:flex}.filter-panel-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.filter-panel-header h3{font-size:1.125rem}.reset-btn-link{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;font-size:.875rem;font-weight:500}.reset-btn-link:hover{text-decoration:underline}.filter-section{flex-direction:column;gap:12px;display:flex}.filter-section.grid-split{grid-template-columns:1fr 1fr;gap:16px;display:grid}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.range-controls{flex-direction:column;gap:12px;display:flex}.range-group{align-items:center;gap:12px;font-size:.875rem;display:flex}.accent-range{-webkit-appearance:none;background:var(--bg-tertiary);border-radius:2px;outline:none;flex:1;height:4px}.accent-range::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--accent-primary);cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px}.segmented-control{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);padding:2px;display:flex}.segment-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:6px 4px;font-size:.875rem}.segment-btn.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 2px #0000001a}.mini-grid-container{background:var(--bg-tertiary);border-radius:var(--border-radius-md);flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.mini-grid-label{color:var(--text-secondary);font-size:.75rem}.mini-grid-selector{grid-template-columns:repeat(3,20px);gap:8px;display:grid}.mini-grid-dot{background:var(--bg-secondary);border:1px solid var(--border-hover);cursor:pointer;border-radius:50%;width:20px;height:20px}.mini-grid-dot.selected{background:var(--accent-primary);border-color:var(--accent-primary)}.filter-section.grid-split div:last-child .mini-grid-dot.selected{background:var(--accent-error);border-color:var(--accent-error)}.toggle-group{border-top:1px solid var(--border-light);flex-direction:column;gap:16px;padding-top:16px;display:flex}.toggle-label{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.styled-checkbox{accent-color:var(--accent-primary);cursor:pointer;width:16px;height:16px;margin-top:4px}.toggle-text{flex-direction:column;display:flex}.toggle-text strong{color:var(--text-primary);font-size:.875rem}.toggle-text small{color:var(--text-secondary);margin-top:4px;font-size:.75rem}.pattern-list-section{flex-direction:column;gap:16px;display:flex}.list-meta-bar{color:var(--text-secondary);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding-bottom:12px;font-size:.875rem;display:flex}.results-count{color:var(--text-primary);font-weight:600}.showing-indicator{background:var(--bg-tertiary);border-radius:4px;padding:4px 8px;font-size:.75rem}.pattern-cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;display:grid}.pattern-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);cursor:pointer;transition:var(--transition-smooth);flex-direction:column;align-items:center;padding:16px;display:flex}.pattern-card:hover{border-color:var(--border-hover);background:var(--bg-tertiary)}.card-header{width:100%;color:var(--text-muted);justify-content:space-between;font-size:.75rem;display:flex}.mini-svg-container{width:80px;height:80px;margin:16px 0}.mini-pattern-svg{width:100%;height:100%}.mini-dot-bg{fill:var(--bg-tertiary)}.mini-path-line{stroke:var(--accent-primary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;fill:none}.mini-start-node{fill:var(--accent-success)}.mini-end-node{fill:var(--accent-error)}.card-footer-info{width:100%;color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.load-action-text{color:var(--accent-primary);opacity:0;transition:var(--transition-smooth);font-size:.75rem}.pattern-card:hover .load-action-text{opacity:1}.load-more-container{justify-content:center;margin-top:24px;display:flex}.landing-container{max-width:800px;margin:0 auto;padding:40px 20px}.landing-header{justify-content:space-between;align-items:center;margin-bottom:60px;display:flex}.landing-header h1{font-size:1.25rem;font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%{box-shadow:0 0 #2563eb66}70%{box-shadow:0 0 0 15px #2563eb00}to{box-shadow:0 0 #2563eb00}}@keyframes floatBackground{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.landing-hero-modern{text-align:center;background:radial-gradient(circle at 15%,#2563eb14 0%,#0000 40%),radial-gradient(circle at 85% 30%,#2563eb0d 0%,#0000 40%),linear-gradient(135deg,#14141466 0%,#0000 100%);border:1px solid #2563eb1a;border-radius:24px;margin-bottom:80px;padding:80px 20px;animation:.8s ease-out fadeUp;position:relative;overflow:hidden}.landing-hero-modern:before{content:"";pointer-events:none;z-index:-1;opacity:.5;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0}.hero-badge{color:var(--accent-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2563eb26;border:1px solid #2563eb4d;border-radius:999px;margin-bottom:24px;padding:6px 16px;font-size:.875rem;font-weight:600;display:inline-block}.landing-hero-modern .hero-title{background:linear-gradient(90deg,#fff,#8892b0,#fff) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:24px;font-size:4rem;font-weight:800;line-height:1.2;animation:5s linear infinite floatBackground}.landing-hero-modern .hero-desc{color:var(--text-secondary);max-width:800px;margin-bottom:40px;margin-left:auto;margin-right:auto;font-size:1.25rem;line-height:1.6}.hero-cta-buttons{justify-content:center;gap:16px;display:flex}.landing-btn{letter-spacing:.5px;border-radius:999px;font-size:1.125rem;font-weight:600;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;padding:14px 32px!important}.landing-btn.primary-btn{animation:2.5s infinite pulseGlow}.landing-btn:hover{transform:scale(1.05)}.landing-features-grid{grid-template-columns:repeat(3,1fr);gap:32px;margin-bottom:80px;display:grid}.feature-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:16px;padding:32px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;animation:.8s ease-out backwards fadeUp}.feature-card:first-child{animation-delay:.2s}.feature-card:nth-child(2){animation-delay:.4s}.feature-card:nth-child(3){animation-delay:.6s}.feature-card:hover{border-color:#2563eb66;transform:translateY(-8px);box-shadow:0 12px 40px #2563eb26}.feature-icon{color:var(--accent-primary);background:#2563eb1a;border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:20px;transition:transform .3s,background .3s;display:flex}.feature-card:hover .feature-icon{background:#2563eb33;transform:scale(1.1)rotate(5deg)}.feature-card h3{color:var(--text-primary);margin-bottom:12px;font-size:1.25rem;font-weight:700}.feature-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.landing-why{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--border-radius-md);text-align:center;padding:32px}.landing-why h4{margin-bottom:16px;font-size:1.25rem}.landing-why p{color:var(--text-secondary);font-size:1rem;line-height:1.6}.mobile-main-tabs{display:none}@media (width<=1024px){.dashboard-grid,.explorer-grid,.landing-steps-grid{grid-template-columns:1fr}}
