@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Share+Tech+Mono&display=swap";:root{--purple-dark:#1a0d2e;--purple-mid:#2d1b4e;--purple-bsod:#2a0a7a;--purple-accent:#7b3fa0;--purple-light:#a855d4;--purple-glow:#c084fc;--purple-win:#4a1d7a;--gray-win:silver;--gray-dark:gray;--gray-light:#dfdfdf;--white:#fff;--blue-link:#68f;--green:#0f8;--red:#f46;--yellow:#fc0;--text-mono:"Share Tech Mono", monospace;--text-pixel:"Press Start 2P", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:17px}body{background:var(--purple-dark);color:var(--white);font-family:var(--text-mono);cursor:default;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:fixed;inset:0}.btn{font-family:var(--text-pixel);cursor:pointer;letter-spacing:.5px;border:none;padding:17px 28px;font-size:10px;text-decoration:none;transition:all .13s;display:inline-block}.btn-primary{background:var(--purple-light);color:var(--white);border:2px solid var(--purple-glow);box-shadow:3px 3px #000,inset -1px -1px #00000040}.btn-primary:hover{background:var(--purple-glow);color:var(--purple-dark);transform:translate(-1px,-1px);box-shadow:5px 5px #000}.btn-secondary{color:var(--purple-glow);border:2px solid var(--purple-accent);background:0 0}.btn-secondary:hover{border-color:var(--purple-glow);background:#a855d41f}.reveal{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(38px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .6s,transform .6s;transform:translate(-32px)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity .6s,transform .6s;transform:translate(32px)}.reveal-right.visible{opacity:1;transform:translate(0)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background:var(--purple-mid);border-left:2px solid #000}::-webkit-scrollbar-thumb{background:var(--gray-win);border:2px solid #000}::-webkit-scrollbar-thumb:hover{background:var(--purple-light)}.section-float-logo{pointer-events:none;opacity:.04;filter:brightness(0)invert();z-index:0;animation:9s ease-in-out infinite floatBg;position:absolute}@keyframes floatBg{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-18px)rotate(2deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-cur{0%,to{opacity:1}50%{opacity:0}}.win-window{background:var(--gray-win);border:2px solid var(--gray-dark);color:#000;box-shadow:4px 4px #000,inset 1px 1px #fff}.win-titlebar{background:linear-gradient(90deg,var(--purple-win),var(--purple-accent));-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:7px 12px;display:flex}.win-title{font-family:var(--text-pixel);color:var(--white);align-items:center;gap:8px;font-size:9px;display:flex}.win-controls{gap:3px;display:flex}.win-btn{background:var(--gray-win);cursor:pointer;width:18px;height:16px;font-size:9px;font-family:var(--text-pixel);border:1px solid #000;justify-content:center;align-items:center;display:flex;box-shadow:inset 1px 1px #fff,inset -1px -1px gray}.explorer-bar{background:var(--gray-light);border-bottom:1px solid var(--gray-dark);font-family:var(--text-mono);color:#333;align-items:center;gap:20px;padding:4px 14px;font-size:13px;display:flex}.explorer-bar span{cursor:pointer}.explorer-bar span:hover{text-decoration:underline}.tag{font-family:var(--text-pixel);background:var(--purple-win);color:var(--white);text-align:center;border:1px solid #000;padding:4px 8px;font-size:6px;display:block}.taskbar{background:var(--purple-win);border-bottom:2px solid var(--purple-light);z-index:1000;justify-content:space-between;align-items:center;height:52px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px #0009}.taskbar-logo{align-items:center;gap:12px;text-decoration:none;display:flex}.taskbar-logo img{filter:brightness(0)invert();height:30px}.taskbar-logo-text{font-family:var(--text-pixel);color:var(--white);font-size:10px}.taskbar-right{align-items:center;gap:10px;display:flex}.taskbar-clock{font-family:var(--text-pixel);color:var(--white);background:#00000059;border:1px solid #fff3;padding:6px 12px;font-size:9px}.nav-links{gap:2px;display:flex}.nav-links a{font-family:var(--text-pixel);color:var(--white);letter-spacing:.5px;cursor:pointer;border:1px solid #0000;padding:9px 15px;font-size:8px;text-decoration:none;transition:all .12s}.nav-links a:hover{border-color:var(--purple-glow);color:var(--purple-glow);background:#ffffff1f}.nav-links a.tutor-btn{background:var(--purple-light);border-color:var(--purple-glow);box-shadow:inset 1px 1px #ffffff40}.nav-links a.tutor-btn:hover{background:var(--purple-glow);color:var(--purple-dark);box-shadow:0 0 14px var(--purple-glow)}.taskbar-tutor{background:var(--purple-win);border-bottom:2px solid var(--purple-light);z-index:100;flex-shrink:0;align-items:center;gap:12px;height:42px;padding:0 16px;display:flex}.taskbar-tutor-center{flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.taskbar-tutor-title{font-family:var(--text-pixel);color:var(--white);font-size:9px}.back-btn{font-family:var(--text-pixel);color:var(--white);cursor:pointer;border:1px solid #ffffff4d;flex-shrink:0;padding:6px 12px;font-size:8px;text-decoration:none;transition:all .1s}.back-btn:hover{border-color:var(--purple-glow);background:#ffffff1a}.clock{font-family:var(--text-pixel);color:var(--white);background:#0000004d;border:1px solid #fff3;padding:5px 10px;font-size:8px}.bulb{background:var(--purple-light);width:22px;height:22px;box-shadow:0 0 8px var(--purple-glow);border-radius:50% 50% 40% 40%;justify-content:center;align-items:center;font-size:13px;animation:2s ease-in-out infinite pulse;display:flex}@keyframes pulse{0%,to{box-shadow:0 0 8px var(--purple-glow)}50%{box-shadow:0 0 20px var(--purple-glow)}}.modal-overlay{z-index:500;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-win{background:var(--gray-win);border:2px solid var(--gray-dark);min-width:340px;max-width:480px;box-shadow:6px 6px #000}.modal-titlebar{background:linear-gradient(90deg, var(--purple-win), var(--purple-accent));font-family:var(--text-pixel);color:var(--white);justify-content:space-between;align-items:center;padding:6px 10px;font-size:8px;display:flex}.modal-close{background:var(--gray-win);width:16px;height:14px;font-family:var(--text-pixel);cursor:pointer;border:1px solid #000;justify-content:center;align-items:center;font-size:8px;display:flex}.modal-body{color:#222;padding:20px;font-size:13px;line-height:1.7}.modal-body h4{font-family:var(--text-pixel);color:var(--purple-win);margin-bottom:10px;font-size:8px}.modal-body code{color:#0f8;font-family:var(--text-mono);background:#333;padding:2px 6px;font-size:12px}.modal-ok{font-family:var(--text-pixel);background:var(--purple-win);color:var(--white);cursor:pointer;border:2px solid #000;margin:16px auto 4px;padding:8px 20px;font-size:7px;display:block;box-shadow:2px 2px #000}.panel-titlebar{background:linear-gradient(90deg, var(--purple-win), var(--purple-accent));font-family:var(--text-pixel);color:var(--white);flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 10px;font-size:8px;display:flex}.panel-menu{background:var(--gray-light);border-bottom:1px solid var(--gray-dark);color:#333;flex-shrink:0;gap:12px;padding:3px 8px;font-size:11px;display:flex}.panel-menu span{cursor:pointer}.panel-menu span:hover{text-decoration:underline}.landing-page{zoom:1.2}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding:110px 80px 90px;display:flex;position:relative;overflow:hidden}.hero-bg{background:radial-gradient(ellipse 55% 65% at 72% 52%, #7b3fa047 0%, transparent 70%), var(--purple-dark);position:absolute;inset:0}.hero-logo-big{opacity:.12;pointer-events:none;filter:brightness(0)invert();height:clamp(260px,34vw,440px);animation:7s ease-in-out infinite floatLogo;position:absolute;top:50%;right:8%}@keyframes floatLogo{0%{opacity:.1;transform:translateY(-50%)translate(0)rotate(0)}25%{opacity:.14;transform:translateY(calc(-50% - 14px))translate(-6px)rotate(-.8deg)}50%{opacity:.16;transform:translateY(calc(-50% - 20px))translate(0)rotate(0)}75%{opacity:.13;transform:translateY(calc(-50% - 10px))translate(6px)rotate(.8deg)}to{opacity:.1;transform:translateY(-50%)translate(0)rotate(0)}}.hero-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle{background:var(--purple-glow);opacity:0;width:4px;height:4px;animation:linear infinite particleFloat;position:absolute}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh)scale(0)}10%{opacity:.6}90%{opacity:.2}to{opacity:0;transform:translateY(-10vh)scale(1)}}.hero-content{z-index:2;max-width:760px;position:relative}.hero-label{font-family:var(--text-pixel);color:var(--purple-light);letter-spacing:3px;opacity:0;margin-bottom:32px;font-size:8px;animation:.7s .15s forwards fadeUp}.hero-title{font-family:var(--text-pixel);color:var(--white);opacity:0;margin-bottom:26px;font-size:clamp(22px,3.2vw,40px);line-height:2;animation:.7s .35s forwards fadeUp}.hero-title span{color:var(--purple-glow)}.hero-sub{font-family:var(--text-mono);color:#fff9;opacity:0;max-width:540px;margin-bottom:42px;font-size:17px;line-height:1.75;animation:.7s .55s forwards fadeUp}.hero-cta{opacity:0;flex-wrap:wrap;gap:16px;animation:.7s .75s forwards fadeUp;display:flex}.section{padding:88px 64px;position:relative}.section-anchor{position:absolute;top:-52px}.section-win-wrap{max-width:1160px;margin:0 auto}.section-heading{font-family:var(--text-pixel);color:var(--white);letter-spacing:2px;align-items:center;gap:16px;margin-bottom:24px;font-size:11px;display:flex}.section-heading:before,.section-heading:after{content:"";background:var(--purple-accent);flex:1;max-width:54px;height:1px}#sobre{background:var(--purple-dark)}.sobre-grid{grid-template-columns:1fr 1fr;display:grid}.sobre-text{border-right:2px solid var(--gray-dark);padding:28px 30px}.sobre-text h3{font-family:var(--text-pixel);color:var(--purple-win);letter-spacing:1px;margin-bottom:16px;font-size:9px}.sobre-text p{color:#1e1e1e;margin-bottom:16px;font-size:14px;line-height:1.9}.sobre-stats{padding:28px 30px}.sobre-stats h3{font-family:var(--text-pixel);color:var(--purple-win);margin-bottom:16px;font-size:9px}.stat-item{background:var(--purple-win);color:var(--white);border:2px solid #000;align-items:center;gap:16px;margin-bottom:10px;padding:13px 16px;display:flex;box-shadow:3px 3px #000}.stat-num{font-family:var(--text-pixel);color:var(--purple-glow);min-width:70px;font-size:22px}.stat-label{font-family:var(--text-pixel);font-size:7px;line-height:1.8}.objetivos-list{border-top:2px solid var(--gray-dark);margin-top:18px;padding-top:18px}.obj-item{color:#1e1e1e;align-items:flex-start;gap:12px;margin-bottom:11px;font-size:13px;line-height:1.7;display:flex}.obj-bullet{background:var(--purple-win);flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;display:flex}.obj-bullet span{font-family:var(--text-pixel);color:var(--purple-glow);font-size:6px}#edicoes{background:linear-gradient(180deg,var(--purple-dark),var(--purple-mid))}.edicoes-desktop{flex-direction:column;gap:22px;padding:32px 28px;display:flex}.edicoes-folders-row{flex-wrap:wrap;align-items:flex-start;gap:44px;padding:16px 0;display:flex}.folder-item{cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border:2px solid #0000;flex-direction:column;align-items:center;gap:10px;width:104px;padding:10px;transition:border-color .1s,background .1s;display:flex}.folder-item:hover{border-color:var(--purple-win);background:#4a1d7a2e}.folder-icon-svg{filter:drop-shadow(2px 2px #00000080);width:76px;height:62px;transition:transform .15s,filter .15s}.folder-item:hover .folder-icon-svg{filter:drop-shadow(2px 5px #00000080)brightness(1.1);transform:translateY(-4px)}.folder-label{font-family:var(--text-pixel);color:#111;font-size:7px;line-height:1.6}.edicao-popup-overlay{z-index:800;background:#00000080;justify-content:center;align-items:center;animation:.18s popupFadeIn;display:flex;position:fixed;inset:0}@keyframes popupFadeIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.edicao-popup{background:var(--gray-win);border:2px solid var(--gray-dark);color:#000;width:min(740px,92vw);max-height:88vh;position:relative;overflow-y:auto;box-shadow:6px 6px #000,inset 1px 1px #fff}.edicao-popup-titlebar{background:linear-gradient(90deg,var(--purple-win),var(--purple-accent));z-index:2;justify-content:space-between;align-items:center;padding:8px 12px;display:flex;position:sticky;top:0}.edicao-popup-title{font-family:var(--text-pixel);color:var(--white);align-items:center;gap:8px;font-size:9px;display:flex}.popup-close-btn{background:var(--gray-win);cursor:pointer;width:20px;height:18px;font-size:10px;font-family:var(--text-pixel);border:1px solid #000;justify-content:center;align-items:center;transition:background .1s;display:flex;box-shadow:inset 1px 1px #fff,inset -1px -1px gray}.popup-close-btn:hover{background:#e08080}.popup-explorer-bar{background:var(--gray-light);border-bottom:1px solid var(--gray-dark);font-family:var(--text-mono);color:#333;align-items:center;gap:20px;padding:4px 14px;font-size:12px;display:flex}.popup-body{grid-template-columns:200px 1fr;display:grid}.popup-sidebar{border-right:2px solid var(--gray-dark);background:var(--gray-light);flex-direction:column;align-items:center;gap:14px;padding:20px 14px;display:flex}.popup-sidebar-logo{justify-content:center;align-items:center;width:90px;height:90px;margin-bottom:4px;display:flex}.popup-sidebar-logo img{object-fit:contain;opacity:.9;width:84px;height:84px}.popup-year-badge{font-family:var(--text-pixel);color:var(--purple-accent);letter-spacing:4px;text-align:center;font-size:24px}.popup-edition-num{font-family:var(--text-pixel);color:#555;text-align:center;font-size:7px;line-height:1.8}.popup-tags{flex-direction:column;gap:6px;width:100%;margin-top:8px;display:flex}.popup-main{padding:24px 26px}.popup-main h4{font-family:var(--text-pixel);color:var(--purple-win);border-bottom:1px solid var(--gray-dark);margin-bottom:14px;padding-bottom:10px;font-size:9px}.popup-main p{color:#1e1e1e;margin-bottom:14px;font-size:14px;line-height:1.85}.popup-stats-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.popup-stat{background:var(--purple-win);color:var(--white);border:2px solid #000;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:2px 2px #000}.popup-stat-num{font-family:var(--text-pixel);color:var(--purple-glow);min-width:52px;font-size:18px}.popup-stat-label{font-family:var(--text-pixel);font-size:6px;line-height:1.8}.file-icon{font-family:var(--text-mono);color:#111;cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;margin-top:6px;padding:7px 10px;font-size:13px;transition:background .1s;display:flex}.file-icon:hover{border-color:var(--purple-accent);background:#4a1d7a1f}.file-icon svg{flex-shrink:0}.popup-statusbar{border-top:1px solid var(--gray-dark);background:var(--gray-light);font-family:var(--text-mono);color:#555;gap:20px;padding:5px 14px;font-size:11px;display:flex}#membros{background:var(--purple-dark)}.membros-inner{padding:24px 26px}.membros-section-title{font-family:var(--text-pixel);color:var(--purple-win);border-bottom:2px solid var(--gray-dark);align-items:center;gap:10px;margin-bottom:18px;padding-bottom:10px;font-size:9px;display:flex}.membros-section-title:before{content:"";color:var(--purple-glow);font-size:14px}.membros-grid{grid-template-columns:repeat(auto-fill,minmax(162px,1fr));gap:12px;margin-bottom:32px;display:grid}.membro-card{background:var(--gray-win);border:2px solid var(--gray-dark);text-align:center;padding:18px 12px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:block;box-shadow:3px 3px #000}.membro-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #000}.membro-card.founder{background:linear-gradient(140deg,var(--purple-win),#6b1fa0);border-color:var(--purple-glow);color:var(--white)}.membro-avatar{background:var(--purple-accent);width:64px;height:64px;font-family:var(--text-pixel);color:var(--white);border:3px solid #000;justify-content:center;align-items:center;margin:0 auto 12px;font-size:17px;display:flex;position:relative;overflow:hidden}.membro-card.founder .membro-avatar{background:var(--purple-glow);box-shadow:0 0 12px var(--purple-glow)}.membro-avatar:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 7px,#00000014 7px 8px),repeating-linear-gradient(0deg,#0000 0 7px,#00000014 7px 8px);position:absolute;inset:0}.membro-name{font-family:var(--text-pixel);color:#111;margin-bottom:6px;font-size:7px;line-height:1.6}.membro-card.founder .membro-name{color:var(--white)}.membro-role{font-family:var(--text-mono);color:var(--purple-accent);font-size:12px}.membro-card.founder .membro-role{color:var(--purple-glow)}.founder-badge{font-family:var(--text-pixel);background:var(--purple-glow);color:var(--purple-dark);border:1px solid #000;margin-top:7px;padding:3px 7px;font-size:5.5px;display:inline-block}.gh-link{font-family:var(--text-pixel);color:var(--purple-glow);opacity:.8;margin-top:6px;font-size:5.5px;text-decoration:none;transition:opacity .1s;display:inline-block}.gh-link:hover{opacity:1;text-decoration:underline}footer{background:#3e1460;padding:64px 64px 48px;position:relative;overflow:hidden}.footer-inner{z-index:1;max-width:900px;margin:0 auto;position:relative}.footer-smiley{margin-bottom:32px;display:block}.footer-tag{background:var(--gray-win);color:#111;font-family:var(--text-pixel);border:2px solid #bbb;margin-bottom:32px;padding:8px 16px;font-size:13px;display:inline-block;box-shadow:2px 2px #00000073}.footer-message{font-family:var(--text-pixel);color:var(--white);max-width:680px;margin-bottom:44px;font-size:14px;line-height:2.4}.footer-message a.ig{color:#68f;text-decoration:none}.footer-message a.dc{color:#a87fdc;text-decoration:none}.footer-message a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid #ffffff2e;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-top:30px;display:flex}.footer-press{font-family:var(--text-pixel);color:#ffffffb8;align-items:center;gap:6px;font-size:13px;display:flex}.blink-cursor{animation:1s step-end infinite blink-cur}.footer-dept{font-family:var(--text-pixel);color:#ffffff61;text-align:right;font-size:7px;line-height:2}.tutor-page{flex-direction:column;height:100vh;display:flex;overflow:hidden}.tutor-page body,.tutor-page html{height:100%;overflow:hidden}.tutor-layout{flex:1;grid-template-rows:1fr;grid-template-columns:280px 1fr 360px;gap:0;display:grid;overflow:hidden}.sidebar{background:var(--gray-win);border-right:2px solid var(--gray-dark);flex-direction:column;display:flex;overflow:hidden}.sidebar-scroll{flex:1;padding:8px;overflow-y:auto}.diff-section{margin-bottom:12px}.diff-label{font-family:var(--text-pixel);align-items:center;gap:6px;margin-bottom:4px;padding:5px 8px;font-size:9px;display:flex}.diff-label.easy{color:#0f4;background:#040}.diff-label.medium{color:var(--yellow);background:#430}.diff-label.hard{color:var(--red);background:#401}.question-item{cursor:pointer;color:#222;background:0 0;border:1px solid #0000;border-left-width:3px;margin-bottom:3px;padding:8px 10px;font-size:11px;line-height:1.4;transition:all .1s}.question-item:hover{border-color:var(--purple-accent);background:#4a1d7a1a}.question-item.active{background:var(--purple-win);color:var(--white);border-left-color:var(--purple-glow);font-weight:700}.question-item.solved:after{content:" ✓";color:var(--green)}.question-num{font-family:var(--text-pixel);color:var(--gray-dark);margin-bottom:2px;font-size:8px;display:block}.question-item.active .question-num{color:var(--purple-glow)}.attempt-badge{color:#999;margin-left:6px;font-weight:400}.question-item.active .attempt-badge{color:#fff9}.editor-panel{border-right:2px solid var(--gray-dark);background:#1e1e1e;flex-direction:column;display:flex;overflow:hidden}.editor-titlebar{background:linear-gradient(90deg, var(--purple-win), var(--purple-accent));font-family:var(--text-pixel);color:var(--white);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:7px 12px;font-size:10px;display:flex}.editor-tabs{border-bottom:2px solid var(--purple-accent);background:#1a1a2e;flex-shrink:0;gap:0;display:flex}.editor-tab{font-family:var(--text-pixel);color:#888;cursor:pointer;border-bottom:2px solid #0000;border-right:1px solid #2a2a4a;margin-bottom:-2px;padding:10px 18px;font-size:10px;transition:color .1s,background .1s}.editor-tab:hover{color:#ccc;background:#c084fc0f}.editor-tab.active{color:var(--purple-glow);border-bottom-color:var(--purple-glow);background:#1e1e1e}.question-display{background:#252525;border-bottom:2px solid #444;flex-shrink:0;max-height:180px;padding:16px 20px;overflow-y:auto}.q-title{font-family:var(--text-pixel);color:var(--purple-glow);align-items:center;gap:10px;margin-bottom:10px;font-size:12px;display:flex}.q-diff{border:1px solid;padding:3px 8px;font-size:9px}.q-diff.easy{color:#0f4;border-color:#0f4}.q-diff.medium{color:var(--yellow);border-color:var(--yellow)}.q-diff.hard{color:var(--red);border-color:var(--red)}.q-desc{font-family:var(--text-mono);color:#ccc;font-size:14px;line-height:1.7}.q-example{border-left:3px solid var(--purple-accent);color:#aaa;white-space:pre-wrap;background:#1a1a1a;margin-top:10px;padding:10px 14px;font-size:13px}.q-example strong{color:var(--purple-glow);font-family:var(--text-pixel);font-size:9px}.code-editor-wrap{flex:1;display:flex;position:relative;overflow:hidden}.line-numbers{color:#555;font-family:var(--text-mono);text-align:right;-webkit-user-select:none;user-select:none;white-space:pre;background:#2a2a2a;border-right:1px solid #444;min-width:44px;padding:12px 8px;font-size:13px;line-height:1.6;overflow:hidden}.code-editor-overlay{flex:1;position:relative;overflow:hidden}.code-highlight{color:#f8f8f8;font-family:var(--text-mono);tab-size:4;white-space:pre-wrap;word-wrap:break-word;pointer-events:none;background:#1e1e1e;margin:0;padding:12px 16px;font-size:13px;line-height:1.6;position:absolute;inset:0;overflow:auto}.code-textarea{color:#0000;width:100%;height:100%;font-family:var(--text-mono);resize:none;tab-size:4;caret-color:var(--purple-glow);white-space:pre-wrap;word-wrap:break-word;z-index:1;background:0 0;border:none;outline:none;padding:12px 16px;font-size:13px;line-height:1.6;position:relative}.code-textarea::selection{background:#a855d459}.hl-keyword{color:#c586c0}.hl-builtin{color:#dcdcaa}.hl-string{color:#ce9178}.hl-comment{color:#6a9955;font-style:italic}.hl-number{color:#b5cea8}.hl-decorator{color:#d7ba7d}.hl-operator{color:#d4d4d4}.action-bar{background:#2d2d2d;border-top:2px solid #444;flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;display:flex}.run-btn{font-family:var(--text-pixel);background:var(--purple-light);color:var(--white);border:2px solid var(--purple-glow);cursor:pointer;letter-spacing:.5px;padding:9px 18px;font-size:10px;transition:all .1s;box-shadow:2px 2px #000}.run-btn:hover{background:var(--purple-glow);color:var(--purple-dark);transform:translate(-1px,-1px);box-shadow:3px 3px #000}.run-btn:active{box-shadow:none;transform:translate(1px,1px)}.clear-btn{font-family:var(--text-pixel);color:#888;cursor:pointer;background:0 0;border:1px solid #555;padding:8px 12px;font-size:9px;transition:all .1s}.clear-btn:hover{color:var(--red);border-color:var(--red)}.hint-btn{font-family:var(--text-pixel);color:var(--yellow);border:1px solid var(--yellow);cursor:pointer;background:0 0;padding:8px 12px;font-size:9px;transition:all .1s}.hint-btn:hover{background:#ffcc001a}.status-indicator{font-family:var(--text-pixel);align-items:center;gap:6px;margin-left:auto;font-size:9px;display:flex}.status-dot{background:#555;border-radius:50%;width:8px;height:8px}.status-dot.ready{background:#0f4;box-shadow:0 0 6px #0f4}.status-dot.running{background:var(--yellow);animation:.5s infinite statusBlink}.status-dot.error{background:var(--red);box-shadow:0 0 6px var(--red)}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.3}}.output-panel{background:var(--gray-win);flex-direction:column;display:flex;overflow:hidden}.output-section{flex-direction:column;flex:1;display:flex;overflow:hidden}.output-terminal{font-family:var(--text-mono);color:#0f4;background:#0a0a0a;flex:1;padding:12px;font-size:12px;line-height:1.6;overflow-y:auto}.term-line{gap:8px;margin-bottom:2px;display:flex}.term-prompt{color:var(--purple-light);flex-shrink:0}.term-text{color:#e8e8e8}.term-error{color:var(--red)}.term-success{color:var(--green)}.term-info{color:var(--yellow)}.term-hint{color:#aaa;font-style:italic}.feedback-box{background:var(--gray-win);border-top:2px solid var(--gray-dark);flex-shrink:0;min-height:140px;max-height:200px;padding:14px;overflow-y:auto}.feedback-title{font-family:var(--text-pixel);color:var(--purple-win);align-items:center;gap:8px;margin-bottom:10px;font-size:10px;display:flex}.feedback-status{align-items:center;gap:10px;margin-bottom:10px;display:flex}.fb-icon{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex}.fb-message{color:#222;font-size:12px;line-height:1.5}.fb-message.success{color:#040}.fb-message.error{color:#400}.test-cases{flex-direction:column;gap:4px;display:flex}.test-case{background:#e0e0e0;border:1px solid #bbb;align-items:center;gap:8px;padding:5px 8px;font-size:11px;display:flex}.test-case.pass{color:#155724;background:#d4edda;border-color:#c3e6cb}.test-case.fail{color:#721c24;background:#f8d7da;border-color:#f5c6cb}.test-case.pending{color:#666;background:#e2e3e5}.test-icon{flex-shrink:0;font-size:14px}.progress-bar-wrap{background:var(--gray-light);border-bottom:1px solid var(--gray-dark);flex-shrink:0;padding:10px 14px}.progress-label{font-family:var(--text-pixel);color:var(--purple-win);justify-content:space-between;margin-bottom:5px;font-size:8px;display:flex}.progress-track{background:#aaa;border:2px inset #888;height:12px;overflow:hidden}.progress-fill{background:var(--purple-light);width:0%;height:100%;transition:width .4s}.sidebar-collapsed{align-items:center;width:36px;min-width:36px;padding-top:8px}.sidebar-toggle{font-family:var(--text-pixel);color:#888;cursor:pointer;background:0 0;border:1px solid #aaa;padding:4px 6px;font-size:10px;line-height:1}.sidebar-toggle:hover{color:var(--purple-glow);border-color:var(--purple-glow)}.tutor-layout.sidebar-hidden{grid-template-columns:36px 1fr 360px}.notes-editor-wrap{flex:1;display:flex;overflow:hidden}.notes-textarea{color:#e8e8e8;font-family:var(--text-mono);resize:none;caret-color:var(--purple-glow);background:#1e1e1e;border:none;outline:none;flex:1;padding:16px 20px;font-size:13px;line-height:1.6}.notes-textarea::placeholder{color:#555;font-style:italic}.notes-textarea::selection{background:#a855d44d}.reset-btn{font-family:var(--text-pixel);color:#888;cursor:pointer;background:0 0;border:1px solid #555;padding:8px 12px;font-size:9px;transition:all .1s}.reset-btn:hover{color:var(--yellow);border-color:var(--yellow)}.question-timer{font-family:var(--text-mono);color:#888;letter-spacing:1px;font-size:11px}.victory-overlay{z-index:9999;pointer-events:none;background:#0009;justify-content:center;align-items:center;animation:.3s ease-out victoryFadeIn;display:flex;position:fixed;inset:0}.victory-text{font-family:var(--text-pixel);color:#0f8;text-shadow:0 0 10px #0f8,0 0 20px #0f8,0 0 40px #00ff8880;font-size:18px;animation:.6s ease-in-out infinite alternate victoryPulse}@keyframes victoryFadeIn{0%{opacity:0}to{opacity:1}}@keyframes victoryPulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.confetti{width:8px;height:8px;animation:linear forwards confettiFall;position:absolute;top:-10px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.pyodide-status{font-family:var(--text-pixel);z-index:900;border:2px solid;padding:8px 18px;font-size:10px;animation:.3s ease-out fadeInUp;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.pyodide-loading{color:var(--yellow);border-color:var(--yellow);background:#1a1a2e}.pyodide-ready{color:var(--green);border-color:var(--green);background:#1a2e1a;animation:.3s ease-out fadeInUp,1.5s ease-in 1.5s forwards fadeOutDown}.pyodide-error{color:var(--red);border-color:var(--red);background:#2e1a1a}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;pointer-events:none;transform:translate(-50%)translateY(10px)}}.achievements-grid{grid-template-columns:1fr 1fr;gap:10px;max-height:400px;padding:12px;display:grid;overflow-y:auto}.achievement-card{opacity:.5;background:#e0e0e0;border:2px inset #ccc;align-items:center;gap:10px;padding:10px;display:flex}.achievement-card.earned{opacity:1;background:#d4edda;border-color:#c3e6cb}.achievement-card-icon{text-align:center;flex-shrink:0;width:36px;font-size:24px}.achievement-card-info{min-width:0}.achievement-card-title{font-family:var(--text-pixel);color:#222;margin-bottom:3px;font-size:9px}.achievement-card-desc{color:#555;font-size:10px;line-height:1.4}.tutor-page ::-webkit-scrollbar{width:12px}.tutor-page ::-webkit-scrollbar-track{background:#ddd;border:1px solid #aaa}.tutor-page ::-webkit-scrollbar-thumb{background:var(--gray-dark);border:1px solid #444}.lesson-viewer{flex-direction:column;flex:1;display:flex;overflow:hidden}.lesson-content{color:#d0d0e0;font-family:var(--text-mono);background:#0d0d1a;border:none;flex:1;margin:0;padding:24px 28px;font-size:14px;line-height:1.8;overflow-y:auto}.md-rendered h1{font-family:var(--text-pixel);color:var(--purple-glow);border-bottom:2px solid var(--purple-accent);margin:0 0 20px;padding-bottom:10px;font-size:16px}.md-rendered h2{font-family:var(--text-pixel);color:#c084fc;margin:24px 0 12px;font-size:12px}.md-rendered h3{font-family:var(--text-pixel);color:#a78bfa;margin:18px 0 8px;font-size:10px}.md-rendered p{color:#c8c8d8;margin:0 0 12px;font-size:14px;line-height:1.8}.md-rendered ul,.md-rendered ol{margin:8px 0 16px;padding-left:24px}.md-rendered li{color:#c0c0d0;margin-bottom:6px;font-size:14px;line-height:1.7}.md-rendered strong{color:#e8b820;font-weight:700}.md-rendered em{color:#a8a8c0;font-style:italic}.md-code-block{border:1px solid #2a2a4a;border-left:3px solid var(--purple-accent);font-family:var(--text-mono);tab-size:4;background:#1a1a2e;border-radius:4px;margin:10px 0 16px;padding:14px 18px;font-size:13px;line-height:1.7;overflow-x:auto}.md-code-block code{font-size:inherit;color:#f8f8f8;background:0 0;padding:0}.md-inline-code{color:#c084fc;font-family:var(--text-mono);background:#1e1e3a;border-radius:3px;padding:2px 6px;font-size:13px}.md-rendered blockquote{color:#d0c090;background:#e8b82014;border-left:3px solid #e8b820;margin:12px 0;padding:10px 16px}.md-rendered blockquote p{color:inherit;margin:0 0 6px}.md-rendered blockquote strong{color:#fc0}.md-rendered table{border-collapse:collapse;width:100%;margin:12px 0 16px;font-size:13px}.md-rendered th{color:var(--purple-glow);font-family:var(--text-pixel);text-align:left;background:#1a1a2e;border:1px solid #2a2a4a;padding:8px 12px;font-size:9px}.md-rendered td{color:#c0c0d0;border:1px solid #2a2a4a;padding:6px 12px}.md-rendered tr:nth-child(2n) td{background:#ffffff05}.md-rendered hr{border:none;border-top:1px solid #2a2a4a;margin:20px 0}.lesson-cta{border-top:2px solid var(--purple-accent);background:#1a1a2e;flex-shrink:0;padding:12px 20px}.lesson-go-btn{font-family:var(--text-pixel);background:var(--purple-light);color:var(--white);border:2px solid var(--purple-glow);cursor:pointer;padding:10px 20px;font-size:10px;transition:all .1s;box-shadow:2px 2px #000}.lesson-go-btn:hover{background:var(--purple-glow);color:var(--purple-dark);transform:translate(-1px,-1px);box-shadow:3px 3px #000}@media (width<=1024px){.tutor-layout{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.tutor-layout.sidebar-hidden{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:2px solid var(--gray-dark);max-height:200px}.sidebar-collapsed{display:none}.output-panel{max-height:300px}.editor-panel{border-right:none}.achievements-grid{grid-template-columns:1fr}}@media (width<=768px){.question-display{max-height:140px;padding:10px 14px}.q-title{font-size:8px}.q-desc{font-size:11px}.action-bar{flex-wrap:wrap;gap:6px;padding:6px 10px}.run-btn{padding:7px 14px}.clear-btn,.hint-btn,.reset-btn{padding:6px 8px}.guest-toast{bottom:40px;left:16px;right:16px}}.auth-tabs{border-bottom:2px solid var(--gray-dark);display:flex}.auth-tab{font-family:var(--text-pixel);text-align:center;cursor:pointer;background:var(--gray-light);color:#555;border:none;flex:1;padding:10px;font-size:7px;transition:all .1s}.auth-tab.active{background:var(--gray-win);color:var(--purple-win);border-bottom:2px solid var(--purple-light);margin-bottom:-2px}.auth-tab:hover:not(.active){background:#d0d0d0}.auth-form{flex-direction:column;gap:14px;padding:20px;display:flex}.auth-field{flex-direction:column;gap:4px;display:flex}.auth-field label{font-family:var(--text-pixel);color:var(--purple-win);letter-spacing:.5px;font-size:6px}.auth-field input{font-family:var(--text-mono);background:var(--white);color:#111;border:2px inset #888;outline:none;padding:8px 10px;font-size:14px}.auth-field input:focus{border-color:var(--purple-accent);box-shadow:0 0 0 1px var(--purple-accent)}.auth-submit{font-family:var(--text-pixel);background:var(--purple-win);color:var(--white);cursor:pointer;border:2px solid #000;margin-top:4px;padding:12px;font-size:8px;transition:all .1s;box-shadow:2px 2px #000,inset 1px 1px #ffffff26}.auth-submit:hover{background:var(--purple-light);transform:translate(-1px,-1px);box-shadow:3px 3px #000}.auth-submit:active{box-shadow:none;transform:translate(1px,1px)}.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-divider{text-align:center;font-family:var(--text-pixel);color:#888;padding:4px 0;font-size:6px}.auth-github{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:#24292e;border:2px solid #000;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:7px;transition:all .1s;display:flex;box-shadow:2px 2px #000}.auth-github:hover{background:#444;transform:translate(-1px,-1px);box-shadow:3px 3px #000}.auth-error{font-family:var(--text-mono);color:#721c24;background:#f8d7da;border:1px solid #f5c6cb;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.auth-success{font-family:var(--text-mono);color:#155724;background:#d4edda;border:1px solid #c3e6cb;padding:8px 10px;font-size:12px}.auth-taskbar-btn{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:#ffffff14;border:1px solid #ffffff59;padding:6px 14px;font-size:8px;transition:all .1s}.auth-taskbar-btn:hover{border-color:var(--purple-glow);color:var(--purple-glow);background:#ffffff26}.user-badge{background:#00000040;border:1px solid #ffffff26;align-items:center;gap:0;height:30px;padding:0;display:flex}.user-initials{background:var(--purple-accent);width:30px;height:30px;font-family:var(--text-pixel);color:var(--white);border-right:1px solid #ffffff26;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:flex}.user-badge>span{font-family:var(--text-pixel);color:#ffffffd9;white-space:nowrap;text-overflow:ellipsis;max-width:120px;padding:0 10px;font-size:7px;overflow:hidden}.user-logout{font-family:var(--text-pixel);color:#ffffff80;cursor:pointer;background:#ffffff0d;border:none;border-left:1px solid #ffffff26;height:30px;padding:0 10px;font-size:7px;transition:all .1s}.user-logout:hover{color:var(--red);background:#ff00001a}.achievement-toast{z-index:2000;animation:.3s toastSlideIn;position:fixed;bottom:20px;right:20px}.achievement-toast .win-window{min-width:280px}.achievement-content{align-items:center;gap:12px;padding:14px 16px;display:flex}.achievement-icon{flex-shrink:0;font-size:28px}.achievement-info h4{font-family:var(--text-pixel);color:var(--purple-win);margin-bottom:4px;font-size:7px}.achievement-info p{font-family:var(--text-mono);color:#333;font-size:12px}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.guest-toast{z-index:1500;background:var(--purple-win);color:var(--white);font-family:var(--text-pixel);border:2px solid var(--purple-glow);align-items:center;gap:12px;padding:10px 20px;font-size:9px;animation:.3s guestToastIn;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:4px 4px #000}.guest-toast-login{font-family:var(--text-pixel);background:var(--purple-light);color:var(--white);border:1px solid var(--purple-glow);cursor:pointer;padding:5px 12px;font-size:8px;transition:all .1s}.guest-toast-login:hover{background:var(--purple-glow);color:var(--purple-dark)}.guest-toast-close{color:#ffffff80;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.guest-toast-close:hover{color:var(--red)}@keyframes guestToastIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.admin-login-wrap{background:var(--purple-dark);justify-content:center;align-items:center;min-height:100vh;display:flex}.admin-loading{font-family:var(--text-pixel);color:var(--purple-glow);font-size:10px}.admin-login-box{background:var(--gray-win);border:2px solid var(--gray-dark);width:min(420px,92vw);box-shadow:6px 6px #000,inset 1px 1px #fff}.admin-login-titlebar{background:linear-gradient(90deg, var(--purple-win), var(--purple-accent));font-family:var(--text-pixel);color:var(--white);padding:8px 12px;font-size:10px}.admin-login-body{flex-direction:column;gap:16px;padding:24px;display:flex}.admin-field{flex-direction:column;gap:5px;display:flex}.admin-field label{font-family:var(--text-pixel);color:var(--purple-win);letter-spacing:.5px;font-size:8px}.admin-field input,.admin-field textarea,.admin-field select{font-family:var(--text-mono);background:var(--white);color:#111;border:2px inset #888;outline:none;padding:8px 10px;font-size:14px}.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus{border-color:var(--purple-accent);box-shadow:0 0 0 1px var(--purple-accent)}.admin-field input[type=checkbox]{width:auto;margin-right:6px}.admin-code{font-family:var(--text-mono)!important;color:#e8e8e8!important;background:#1e1e1e!important;border:2px solid #444!important;font-size:12px!important}.admin-error{font-family:var(--text-mono);color:#721c24;background:#f8d7da;border:1px solid #f5c6cb;padding:8px 10px;font-size:12px}.admin-submit{font-family:var(--text-pixel);background:var(--purple-win);color:var(--white);cursor:pointer;border:2px solid #000;padding:12px;font-size:9px;transition:all .1s;box-shadow:2px 2px #000,inset 1px 1px #ffffff26}.admin-submit:hover{background:var(--purple-light);transform:translate(-1px,-1px);box-shadow:3px 3px #000}.admin-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.admin-page{background:var(--purple-dark);flex-direction:column;min-height:100vh;display:flex}.admin-topbar-right{align-items:center;gap:10px;display:flex}.admin-btn-home{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff4d;align-items:center;padding:5px 12px;font-size:8px;text-decoration:none;transition:all .1s;display:inline-flex}.admin-btn-home:hover{border-color:var(--purple-glow);color:var(--purple-glow);background:#ffffff1a}.admin-topbar{background:var(--purple-win);border-bottom:2px solid var(--purple-light);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 24px;display:flex}.admin-logo{font-family:var(--text-pixel);color:var(--white);font-size:10px}.admin-btn-logout{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff4d;padding:5px 12px;font-size:8px;transition:all .1s}.admin-btn-logout:hover{border-color:var(--red);color:var(--red);background:#ffffff1a}.admin-tabs{background:var(--purple-mid);border-bottom:2px solid var(--purple-accent);flex-shrink:0;gap:0;display:flex}.admin-tab{font-family:var(--text-pixel);color:#fff9;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:12px 24px;font-size:9px;transition:all .12s}.admin-tab:hover{color:var(--white);background:#ffffff0d}.admin-tab.active{color:var(--purple-glow);border-bottom-color:var(--purple-glow);background:#c084fc14}.admin-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px;overflow-y:auto}.admin-toolbar{gap:10px;margin-bottom:16px;display:flex}.admin-btn-new{font-family:var(--text-pixel);background:var(--purple-light);color:var(--white);border:2px solid var(--purple-glow);cursor:pointer;padding:10px 18px;font-size:8px;transition:all .1s;box-shadow:2px 2px #000}.admin-btn-new:hover{background:var(--purple-glow);color:var(--purple-dark);transform:translate(-1px,-1px);box-shadow:3px 3px #000}.admin-table-wrap{background:var(--gray-win);border:2px solid var(--gray-dark);overflow-x:auto;box-shadow:4px 4px #000,inset 1px 1px #fff}.admin-table{border-collapse:collapse;width:100%;font-family:var(--text-mono);font-size:13px}.admin-table th{font-family:var(--text-pixel);color:var(--purple-win);text-align:left;border-bottom:2px solid var(--gray-dark);white-space:nowrap;background:linear-gradient(#e0e0e0,silver);border-right:1px solid #aaa;padding:10px 12px;font-size:7px}.admin-table td{color:#111;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #bbb;border-right:1px solid #ddd;max-width:200px;padding:8px 12px;overflow:hidden}.admin-table tr:hover td{background:#4a1d7a0f}.admin-actions{white-space:nowrap;gap:6px;display:flex}.admin-btn-edit{font-family:var(--text-pixel);background:var(--purple-win);color:var(--white);cursor:pointer;border:1px solid #000;padding:4px 8px;font-size:6px;box-shadow:1px 1px #000}.admin-btn-edit:hover{background:var(--purple-light)}.admin-btn-delete{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:#a22;border:1px solid #000;padding:4px 8px;font-size:6px;box-shadow:1px 1px #000}.admin-btn-delete:hover{background:#c33}.admin-form{background:var(--gray-win);border:2px solid var(--gray-dark);padding:24px;box-shadow:4px 4px #000,inset 1px 1px #fff}.admin-form-title{font-family:var(--text-pixel);color:var(--purple-win);border-bottom:2px solid var(--gray-dark);margin-bottom:20px;padding-bottom:10px;font-size:10px}.admin-form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.admin-form-actions{border-top:2px solid var(--gray-dark);gap:10px;margin-top:20px;padding-top:16px;display:flex}.admin-btn-save{font-family:var(--text-pixel);color:var(--white);cursor:pointer;background:#262;border:2px solid #000;padding:10px 24px;font-size:8px;transition:all .1s;box-shadow:2px 2px #000}.admin-btn-save:hover{background:#3a3;transform:translate(-1px,-1px);box-shadow:3px 3px #000}.admin-btn-cancel{font-family:var(--text-pixel);background:var(--gray-dark);color:var(--white);cursor:pointer;border:2px solid #000;padding:10px 24px;font-size:8px;transition:all .1s;box-shadow:2px 2px #000}.admin-btn-cancel:hover{background:#999}.admin-diff-badge{font-family:var(--text-pixel);border:1px solid;padding:3px 8px;font-size:6px}.admin-diff-badge.easy{color:#0a2;background:#d4edda;border-color:#0a2}.admin-diff-badge.medium{color:#a80;background:#fff3cd;border-color:#a80}.admin-diff-badge.hard{color:#a22;background:#f8d7da;border-color:#a22}.admin-tests-section{border-top:2px dashed var(--gray-dark);margin-top:28px;padding-top:20px}.admin-tests-title{font-family:var(--text-pixel);color:var(--purple-win);margin-bottom:14px;font-size:9px}.admin-tests-empty{font-family:var(--text-pixel);color:#666;border:1px dashed var(--gray-dark);text-align:center;background:#0000000a;padding:16px;font-size:7px;line-height:1.6}.admin-tests-list{flex-direction:column;gap:8px;display:flex}.admin-test-row{border:1px solid var(--gray-dark);background:#fff9;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.admin-test-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.admin-test-line{align-items:center;gap:8px;display:flex}.admin-test-order{font-family:var(--text-pixel);color:var(--purple-win);border:1px solid var(--purple-win);background:#4a1d7a1a;padding:2px 6px;font-size:6px}.admin-test-name{font-family:var(--text-pixel);color:#222;font-size:8px}.admin-test-meta{flex-wrap:wrap;gap:6px;display:flex}.admin-test-type{font-family:var(--text-pixel);color:#0a2;background:#d4edda;border:1px solid #0a2;padding:2px 6px;font-size:6px}.admin-test-value{font-family:var(--mono,monospace);color:#555;word-break:break-all;font-size:10px}.admin-test-form{border:1px solid var(--gray-dark);background:#4a1d7a0a;padding:16px}.admin-type-options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.admin-type-option{background:var(--white);cursor:pointer;text-align:left;border:2px outset #aaa;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px;display:flex}.admin-type-option:hover{background:#f0f0f0}.admin-type-option.active{background:var(--purple-win);border:2px inset var(--purple-win);color:var(--white)}.admin-type-option-name{font-family:var(--text-mono);font-size:12px;font-weight:700}.admin-type-option-desc{font-family:var(--text-pixel);opacity:.8;font-size:6px}.admin-battle-state{font-family:var(--text-pixel);border:1px solid;padding:3px 8px;font-size:6px;display:inline-block}.admin-battle-state.scheduled{color:#555;background:#e0e0e0;border-color:#777}.admin-battle-state.live{color:#fff;background:#0a2;border-color:#0a2;animation:1.5s infinite battle-live-pulse}.admin-battle-state.ended{color:#fff;background:#555;border-color:#555}.admin-battle-state.cancelled{color:#fff;background:#a22;border-color:#a22}@keyframes battle-live-pulse{0%,to{opacity:1}50%{opacity:.6}}.admin-modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.admin-modal{background:var(--gray-win);border:2px solid #000;flex-direction:column;width:min(800px,100%);max-height:90vh;display:flex;overflow:hidden;box-shadow:4px 4px #000}@media (width<=768px){.admin-form-grid{grid-template-columns:1fr}.admin-content{padding:16px}.admin-tab{padding:10px 14px;font-size:7px}.admin-test-row{flex-direction:column;align-items:stretch}}.battles-page{color:#e8e8e8;min-height:100vh;font-family:var(--text-mono);background:linear-gradient(#0d0d1a 0%,#1a0d2e 100%)}.battles-content{max-width:1280px;margin:0 auto;padding:28px 24px 48px}.battles-header{text-align:center;margin-bottom:28px}.battles-title{font-family:var(--text-pixel);color:var(--purple-glow);text-shadow:0 0 16px #c084fc66;letter-spacing:3px;margin-bottom:10px;font-size:18px;line-height:1.4}.battles-subtitle{color:#aaa;font-size:12px}.battles-guest-banner{border:1px solid var(--purple-accent);color:#ccc;text-align:center;background:#c084fc1a;margin-bottom:24px;padding:12px 16px;font-size:12px}.battles-guest-login{font-family:var(--text-pixel);background:var(--purple-accent);color:#fff;cursor:pointer;border:none;margin-left:8px;padding:6px 14px;font-size:9px}.battles-guest-login:hover{background:var(--purple-light)}.battles-error{color:#f46;background:#ff44661a;border:1px solid #f46;margin-bottom:24px;padding:12px;font-size:12px}.battles-loading,.battles-empty{text-align:center;color:#888;padding:64px 24px;font-size:13px}.battles-sections{grid-template-columns:repeat(3,1fr);align-items:start;gap:18px;display:grid}.battles-section{background:var(--gray-win);border:2px solid var(--gray-dark);flex-direction:column;min-height:240px;display:flex;box-shadow:4px 4px #000,inset 1px 1px #fff}.battles-section-body{background:var(--gray-win);flex-direction:column;flex:1;gap:10px;padding:14px;display:flex}.battles-section-empty{color:#555;text-align:center;flex:1;justify-content:center;align-items:center;padding:32px 12px;font-size:11px;font-style:italic;display:flex}.battle-card{border:1px solid var(--gray-dark);color:#1a0d2e;background:#fff;padding:12px 14px;text-decoration:none;transition:all .15s;display:block;box-shadow:inset 1px 1px #fff,2px 2px #00000026}.battle-card-live{border-color:var(--purple-accent);background:#f3eaff}.battle-card-scheduled{background:#fff8e0;border-color:#a80}.battle-card-ended{cursor:pointer}.battle-card-ended:hover{border-color:var(--purple-light);background:#e8def5}.battle-card-header{font-family:var(--text-pixel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:8px;font-size:8px;display:flex}.battle-card-title{font-family:var(--text-pixel);color:var(--purple-win);letter-spacing:.5px;margin:6px 0;font-size:11px;line-height:1.4}.battle-card-desc{color:#444;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:8px;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.battle-card-meta{color:#666;flex-direction:column;gap:3px;margin-bottom:10px;font-size:10px;display:flex}.battle-card-date{color:#666;font-size:9px}.battle-card-cta{font-family:var(--text-pixel);color:var(--purple-accent);margin-top:6px;font-size:8px}.battle-card-enter{text-align:center;font-family:var(--text-pixel);background:var(--purple-light);color:#fff;border:1px solid var(--purple-glow);letter-spacing:1px;padding:9px 14px;font-size:9px;text-decoration:none;transition:all .1s;display:block;box-shadow:2px 2px #000,inset 1px 1px #fff3}.battle-card-enter:hover{background:var(--purple-glow);color:var(--purple-dark);transform:translate(-1px,-1px);box-shadow:3px 3px #000}.battle-state-badge{font-family:var(--text-pixel);letter-spacing:1px;border:1px solid;align-items:center;gap:4px;padding:3px 7px;font-size:7px;display:inline-flex}.battle-state-badge.live{background:var(--purple-light);color:#fff;border-color:var(--purple-glow)}.battle-state-badge.live:before{content:"";background:#0f8;border-radius:50%;width:6px;height:6px;animation:1.4s infinite battle-live-dot;box-shadow:0 0 6px #00ff88e6}@keyframes battle-live-dot{0%,to{opacity:1}50%{opacity:.35}}.battle-state-badge.scheduled{color:#806000;background:#fff3cd;border-color:#a80}.battle-state-badge.ended{color:#444;background:#e0e0e0;border-color:#888}.battle-state-badge.cancelled{color:#721c24;background:#f8d7da;border-color:#a22}.battle-countdown{font-family:var(--text-mono);color:var(--purple-win);font-size:10px;font-weight:700}.nav-links .nav-battle-link{font-family:var(--text-pixel);color:var(--white);letter-spacing:.5px;border:1px solid #0000;padding:9px 14px;font-size:8px;text-decoration:none;transition:all .12s}.nav-links .nav-battle-link:hover{border-color:var(--purple-glow);color:var(--purple-glow);background:#c084fc1f}.battle-room{color:#e8e8e8;height:100vh;font-family:var(--text-mono);background:#0d0d1a;flex-direction:column;display:flex}.battle-layout{flex:1;grid-template-columns:280px 1fr 360px;gap:0;display:grid;overflow:hidden}.battle-layout.sidebar-hidden{grid-template-columns:32px 1fr 360px}.battle-timer{border:1px solid var(--purple-accent);font-family:var(--text-pixel);background:#c084fc1a;flex-direction:column;align-items:center;gap:2px;min-width:140px;padding:4px 12px;display:inline-flex}.battle-timer-label{color:#aaa;letter-spacing:1px;font-size:7px}.battle-timer-value{color:var(--purple-glow);font-size:14px;font-weight:700}.battle-timer.live{background:#00ff881a;border-color:#0f8}.battle-timer.live .battle-timer-value{color:#0f8}.battle-timer.live.urgent{background:#ff446626;border-color:#f46;animation:.6s infinite battle-timer-urgent}.battle-timer.live.urgent .battle-timer-value{color:#f46}@keyframes battle-timer-urgent{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.battle-timer.scheduled{border-color:#fc0}.battle-timer.scheduled .battle-timer-value{color:#fc0}.battle-timer.ended,.battle-timer.cancelled{color:#888;background:#5553;border-color:#555}.battle-q-points{background:var(--purple-accent);color:#fff;font-family:var(--text-pixel);border-radius:2px;margin-left:8px;padding:2px 6px;font-size:7px}.battle-leaderboard{background:#1a0d2e;border-bottom:2px solid #000;flex-direction:column;max-height:45%;display:flex;overflow:hidden}.battle-lb-rows{flex:1;padding:4px 0;overflow-y:auto}.battle-lb-row{border-bottom:1px solid #ffffff0d;grid-template-columns:30px 1fr 50px 60px;align-items:center;gap:8px;padding:6px 12px;font-size:11px;display:grid}.battle-lb-row.me{border-left:3px solid var(--purple-light);background:#c084fc26}.battle-lb-rank{font-family:var(--text-pixel);color:#888;text-align:center;font-size:9px}.battle-lb-row:first-child .battle-lb-rank{color:#fc0}.battle-lb-row:nth-child(2) .battle-lb-rank{color:#ccc}.battle-lb-row:nth-child(3) .battle-lb-rank{color:#c85}.battle-lb-name{color:#ddd;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.battle-lb-row.me .battle-lb-name{color:var(--purple-glow);font-weight:700}.battle-lb-pts{text-align:right;font-family:var(--text-pixel);color:var(--purple-glow);font-size:10px}.battle-lb-time{text-align:right;font-family:var(--text-mono);color:#999;font-size:10px}.battle-pre-lobby{background:radial-gradient(circle,#1a0d2e 0%,#0d0d1a 100%);flex:1;justify-content:center;align-items:center;padding:32px;display:flex}.battle-pre-card{border:2px solid var(--purple-accent);text-align:center;background:#0d0d1acc;max-width:600px;padding:32px;box-shadow:0 0 40px #c084fc33}.battle-pre-title{font-family:var(--text-pixel);color:var(--purple-glow);letter-spacing:2px;margin-bottom:16px;font-size:18px}.battle-pre-state{font-family:var(--text-pixel);color:#000;background:#fc0;margin-bottom:24px;padding:6px 12px;font-size:9px;display:inline-block}.battle-pre-desc{color:#ccc;margin-bottom:24px;font-size:13px;line-height:1.6}.battle-pre-info{text-align:left;font-size:12px;font-family:var(--text-mono);background:#ffffff0d;margin-bottom:16px;padding:16px}.battle-pre-info div{margin-bottom:6px}.battle-pre-hint{color:#888;font-size:11px;font-style:italic}.battle-pre-login{font-family:var(--text-pixel);background:var(--purple-accent);color:#fff;border:2px solid var(--purple-light);cursor:pointer;margin-top:20px;padding:12px 24px;font-size:10px;box-shadow:2px 2px #000}.battle-pre-login:hover{background:var(--purple-light)}.battle-cancelled-overlay{z-index:999;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.battle-cancelled-card{text-align:center;background:#2d1b4e;border:2px solid #f46;max-width:400px;padding:32px}.battle-cancelled-card h2{font-family:var(--text-pixel);color:#f46;margin-bottom:12px;font-size:16px}.battle-cancelled-card p{color:#ccc;margin-bottom:20px}.battle-cancelled-card button{font-family:var(--text-pixel);background:var(--purple-accent);color:#fff;border:2px solid var(--purple-light);cursor:pointer;padding:10px 20px;font-size:10px}@media (width<=1100px){.battle-layout{grid-template-columns:260px 1fr 320px}.battles-sections{grid-template-columns:1fr 1fr}}@media (width<=900px){.battle-layout{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.battle-layout.sidebar-hidden{grid-template-columns:1fr}.battle-leaderboard{max-height:200px}.battles-sections{grid-template-columns:1fr}}.lb-podium-btn{font-family:var(--text-pixel);color:#fff;cursor:pointer;background:#0a5;border:1px solid #0f8;margin-left:auto;padding:4px 8px;font-size:7px}.lb-podium-btn:hover{background:#0c6}.podium-overlay{z-index:1200;background:#000000d1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden}.podium-confetti{opacity:.9;width:9px;height:14px;animation:linear infinite podium-fall;position:absolute;top:-16px}@keyframes podium-fall{0%{transform:translateY(-20px)rotate(0)}to{transform:translateY(105vh)rotate(540deg)}}.podium-modal{border:2px solid var(--purple-glow);text-align:center;background:linear-gradient(#1a0d2e,#0d0d1a);width:min(680px,100%);max-height:92vh;padding:28px 24px 24px;animation:.4s cubic-bezier(.18,.89,.32,1.28) podium-pop;position:relative;overflow-y:auto;box-shadow:0 0 60px #c084fc59}@keyframes podium-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.podium-close{color:#aaa;cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute;top:10px;right:12px}.podium-close:hover{color:#fff}.podium-banner{font-family:var(--text-pixel);color:#fc0;letter-spacing:2px;text-shadow:0 0 16px #ffcc0080;margin-bottom:6px;font-size:16px}.podium-title{font-family:var(--text-pixel);color:var(--purple-glow);margin-bottom:24px;font-size:10px}.podium-loading{color:#aaa;padding:40px;font-size:13px}.podium-stage{justify-content:center;align-items:flex-end;gap:12px;margin-bottom:24px;display:flex}.podium-col{flex-direction:column;flex:1;align-items:center;max-width:180px;display:flex}.podium-player{flex-direction:column;align-items:center;margin-bottom:8px;animation:.5s both podium-rise;display:flex}.place-1 .podium-player{animation-delay:.35s}.place-2 .podium-player{animation-delay:.15s}.place-3 .podium-player{animation-delay:.55s}@keyframes podium-rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.podium-medal{font-size:30px;line-height:1}.podium-avatar{width:54px;height:54px;font-family:var(--text-pixel);color:#fff;background:linear-gradient(135deg, var(--purple-accent), var(--purple-light));border:2px solid var(--purple-glow);border-radius:50%;justify-content:center;align-items:center;margin:4px 0;font-size:13px;text-decoration:none;display:flex}.place-1 .podium-avatar{border-color:#fc0;width:66px;height:66px;box-shadow:0 0 18px #ffcc0080}.podium-name{font-family:var(--text-pixel);color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:8px;text-decoration:none;overflow:hidden}.podium-name:hover{color:var(--purple-glow)}.podium-pts{font-family:var(--text-pixel);color:var(--purple-glow);margin-top:4px;font-size:11px}.podium-sub{color:#999;margin-top:2px;font-size:9px}.podium-pedestal{background:linear-gradient(180deg, var(--purple-accent), var(--purple-win));border:1px solid var(--purple-glow);transform-origin:bottom;border-bottom:none;justify-content:center;align-items:flex-start;width:100%;padding-top:8px;animation:.5s both podium-grow;display:flex}.place-1 .podium-pedestal{background:linear-gradient(#fc0,#a80);border-color:#fc0;height:110px;animation-delay:.3s}.place-2 .podium-pedestal{height:78px;animation-delay:.1s}.place-3 .podium-pedestal{background:linear-gradient(#cd7f32,#8a5520);border-color:#cd7f32;height:56px;animation-delay:.5s}@keyframes podium-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.podium-place-num{font-family:var(--text-pixel);color:#fff;text-shadow:1px 1px #0006;font-size:16px}.podium-stats{border-top:1px solid #c084fc33;justify-content:center;gap:28px;margin-bottom:16px;padding:16px 0;display:flex}.podium-stat{flex-direction:column;gap:2px;display:flex}.podium-stat-val{font-family:var(--text-pixel);color:var(--purple-glow);font-size:16px}.podium-stat-lbl{color:#999;font-size:10px}.podium-ok{font-family:var(--text-pixel);background:var(--purple-accent);color:#fff;border:2px solid var(--purple-glow);cursor:pointer;padding:10px 28px;font-size:9px;box-shadow:2px 2px #000}.podium-ok:hover{background:var(--purple-light)}@media (width<=520px){.podium-stage{gap:4px}.podium-avatar{width:44px;height:44px;font-size:11px}.place-1 .podium-avatar{width:54px;height:54px}.podium-stats{gap:16px}}.profile-page{color:#e8e8e8;min-height:100vh;font-family:var(--text-mono);background:linear-gradient(#0d0d1a 0%,#1a0d2e 100%)}.profile-content{max-width:760px;margin:0 auto;padding:32px 24px 64px}.user-initials{cursor:pointer;text-decoration:none}.profile-header{align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.profile-avatar{width:88px;height:88px;font-family:var(--text-pixel);color:#fff;background:linear-gradient(135deg, var(--purple-accent), var(--purple-light));border:3px solid var(--purple-glow);flex-shrink:0;justify-content:center;align-items:center;font-size:24px;display:flex;box-shadow:0 0 24px #c084fc4d}.profile-header-info{flex:1;min-width:0}.profile-name-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.profile-name{font-family:var(--text-pixel);color:var(--purple-glow);letter-spacing:1px;word-break:break-word;margin:0;font-size:18px}.profile-role{font-family:var(--text-pixel);border:1px solid;padding:3px 8px;font-size:7px}.profile-role.admin{color:#f68;background:#ff44661f;border-color:#f46}.profile-role.member{color:#0f8;background:#00ff881a;border-color:#0a5}.profile-bio{color:#ccc;margin:10px 0;font-size:13px;line-height:1.5}.profile-bio.empty{color:#777;font-style:italic}.profile-edit-btn{font-family:var(--text-pixel);color:var(--purple-glow);border:1px solid var(--purple-accent);cursor:pointer;background:0 0;padding:7px 14px;font-size:8px;transition:all .12s}.profile-edit-btn:hover{border-color:var(--purple-glow);background:#c084fc1f}.tier-badge{border:2px solid;align-items:center;gap:16px;margin-bottom:28px;padding:16px 18px;display:flex}.tier-badge-icon{font-size:40px;line-height:1}.tier-badge-info{flex:1;min-width:0}.tier-badge-name{font-family:var(--text-pixel);letter-spacing:2px;font-size:13px}.tier-badge-points{color:#aaa;margin:4px 0 8px;font-size:11px}.tier-progress-bar{background:#0006;border:1px solid #ffffff1a;height:8px;overflow:hidden}.tier-progress-fill{height:100%;transition:width .4s}.tier-badge-next{color:#999;margin-top:5px;font-size:10px}.profile-section-title{font-family:var(--text-pixel);color:var(--purple-light);letter-spacing:1px;border-bottom:1px solid #c084fc33;margin:24px 0 12px;padding-bottom:6px;font-size:10px}.profile-stats-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.profile-stat{border:1px solid var(--purple-accent);text-align:center;background:#0d0d1a99;padding:16px 12px}.profile-stat.accent{border-color:var(--purple-glow);background:#c084fc14}.profile-stat-value{font-family:var(--text-pixel);color:var(--purple-glow);margin-bottom:6px;font-size:20px}.profile-stat-label{color:#999;font-size:10px;line-height:1.3}.profile-edit{background:var(--gray-win);border:2px solid var(--gray-dark);padding:24px;box-shadow:4px 4px #000,inset 1px 1px #fff}.profile-edit-title{font-family:var(--text-pixel);color:var(--purple-win);margin-bottom:18px;font-size:10px}.profile-field{flex-direction:column;gap:5px;margin-bottom:16px;display:flex}.profile-field label{font-family:var(--text-pixel);color:var(--purple-win);font-size:8px}.profile-field input,.profile-field textarea{font-family:var(--text-mono);color:#111;resize:vertical;background:#fff;border:2px inset #888;outline:none;padding:8px 10px;font-size:14px}.profile-field input:focus,.profile-field textarea:focus{border-color:var(--purple-accent);box-shadow:0 0 0 1px var(--purple-accent)}.profile-field-hint{color:#888;text-align:right;font-size:10px}.profile-error{font-family:var(--text-mono);color:#721c24;background:#f8d7da;border:1px solid #f5c6cb;margin-bottom:14px;padding:8px 10px;font-size:12px}.profile-edit-actions{gap:10px;display:flex}.profile-btn-save{font-family:var(--text-pixel);background:var(--purple-win);color:#fff;cursor:pointer;border:2px solid #000;padding:11px 22px;font-size:9px;box-shadow:2px 2px #000}.profile-btn-save:hover{background:var(--purple-light)}.profile-btn-save:disabled{opacity:.5;cursor:not-allowed}.profile-btn-cancel{font-family:var(--text-pixel);background:var(--gray-dark);color:#fff;cursor:pointer;border:2px solid #000;padding:11px 22px;font-size:9px;text-decoration:none;display:inline-block;box-shadow:2px 2px #000}.profile-btn-cancel:hover{background:#999}.profile-empty{text-align:center;color:#888;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;font-size:14px;display:flex}@media (width<=560px){.profile-stats-grid{grid-template-columns:1fr 1fr}.profile-header{text-align:center;flex-direction:column;align-items:center}}
