:root{color-scheme:dark;--ink:#fff;--muted:#bdb3df;--bg:#171136;--panel:#241b4a;--line:#50437b;--lime:#d9fc63;--pink:#ff73be;--cyan:#74e9ef;--violet:#8f76ff;font-family:Manrope,system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -20%,#4e2797 0,transparent 34%),linear-gradient(180deg,#221244,#130e2d 80%);color:var(--ink);overflow-x:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.ambient{position:fixed;pointer-events:none;filter:blur(90px);opacity:.2;border-radius:50%;z-index:0}.ambient-one{width:300px;height:300px;background:var(--pink);left:-160px;top:28%}.ambient-two{width:270px;height:270px;background:var(--cyan);right:-140px;bottom:5%}#app{position:relative;z-index:1;max-width:760px;margin:auto;padding:calc(22px + env(safe-area-inset-top)) 18px calc(48px + env(safe-area-inset-bottom))}.boot{min-height:70vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.spin{display:block;font-size:60px;color:var(--lime);animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px}.brand{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:800;letter-spacing:.1em}.brand-mark{display:grid;place-items:center;background:var(--lime);color:#23124b;width:34px;height:34px;transform:rotate(-12deg);border-radius:9px;font-size:23px;box-shadow:4px 4px 0 #8f76ff}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #665792;background:#39265f;border-radius:99px;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#f5eaff}.hero{position:relative;overflow:hidden;border:1px solid #7759ad;border-radius:28px;padding:28px 24px 22px;background:linear-gradient(135deg,#6542aa 0%,#341a71 55%,#281957 100%);box-shadow:0 18px 44px #08031960}.hero:before{content:"";position:absolute;width:240px;height:240px;border:1px solid #ffffff26;right:-90px;top:-100px;transform:rotate(28deg);border-radius:42px;box-shadow:0 0 0 28px #ffffff0a,0 0 0 56px #ffffff08}.hero:after{content:"✦";position:absolute;right:24px;bottom:-33px;color:#d9fc633b;font-size:180px;line-height:1;transform:rotate(-20deg)}.eyebrow{position:relative;z-index:1;color:var(--lime);font-size:11px;font-weight:800;letter-spacing:.19em;text-transform:uppercase}.hero h1{position:relative;z-index:1;font-size:clamp(34px,8vw,64px);line-height:.99;letter-spacing:-.065em;margin:16px 0 14px;font-weight:800;max-width:540px}.hero p{position:relative;z-index:1;color:#ddd1f9;max-width:430px;line-height:1.6;margin:0;font-size:14px}.hero-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-top:28px;gap:16px}.xp{background:#1b103d9c;border:1px solid #ae92de7a;border-radius:14px;padding:10px 13px;min-width:114px}.xp b{display:block;font-size:20px;line-height:1.1}.xp span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#bca8e7}.pixel{font-size:48px;line-height:1;filter:drop-shadow(6px 6px 0 #1b103d);transform:rotate(-13deg)}.progress{margin:23px 2px 25px}.progress-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}.progress-top h2,.section-title{margin:0;font-size:18px;letter-spacing:-.03em}.progress-top b{font-size:12px;color:var(--lime)}.progress-track{height:10px;border-radius:99px;background:#48396e;overflow:hidden}.progress-track>span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--lime));border-radius:99px;box-shadow:0 0 20px #d9fc6388;transition:width .4s}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 16px}.section-note{font-size:11px;color:var(--muted);font-weight:700}.map{position:relative;padding:3px 0 8px}.map:before{content:"";position:absolute;top:20px;bottom:20px;left:26px;width:3px;background:repeating-linear-gradient(to bottom,#7665a9 0,#7665a9 8px,transparent 8px,transparent 17px);opacity:.65}.level{position:relative;display:grid;grid-template-columns:54px 1fr;gap:12px;margin-bottom:14px}.level-node{position:relative;z-index:2;width:53px;height:53px;border-radius:16px;background:#342559;border:2px solid #6b5c9b;display:grid;place-items:center;font-size:18px;font-weight:800;box-shadow:4px 5px 0 #100c29}.level.current .level-node{color:#211146;background:var(--lime);border-color:#fff;box-shadow:5px 6px 0 #8ba22f;transform:rotate(-5deg)}.level.done .level-node{color:#201437;background:var(--cyan);border-color:#c6faff}.level-card{border:1px solid #524477;border-radius:20px;background:#282048;min-height:68px;padding:17px 17px 15px;box-shadow:0 7px 0 #100b2a}.level.current .level-card{background:linear-gradient(130deg,#40316b,#302353);border-color:#b696f6;box-shadow:0 7px 0 #150c31,0 0 26px #a77dff1c}.level.locked .level-card{opacity:.62}.level-kicker{color:var(--pink);font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;margin-bottom:5px}.level.done .level-kicker{color:var(--cyan)}.level.current .level-kicker{color:var(--lime)}.level h3{font-size:16px;margin:0;line-height:1.25;letter-spacing:-.025em}.level p{color:#d0c5e6;line-height:1.55;font-size:13px;margin:10px 0}.status-icon{float:right;font-size:18px;color:var(--muted)}.location{margin:16px 0 14px;background:#1c153d;border:1px solid #66558f;border-radius:15px;padding:12px;display:flex;flex-direction:column;gap:10px}.location small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:800}.location strong{font-size:14px;letter-spacing:.02em}.location img{display:block;width:100%;max-height:250px;object-fit:cover;border-radius:10px}.location iframe{border:0;width:100%;height:190px;border-radius:10px;background:#39315b}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:0;border-radius:13px;padding:13px 16px;font-size:13px;font-weight:800;line-height:1.1;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform .15s,filter .15s;text-decoration:none}.btn:hover{filter:brightness(1.08);transform:translateY(-2px)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--lime);color:#20123d;box-shadow:0 4px 0 #91a83a}.btn-secondary{color:white;background:#574283;border:1px solid #8c75bb}.btn-pink{background:var(--pink);color:#2b143d;box-shadow:0 4px 0 #b94188}.btn-ghost{background:#ffffff12;color:#efe8ff;border:1px solid #ffffff40}.btn:disabled{opacity:.5;cursor:wait}.finish{text-align:center;padding:25px 22px;background:linear-gradient(135deg,#b8329e,#7031b5);border-radius:24px;border:1px solid #fca3ed;box-shadow:0 8px 0 #240e4b}.finish .icon{font-size:60px}.finish h2{font-size:28px;margin:6px 0}.finish p{color:#ffe7fb;font-size:14px;line-height:1.5}.empty{padding:26px;text-align:center;border:1px dashed #725f9c;border-radius:20px;background:#21183e}.empty .icon{font-size:48px}.empty h2{margin:10px 0}.empty p{font-size:13px;color:var(--muted);line-height:1.5}.footer{text-align:center;color:#887da8;font-size:10px;margin:32px 0 5px;letter-spacing:.12em;text-transform:uppercase}
.admin-tabs{display:flex;gap:7px;background:#231a44;border:1px solid #55477b;border-radius:16px;padding:6px;margin:20px 0}.admin-tabs button{border:0;flex:1;padding:11px 7px;border-radius:11px;background:transparent;color:#bbb0dc;font-size:12px;font-weight:800}.admin-tabs button.active{background:var(--lime);color:#24123d}.panel{background:#241b45;border:1px solid #66558a;border-radius:22px;padding:19px;margin:14px 0;box-shadow:0 7px 0 #100b29}.panel h2{font-size:19px;margin:0 0 8px;letter-spacing:-.035em}.panel p{font-size:12px;color:var(--muted);line-height:1.5}.field{display:block;margin:14px 0}.field>span{display:block;margin-bottom:7px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#c3b9e2;font-weight:800}.field input,.field textarea,.field select{width:100%;border:1px solid #76669c;border-radius:12px;padding:12px;background:#17102e;color:#fff;outline:none;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--lime);box-shadow:0 0 0 3px #d9fc6329}.field textarea{min-height:110px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hint{font-size:11px;color:#a99bc9;line-height:1.5}.quest-list{display:grid;gap:10px}.quest-tile{width:100%;text-align:left;background:#312552;border:1px solid #685688;color:white;border-radius:15px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.quest-tile.active{border-color:var(--lime);background:#3a2a65}.quest-tile b{display:block;font-size:14px}.quest-tile small{display:block;margin-top:5px;color:#bdb0d8}.badge{padding:6px 8px;border-radius:7px;background:#4b3b70;color:#dacaf6;white-space:nowrap;font-size:10px;font-weight:800}.badge.live{background:#284f4d;color:#9dfff3}.stage-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:15px 0}.stage-grid button{height:41px;border:1px solid #71618f;border-radius:10px;background:#302450;color:white;font-weight:800}.stage-grid button.active{background:var(--pink);color:#2b143d;border-color:#ffd7ec}.stage-grid button.ready:not(.active){border-color:#93c266;color:var(--lime)}.inline-note{font-size:12px;color:var(--lime);margin:8px 0}.stack{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.preview-bar{display:flex;gap:8px;align-items:center;justify-content:space-between}.preview-bar select{width:auto;min-width:150px}.player-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #4a3d68;font-size:12px}.player-row:last-child{border:0}.player-row b{display:block;font-size:13px}.player-row small{color:var(--muted)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,120px);opacity:0;z-index:20;max-width:min(90vw,500px);padding:13px 18px;border-radius:14px;background:var(--lime);color:#24133d;box-shadow:0 12px 35px #0007;font-size:13px;font-weight:800;text-align:center;transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:#ff89b9}.error-page{text-align:center;max-width:430px;margin:20vh auto}.error-page h1{font-size:36px;line-height:1.1}.error-page p{color:var(--muted);line-height:1.5}
@media(min-width:700px){#app{padding-left:25px;padding-right:25px}.hero{padding:36px}.level{grid-template-columns:62px 1fr;gap:16px}.level-node{width:58px;height:58px}.map:before{left:28px}}
@media(max-width:360px){.hero{padding:23px 19px}.hero h1{font-size:32px}.stage-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.btn{padding:12px}.form-row{grid-template-columns:1fr}}
.progress-track .p0{width:0%}.progress-track .p1{width:7.692%}.progress-track .p2{width:15.385%}.progress-track .p3{width:23.077%}.progress-track .p4{width:30.769%}.progress-track .p5{width:38.462%}.progress-track .p6{width:46.154%}.progress-track .p7{width:53.846%}.progress-track .p8{width:61.538%}.progress-track .p9{width:69.231%}.progress-track .p10{width:76.923%}.progress-track .p11{width:84.615%}.progress-track .p12{width:92.308%}.progress-track .p13{width:100%}
img[data-photo]:not([src]){min-height:130px;background:#382b61}
.level-picker-label{margin-top:16px;color:var(--lime);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.level-picker{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:7px;align-items:center;margin-top:9px}.level-arrow{height:48px;border:1px solid #8870ba;border-radius:11px;background:#4b3777;color:white;font-size:20px;font-weight:800}.level-arrow:disabled{opacity:.35;cursor:default}.level-rail{display:flex;gap:7px;min-width:0;overflow-x:auto;padding:8px;border:1px solid #6d5899;border-radius:14px;background:#17102f;scroll-snap-type:x mandatory;scrollbar-width:none}.level-rail::-webkit-scrollbar{display:none}.level-chip{flex:0 0 46px;height:46px;border:1px solid #7564a6;border-radius:11px;background:#3b2b65;color:#cdbde9;font-size:13px;font-weight:800;scroll-snap-align:center}.level-chip.passed{border-color:#57a6ad;color:var(--cyan)}.level-chip.active{border-color:#fff;background:var(--lime);color:#24133d;box-shadow:3px 3px 0 #879d3d;transform:rotate(-5deg)}.level-chip:focus-visible,.level-arrow:focus-visible{outline:3px solid var(--pink);outline-offset:2px}.test-banner{border-color:var(--pink);background:linear-gradient(130deg,#493064,#2b204e)}.test-banner .btn{margin-top:5px}
