@import url("https://fonts.googleapis.com/css2?family=Sora:wght@300;400;600;700&family=Inter:wght@300;400;600&display=swap");:root{--bg:#0a0e19;--surface:#111726;--card:#192033;--border:#283550;--accent:#75abc8;--accent-hover:#00e5ff;--accent2:#d0757d;--accent3:#8cbf9b;--text:#e0e7f3;--muted:#6e82a5;--gold:#debb6b;--silver:#a8b8c8;--bronze:#bf8450;--accent-dim:rgba(117,171,200,.08);--accent-border:rgba(117,171,200,.3);--gold-dim:hsla(42,64%,65%,.35)}*{box-sizing:border-box;margin:0;padding:0}button{touch-action:manipulation}body{font-family:Sora,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;overscroll-behavior:contain}body:before{background:radial-gradient(ellipse at 10% 20%,rgba(117,171,200,.07) 0,transparent 60%),radial-gradient(ellipse at 90% 80%,rgba(208,117,125,.05) 0,transparent 60%);z-index:0}body:after,body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}body:after{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 4px);z-index:9999}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{opacity:.4}50%{opacity:.8}to{opacity:.4}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-28px)}}@keyframes fadeOut{to{opacity:0;transform:scale(.96)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes urgentPulse{0%,to{box-shadow:0 0 0 0 rgba(208,117,125,.6)}50%{box-shadow:0 0 0 8px rgba(208,117,125,0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes pulse{to{opacity:.6}}@keyframes coinFlip{0%{transform:rotateY(0deg) scale(1)}10%{transform:rotateY(180deg) scale(1.05)}20%{transform:rotateY(1turn) scale(1)}30%{transform:rotateY(540deg) scale(1.05)}40%{transform:rotateY(2turn) scale(1)}50%{transform:rotateY(900deg) scale(1.05)}60%{transform:rotateY(3turn) scale(1)}70%{transform:rotateY(1260deg) scale(1.05)}80%{transform:rotateY(4turn) scale(1)}90%{transform:rotateY(1530deg) scale(1.02)}to{transform:rotateY(1620deg) scale(1)}}@keyframes coinLandWin{0%{transform:rotateY(0deg) scale(1)}40%{transform:rotateY(0deg) scale(1.25)}60%{transform:rotateY(0deg) scale(.92)}80%{transform:rotateY(0deg) scale(1.08)}to{transform:rotateY(0deg) scale(1)}}@keyframes coinLandLose{0%{transform:rotateY(180deg) scale(1)}30%{transform:rotateY(180deg) scale(.9)}60%{transform:rotateY(180deg) scale(1.05)}to{transform:rotateY(180deg) scale(1)}}@keyframes coinResultFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.coin-spinning{animation:coinFlip 2s cubic-bezier(.4,0,.6,1) forwards}.coin-land-win{animation:coinLandWin .6s cubic-bezier(.34,1.56,.64,1) forwards}.coin-land-lose{animation:coinLandLose .5s ease-out forwards}.fade-in{animation:fadeIn .4s ease}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{max-width:900px;margin:0 auto;padding:24px 20px;position:relative;z-index:1}@media (max-width:600px){.container{padding:16px}}.logo{font-size:13px;color:var(--accent);letter-spacing:3px;text-transform:uppercase;opacity:.8;margin-bottom:4px}h1{font-size:clamp(28px,5vw,52px);line-height:1.1;letter-spacing:-1px}h1,h2{font-weight:700}h2{font-size:clamp(18px,3vw,28px)}.btn{display:inline-block;padding:14px 32px;border-radius:6px;font-family:Sora,sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;cursor:pointer;border:none;min-height:44px;transition:background-color .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s,opacity .1s;touch-action:manipulation}.btn:active{transform:scale(.95);opacity:.85}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent-hover);color:#000;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,229,255,.25)}.btn-danger{background:var(--accent2);color:#fff}.btn-danger:hover{background:#c45f68;transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent-hover);color:var(--accent-hover)}.btn-full{width:100%;text-align:center;display:block}input[type=range].color-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:100%;height:32px;background:transparent;cursor:pointer;margin:0}input[type=range].color-slider::-webkit-slider-runnable-track{height:12px;background:transparent;border-radius:6px}input[type=range].color-slider::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.35);margin-top:-7px;cursor:-webkit-grab;cursor:grab;-webkit-transition:transform .1s;transition:transform .1s}input[type=range].color-slider:active::-webkit-slider-thumb{transform:scale(1.15);cursor:-webkit-grabbing;cursor:grabbing}input[type=range].color-slider::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.35);cursor:grab}input[type=range].color-slider::-moz-range-track{height:12px;background:transparent;border-radius:6px}input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:Sora,sans-serif;font-size:16px;padding:14px 16px;width:100%;outline:none;transition:border-color .2s,box-shadow .2s}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(117,171,200,.15)}.form-label{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;display:block}.form-group{margin-bottom:20px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px}.tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;letter-spacing:1px;font-weight:700}.tag-easy{background:rgba(140,191,155,.15);color:var(--accent3)}.tag-medium{background:hsla(42,64%,65%,.15);color:var(--gold)}.tag-hard{background:rgba(208,117,125,.15);color:var(--accent2)}.badge{background:rgba(117,171,200,.15);color:var(--accent);border-radius:20px;padding:4px 12px;font-size:12px;letter-spacing:1px}.nav{position:-webkit-sticky;position:sticky;top:0;background:rgba(10,14,26,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:18px 24px;display:flex;align-items:center;justify-content:space-between;z-index:100}@media (max-width:600px){.nav{padding:12px 16px}}.nav-brand{font-size:14px;color:var(--accent);letter-spacing:2px}.nav-right{display:flex;align-items:center;gap:16px}.nav-team{font-size:12px;color:var(--muted)}.nav-score{font-size:14px;color:var(--gold);font-weight:700}.missions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px;padding-bottom:40px}@media (max-width:600px){.missions-grid{grid-template-columns:1fr}}.mission-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden}.mission-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mission-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-hover);transform:scaleX(0);transform-origin:left;transition:transform .3s}@media (hover:hover){.mission-card:hover{border-color:var(--accent-hover);transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.4)}.mission-card:hover:before{transform:scaleX(1)}}.mission-card.done{opacity:.5;cursor:default;pointer-events:none}.mission-card.done:after{content:"✓ DONE";position:absolute;top:12px;right:12px;font-size:11px;color:var(--accent3);letter-spacing:1px}.skeleton{background:var(--border);border-radius:8px;animation:shimmer 1.4s ease-in-out infinite}.mission-card{touch-action:manipulation}.mission-card:active{transform:scale(.97);box-shadow:none!important}.score-delta{position:absolute;top:-8px;right:-8px;color:var(--accent3);font-weight:800;font-size:13px;animation:floatUp 1.4s ease forwards;pointer-events:none;white-space:nowrap}.urgent-pulse{animation:urgentPulse .8s ease-in-out infinite}.mission-icon{font-size:36px;margin-bottom:16px;display:block}@media (max-width:600px){.mission-card{padding:16px}.mission-icon{font-size:28px;margin-bottom:10px}.mission-name{font-size:14px}}.mission-name{font-size:15px;font-weight:700;margin-bottom:8px}.mission-desc{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:16px}.mission-meta{display:flex;align-items:center;justify-content:space-between}.mission-pts{font-size:12px;color:var(--accent)}.challenge-wrap{max-width:720px;margin:0 auto;padding:32px 20px;position:relative;z-index:1}@media (max-width:600px){.challenge-wrap{padding:16px}}.challenge-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;gap:16px}@media (max-width:600px){.challenge-header{margin-bottom:20px}}.timer-box{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 20px;text-align:center;min-width:100px;flex-shrink:0}.timer-label{font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.timer-value{font-size:28px;color:var(--accent);font-weight:700;line-height:1.2}.timer-value.urgent{color:var(--accent2);animation:pulse .5s infinite alternate}.challenge-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:32px;margin-bottom:24px}.challenge-question{font-size:17px;line-height:1.65;margin-bottom:24px}code{background:rgba(117,171,200,.08);border:1px solid rgba(117,171,200,.2);border-radius:4px;padding:2px 6px;font-size:14px;color:var(--accent)}code,pre{font-family:Sora,sans-serif}pre{background:#0d1422;border:1px solid var(--border);border-radius:8px;padding:20px;font-size:13px;line-height:1.6;overflow-x:auto;margin-bottom:24px;color:#a8c0e8;white-space:pre}.options-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:500px){.options-grid{grid-template-columns:1fr}}.option-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px;color:var(--text);font-family:Sora,sans-serif;font-size:13px;cursor:pointer;text-align:left;min-height:44px;-webkit-tap-highlight-color:transparent;outline:none;-webkit-appearance:none}.option-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover){.option-btn:hover:not(:disabled){border-color:var(--accent-hover);background:rgba(0,229,255,.05);transition:background .15s,border-color .15s}}.option-btn.selected{border-color:var(--accent);background:rgba(117,171,200,.12);color:var(--text)}.option-btn.correct{border-color:var(--accent3);background:rgba(140,191,155,.15);color:var(--accent3)}.option-btn.wrong{border-color:var(--accent2);background:rgba(208,117,125,.1);color:var(--accent2)}.option-btn:disabled{cursor:default}.text-input-area{display:flex;flex-direction:column;gap:12px}.puzzle-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-bottom:24px;max-width:400px}.puzzle-piece{aspect-ratio:1;background:var(--surface);border:2px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;cursor:-webkit-grab;cursor:grab;transition:border-color .15s,background-color .15s,transform .15s,opacity .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.puzzle-piece:hover{border-color:var(--accent-hover);background:rgba(0,229,255,.07)}.puzzle-piece.dragging{opacity:.4;transform:scale(.95)}.puzzle-piece.drag-over{border-color:var(--accent-hover);background:rgba(0,229,255,.15);transform:scale(1.05)}.puzzle-piece.correct-pos{border-color:var(--accent3);background:rgba(140,191,155,.1);color:var(--accent3)}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;max-width:420px;margin-bottom:24px}.memory-card{aspect-ratio:1;perspective:600px;cursor:pointer}.memory-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .35s}.memory-card.flipped .memory-inner,.memory-card.matched .memory-inner{transform:rotateY(180deg)}.memory-back,.memory-front{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;text-align:center;padding:6px;line-height:1.3}.memory-front{background:var(--surface);border:2px solid var(--border);font-size:22px}.memory-back{background:var(--card);border:2px solid var(--accent);color:var(--text);transform:rotateY(180deg);font-size:10px}.memory-card.matched .memory-back{border-color:var(--accent3);background:rgba(140,191,155,.1);color:var(--accent3)}.result-screen{text-align:center;padding:60px 20px;max-width:500px;margin:0 auto;position:relative;z-index:1}.result-icon{font-size:72px;display:block;margin-bottom:24px;animation:bounce .6s ease}.result-points{font-size:56px;font-weight:700;color:var(--accent);line-height:1;margin-bottom:8px}.result-label{font-size:14px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:32px}.admin-tabs{display:flex;gap:4px;background:var(--surface);border-radius:8px;padding:4px;margin-bottom:32px;width:-moz-fit-content;width:fit-content}.admin-tab{padding:10px 20px;border-radius:6px;font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;background:transparent;color:var(--muted);min-height:44px;transition:background-color .2s,color .2s;font-family:Sora,sans-serif}.admin-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-tab.active{background:var(--accent);color:#0a0e19}.leaderboard{display:flex;flex-direction:column;gap:8px}.lb-row{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--card);border:1px solid var(--border);border-radius:10px;transition:transform .2s}.lb-row:hover{transform:translateX(4px)}.lb-rank{font-size:18px;font-weight:700;width:36px;text-align:center;flex-shrink:0}.lb-name{font-weight:600;font-size:16px;flex:1 1}.lb-score{font-size:18px;font-weight:700;color:var(--accent)}.lb-completed{font-size:12px;color:var(--muted)}.progress-table{width:100%;border-collapse:collapse;font-size:13px}.progress-table th{text-align:left;padding:10px 14px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border)}.progress-table td{padding:12px 14px;border-bottom:1px solid rgba(42,58,85,.5);vertical-align:middle}.progress-table tr:last-child td{border-bottom:none}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot-done{background:var(--accent3)}.dot-pending{background:var(--border)}.pts-cell{font-weight:700;color:var(--accent)}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);font-size:13px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.divider{height:1px;background:var(--border);margin:32px 0}.login-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:32px;background:var(--surface);border-radius:8px;padding:6px}.tab-btn{padding:10px;border-radius:6px;font-family:Sora,sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;cursor:pointer;border:none;background:transparent;color:var(--muted);min-height:44px;transition:background-color .2s,color .2s}.tab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tab-btn.active{background:var(--accent);color:#0a0e19}.error-msg{color:var(--accent2);font-size:13px;margin-top:8px}