*,:before,:after{box-sizing:border-box}:root{--bg-primary:#0a0e1a;--bg-secondary:#131825;--bg-tertiary:#1c2235;--text-primary:#e8eaf0;--text-secondary:#7a819a;--text-muted:#4a5068;--border:#252b3d;--accent:#4a9eff;--completed:#34c759;--fail:#ff453a;--distress:#ffb340}html{-webkit-text-size-adjust:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro,Segoe UI,system-ui,sans-serif}button,input{-webkit-tap-highlight-color:transparent}.header{z-index:100;background:var(--bg-primary);border-bottom:1px solid var(--border);padding:0 1rem;padding-top:env(safe-area-inset-top);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:3.5rem;display:flex}.header-title{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.header-settings{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.5rem;padding:.25rem .5rem;font-size:1.4rem}.header-settings:active{background:var(--bg-tertiary)}.dashboard{flex-direction:column;align-items:center;gap:1.5rem;padding:1.5rem 1rem;display:flex}.dashboard-progress{flex-direction:column;align-items:center;gap:.5rem;display:flex}.progress-ring-container{width:100px;height:100px;position:relative}.progress-ring{width:100%;height:100%}.progress-ring-bg{stroke:var(--bg-tertiary)}.progress-ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s}.progress-ring-text{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.progress-pct{color:var(--text-primary);font-size:1.4rem;font-weight:700}.progress-label{color:var(--text-secondary);font-size:.8rem}.dashboard-stats{gap:2rem;display:flex}.stat{flex-direction:column;align-items:center;gap:.15rem;display:flex}.stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:700}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.mission-card{aspect-ratio:1;-webkit-user-select:none;user-select:none;border-radius:.5rem;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;transition:transform .1s;display:flex;position:relative}.mission-card.locked{background:var(--bg-tertiary);color:var(--text-muted);opacity:.35}.mission-card.available{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border)}.mission-card.available.next{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent)}.mission-card.completed{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--completed)}.mission-card.completed.first-try{background:color-mix(in srgb, var(--completed) 15%, var(--bg-secondary));border-color:var(--completed)}.mission-id{font-size:inherit}.mission-attempts{color:var(--text-secondary);font-size:.55rem;font-weight:600;position:absolute;bottom:2px;right:4px}.mission-actions{opacity:0;transition:opacity .15s;display:flex;position:absolute;inset:0}.mission-card.available:hover .mission-actions,.mission-card.available:active .mission-actions{opacity:1}.mission-card.available .mission-id{transition:opacity .15s}.mission-card.available:hover .mission-id,.mission-card.available:active .mission-id{opacity:0}.mission-btn{cursor:pointer;color:#fff;border:none;border-radius:.4rem;flex:1;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.mission-btn.pass{background:var(--completed);margin-right:1px}.mission-btn.fail{background:var(--fail);margin-left:1px}.mission-btn:active{transform:scale(.95)}.mission-distress{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.5rem;font-weight:700;line-height:1;position:absolute;top:2px;right:3px}.mission-distress.used{color:var(--distress)}.mission-distress-indicator{color:var(--distress);font-size:.5rem;font-weight:700;position:absolute;top:2px;right:3px}.mission-list{padding:0 1rem 2rem}.mission-list-header{padding:.5rem 0}.mission-list-header h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.8rem;font-weight:600}.mission-grid{grid-template-columns:repeat(auto-fill,minmax(2.75rem,1fr));gap:.5rem;display:grid}.settings{border-top:1px solid var(--border);flex-direction:column;gap:1.25rem;padding:1rem;display:flex}.settings-group{flex-direction:column;gap:.5rem;display:flex}.settings-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.settings-input{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);border-radius:.5rem;outline:none;padding:.6rem .75rem;font-family:inherit;font-size:.95rem}.settings-input:focus{border-color:var(--accent)}.settings-buttons{gap:.5rem;display:flex}.settings-btn{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;border-radius:.5rem;flex:1;padding:.6rem .75rem;font-size:.85rem;font-weight:600}.settings-btn:active{background:var(--bg-tertiary)}.settings-btn.danger{color:var(--fail);border-color:var(--fail)}.settings-btn.danger:active{background:color-mix(in srgb, var(--fail) 15%, var(--bg-secondary))}.settings-footer{flex-direction:column;align-items:center;gap:.15rem;padding-top:.5rem;display:flex}.settings-game{color:var(--text-muted);font-size:.75rem}.settings-date{color:var(--text-muted);font-size:.65rem}.app{background:var(--bg-primary);max-width:420px;min-height:100dvh;margin:0 auto}
