*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px}body{color:#e8e8f4;-webkit-font-smoothing:antialiased;background:#06060f;min-height:100vh;font-family:Lexend,sans-serif;overflow-x:hidden}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent,#a78bfa);outline-offset:3px}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.hub{--bg:#06060f;--surface:#0d0d1f;--border:#1e1e3a;--text:#e8e8f4;--muted:#7b7ba0;--white:#fff;--accent:#a78bfa;background:var(--bg);min-height:100vh;color:var(--text);position:relative}.hub:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0}.blob{filter:blur(120px);opacity:.18;pointer-events:none;z-index:0;border-radius:50%;position:fixed}.blob-1{background:#a78bfa;width:500px;height:500px;top:-100px;left:-100px}.blob-2{background:#3b82f6;width:400px;height:400px;bottom:-80px;right:-80px}.wrapper{z-index:1;max-width:1400px;margin:0 auto;padding:60px 40px 80px;position:relative}.hub header{text-align:center;margin-bottom:56px;animation:.6s both fadeUp}.school-badge{letter-spacing:.18em;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);text-transform:uppercase;margin-bottom:24px;padding:5px 14px;font-size:10px;display:inline-block}.hub h1{letter-spacing:-.02em;color:var(--white);margin-bottom:14px;font-family:Lexend,sans-serif;font-size:clamp(2rem,6vw,3.4rem);font-weight:800;line-height:1.1}.hub h1 span{background:linear-gradient(90deg,#a78bfa,#60a5fa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hub header p{color:var(--muted);letter-spacing:.05em;font-size:12px}.page-title{color:var(--white);border-bottom:2px solid var(--text);margin-bottom:32px;padding-bottom:12px;font-family:Lexend,sans-serif;font-size:1.6rem;font-weight:700;display:inline-block}.section-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:14px;margin-bottom:20px;font-size:10px;display:flex}.section-label:after{content:"";background:var(--border);flex:1;height:1px}.quiz-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}@media (width<=1100px){.quiz-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.quiz-grid{grid-template-columns:1fr}}.quiz-card{--card-glow:color-mix(in srgb, var(--card-accent) 7%, transparent);--card-shadow:color-mix(in srgb, var(--card-accent) 22%, transparent);--card-icon-bg:color-mix(in srgb, var(--card-accent) 10%, transparent);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:inherit;animation:fadeUp .5s ease var(--delay,0s) both;padding:28px 28px 24px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.quiz-card:before{content:"";background:var(--card-accent);opacity:0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.quiz-card:after{content:"";background:radial-gradient(circle at 50% 0%, var(--card-glow) 0%, transparent 70%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.quiz-card:hover,.quiz-card:focus-visible{border-color:var(--card-accent);box-shadow:0 0 30px var(--card-shadow);transform:translateY(-3px)}.quiz-card:hover:before,.quiz-card:hover:after,.quiz-card:focus-visible:before,.quiz-card:focus-visible:after{opacity:1}.quiz-card:focus-visible{outline:2px solid var(--card-accent);outline-offset:3px}.card-icon{border-radius:var(--radius-md);background:var(--card-icon-bg);border:1px solid var(--card-accent);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;font-size:20px;display:flex}.card-subject{letter-spacing:.15em;text-transform:uppercase;color:var(--card-accent);margin-bottom:6px;font-size:10px}.card-title{color:var(--white);margin-bottom:20px;font-family:Lexend,sans-serif;font-size:1.25rem;font-weight:700;line-height:1.2}.card-footer{z-index:1;border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:16px;display:flex;position:relative}.card-meta{gap:16px;display:flex}.card-meta-item{flex-direction:column;gap:2px;display:flex}.meta-val{color:var(--white);font-family:Lexend,sans-serif;font-size:1rem;font-weight:700}.meta-key{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:9px}.btn-launch{letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--card-accent);border-radius:var(--radius-pill);padding:10px 20px;font-size:10px;font-weight:700;transition:opacity .15s,transform .15s;display:inline-block}.quiz-card:hover .btn-launch{opacity:.85;transform:scale(1.03)}.page-footer{text-align:center;letter-spacing:.1em;color:var(--muted);margin-top:64px;font-size:10px;line-height:1.8}@media (width<=600px){.wrapper{padding:40px 16px 64px}.quiz-card{padding:22px 20px 20px}.hub h1{font-size:1.8rem}}.dashboard-shell{z-index:1;align-items:stretch;min-height:100vh;display:flex;position:relative}.dashboard-main{flex:1;min-width:0}.sidebar{background:var(--bg);flex-direction:column;flex-shrink:0;gap:28px;width:220px;padding:28px 18px;display:flex}.sidebar-close{display:none}.sidebar-logo{width:100%;max-width:150px;margin:0 auto;display:block}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-link{color:var(--muted);border-radius:var(--radius-sm);padding:10px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.sidebar-link:hover{color:var(--text);background:color-mix(in srgb, var(--accent) 8%, transparent)}.sidebar-link.active{color:var(--white);background:color-mix(in srgb, var(--accent) 18%, transparent)}.sidebar-toggle{z-index:5;width:40px;height:40px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;display:none;position:fixed;top:16px;left:16px}.sidebar-backdrop{display:none}@media (width<=860px){.sidebar-toggle{display:flex}.sidebar{z-index:6;width:min(260px,80vw);transition:transform .25s;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:0 0 40px #00000080}.sidebar.open{transform:translate(0)}.sidebar-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-self:flex-end;align-items:center;margin-bottom:-8px;display:flex}.sidebar-close:hover{color:var(--text)}.sidebar-backdrop{z-index:5;background:#0000008c;display:block;position:fixed;inset:0}.dashboard-main .wrapper{padding-top:84px}}.score-list{flex-direction:column;gap:10px;display:flex}.score-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.score-row:hover{border-color:var(--card-accent);transform:translateY(-1px)}.score-icon{background:color-mix(in srgb, var(--card-accent) 10%, transparent);border:1px solid var(--card-accent);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.score-info{flex:1;min-width:0}.score-subject{color:var(--white);margin-bottom:2px;font-weight:700}.score-sub{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.score-value{text-align:right;flex-shrink:0}.score-num{color:var(--card-accent);font-family:Lexend,sans-serif;font-size:1.5rem;font-weight:800}.score-max{color:var(--muted);font-size:12px}.score-empty{color:var(--muted);font-size:1.25rem}.quiz-app{--green:#22c55e;--red:#ef4444;--font:"Lexend", "Noto Sans Sundanese", system-ui, sans-serif;--grid-line:color-mix(in srgb, var(--text) 2%, transparent);--grid-size:40px;min-height:100vh;color:var(--text);font-family:var(--font);background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size);background-position:50%;position:relative}.quiz-app button{font-family:inherit}.quiz-app strong,.quiz-app b{font-weight:500}.quiz-app:before{content:"";background:radial-gradient(ellipse 700px 420px at 50% -10%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);pointer-events:none;z-index:0;position:fixed;inset:0}.screen{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:72px 20px 40px;display:flex;position:relative}.screen:focus{outline:none}.back-link{z-index:2;color:var(--muted);border-radius:var(--radius-pill);padding:8px 14px;font-size:15px;font-weight:400;text-decoration:none;transition:color .15s,background .15s;position:absolute;top:20px;left:24px}.back-link:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.start-icon{background:color-mix(in srgb, var(--accent) 14%, var(--card));border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);opacity:0;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;margin-bottom:20px;font-size:36px;animation:.6s 50ms forwards fadeUp;display:flex}.tag{letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius-pill);opacity:0;margin-bottom:24px;padding:3px 16px;font-size:13px;font-weight:400;animation:.6s .1s forwards fadeUp}.start-title{opacity:0;margin-bottom:16px;font-size:clamp(38px,7vw,72px);font-weight:500;line-height:1.05;animation:.6s .2s forwards fadeUp}.start-title span{color:var(--accent)}.start-sub{color:var(--muted);opacity:0;margin-bottom:10px;font-size:18px;animation:.6s .3s forwards fadeUp}.start-meta{opacity:0;flex-wrap:wrap;justify-content:center;gap:10px 12px;margin-bottom:44px;animation:.6s .4s forwards fadeUp;display:flex}.meta-chip{color:var(--accent2);background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:var(--radius-pill);padding:4px 16px;font-size:15px;font-weight:400}.duration-picker{opacity:0;flex-direction:column;align-items:center;gap:10px;margin-bottom:32px;animation:.6s .45s forwards fadeUp;display:flex}.duration-label{color:var(--muted);font-size:14px}.duration-options{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.duration-chip{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:6px 18px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.duration-chip:hover{border-color:var(--accent);color:var(--accent2)}.duration-chip.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.btn-start,.btn-retry{color:var(--on-accent);background:var(--accent);border-radius:var(--radius-pill);cursor:pointer;box-shadow:0 12px 30px -12px color-mix(in srgb, var(--accent) 60%, transparent);opacity:0;border:none;padding:10px 44px;font-size:18px;font-weight:500;transition:background .2s,transform .2s,box-shadow .2s;animation:.6s .5s forwards fadeUp}.btn-retry{opacity:1;animation:none}.btn-start:hover,.btn-retry:hover{background:var(--accent2);box-shadow:0 16px 34px -12px color-mix(in srgb, var(--accent) 70%, transparent);transform:translateY(-2px)}.btn-ghost{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:9px 28px;font-size:16px;font-weight:400;text-decoration:none;transition:border-color .15s,color .15s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.result-ring{background:conic-gradient(var(--ring-color,var(--accent)) var(--pct,0deg), var(--border) 0);border-radius:50%;justify-content:center;align-items:center;width:168px;height:168px;margin-bottom:20px;display:flex;position:relative}.result-ring:after{content:"";background:var(--card);border-radius:50%;position:absolute;inset:10px}.result-ring-num{z-index:1;color:var(--ring-color,var(--accent));font-size:56px;font-weight:500;line-height:1;position:relative}.result-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:28px;font-size:14px;font-weight:400}.result-verdict{margin-bottom:16px;font-size:28px;font-weight:500;line-height:1.2}.result-stats{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:24px;display:flex}.stat-box{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:100px;padding:12px 24px}.stat-num{font-size:32px;font-weight:500;line-height:1.1;display:block}.stat-name{color:var(--muted);margin-top:2px;font-size:14px}.result-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:16px;display:flex}.ql{--ql-panel:color-mix(in srgb, var(--bg) 55%, #000);--ql-side:var(--card);--ql-tile:color-mix(in srgb, var(--accent) 30%, transparent);--ql-tile-hover:color-mix(in srgb, var(--accent) 42%, transparent);--ql-tile-line:color-mix(in srgb, var(--accent) 55%, transparent);--ql-cell:color-mix(in srgb, var(--accent) 40%, var(--ql-side));--ql-cell-hover:color-mix(in srgb, var(--accent) 52%, var(--ql-side));--ql-muted:color-mix(in srgb, var(--muted) 65%, var(--text));--ql-green:#22c55e;--ql-green-deep:#15803d;--ql-red:#dc2626;--ql-ink:#04140a;z-index:1;flex-direction:column;justify-content:center;max-width:1440px;min-height:100dvh;margin:0 auto;padding:32px 24px;display:flex;position:relative}.ql :focus-visible{outline-color:var(--text)}.ql-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:20px;display:flex}.ql-title{text-transform:uppercase;color:var(--text);font-size:clamp(26px,3.4vw,34px);font-weight:500;line-height:1.1}.ql-back{color:var(--ql-muted);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:2px 14px;font-size:15px;font-weight:400;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.ql-back:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ql-panel{background:var(--ql-panel);border:1px solid var(--border);border-radius:12px;grid-template:"main side"1fr"main actions"/minmax(0,1fr) clamp(300px,32%,400px);gap:16px 32px;min-height:clamp(560px,80vh,760px);padding:32px;display:grid}.ql-main{grid-area:main;min-width:0}.ql-qhead{align-items:center;gap:16px;margin-bottom:24px;display:flex}.ql-qnum{min-width:46px;height:46px;color:var(--bg);background:var(--text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:24px;font-weight:500;line-height:1;display:flex}.ql-progress{background:color-mix(in srgb, var(--accent) 16%, var(--ql-panel));border-radius:var(--radius-pill);flex:1;height:12px;overflow:hidden}.ql-progress-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .4s}.ql-hint{color:#facc15;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:26px;transition:background .15s,filter .15s;display:flex}.ql-hint:hover:not(:disabled){background:#facc1524}.ql-hint.on{filter:drop-shadow(0 0 6px #facc1599);background:#facc1533}.ql-hint:disabled{opacity:.3;cursor:default}.ql-question{animation:.25s slideIn}.ql-tag{color:var(--ql-muted);margin-bottom:4px;font-size:14px;font-weight:400}.ql-qtext{white-space:pre-line;margin-bottom:24px;font-size:20px;font-weight:400;line-height:1.5}.ql-quote{background:color-mix(in srgb, var(--accent) 8%, transparent);border-left:3px solid var(--accent);border-radius:4px;margin-top:10px;padding:10px 16px;font-size:17px;font-style:normal;font-weight:300;line-height:1.5;display:block}.ql-options{flex-direction:column;gap:12px;display:flex}.ql-option{text-align:left;width:100%;color:var(--text);background:var(--ql-tile);border:1px solid var(--ql-tile-line);cursor:pointer;border-radius:4px;align-items:center;gap:10px;padding:6px 16px;font-size:17px;font-weight:300;line-height:1.4;transition:background .15s,border-color .15s;display:flex}.ql-option:hover:not(:disabled){background:var(--ql-tile-hover);border-color:var(--accent)}.ql-option:disabled{cursor:default}.ql-option-key{flex-shrink:0;min-width:1.4em;font-weight:500}.ql-option-text{flex:1}.ql-option-mark{flex-shrink:0;font-size:20px;display:flex}.ql-option.correct{color:#fff;background:var(--ql-green-deep);border-color:var(--ql-green)}.ql-option.wrong{color:#fff;background:#b91c1c;border-color:#f87171}.ql-option.eliminated{color:var(--ql-muted);border-color:var(--border);opacity:.55;cursor:not-allowed;background:0 0}.ql-option.eliminated .ql-option-text{text-decoration:line-through}.ql-explanation{white-space:pre-line;background:color-mix(in srgb, var(--accent) 12%, transparent);border-left:3px solid var(--accent);border-radius:4px;margin-top:18px;padding:12px 16px;font-size:16px;line-height:1.55;animation:.2s slideIn}.ql-explanation strong{color:var(--accent2)}.ql-explanation-head{margin-bottom:6px;font-size:15px;font-weight:500}.ql-explanation-head.right{color:var(--ql-green)}.ql-explanation-head.wrong{color:var(--ql-red)}.ql-side{background:var(--ql-side);border-radius:24px;flex-direction:column;grid-area:side;gap:16px;min-width:0;padding:18px;display:flex}.ql-status-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ql-status-title{font-size:18px;font-weight:500;line-height:1.2}.ql-timer{text-align:center;font-variant-numeric:tabular-nums;min-width:5.4em;color:var(--on-accent);background:var(--accent);border-radius:8px;padding:2px 14px;font-size:22px;font-weight:500;line-height:1.3}.ql-timer.low{color:#fff;background:var(--ql-red);animation:1s ease-in-out infinite timerPulse}@keyframes timerPulse{50%{opacity:.55}}.ql-map{grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:8px;display:grid}.ql-cell{aspect-ratio:1;min-width:0;color:var(--text);background:var(--ql-cell);cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:400;line-height:1;transition:background .15s,transform .1s;display:flex;position:relative}.ql-cell:hover{background:var(--ql-cell-hover);transform:scale(1.06)}.ql-cell.done{color:var(--ql-ink);background:var(--ql-green)}.ql-cell.wrong{color:#fff;background:var(--ql-red)}.ql-cell.done:hover{background:color-mix(in srgb, var(--ql-green) 82%, #fff)}.ql-cell.wrong:hover{background:color-mix(in srgb, var(--ql-red) 82%, #fff)}.ql-cell-flag{width:18px;height:18px;color:var(--ql-red);box-shadow:0 0 0 2px var(--ql-side);pointer-events:none;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:-5px;right:-5px}.ql-cell.current{box-shadow:0 0 0 2px var(--ql-side), 0 0 0 4px var(--text)}.ql-counts{background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:var(--radius-sm);flex-wrap:wrap;gap:4px 16px;margin-top:auto;padding:10px 14px;font-size:15px;font-weight:400;display:flex}.ql-actions{grid-area:actions;grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ql-btn{white-space:nowrap;color:#fff;cursor:pointer;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:0;padding:4px 8px;font-size:16px;font-weight:400;line-height:1.5;transition:filter .15s,background .15s;display:inline-flex}.ql-btn:hover:not(:disabled){filter:brightness(1.12)}.ql-btn:disabled{opacity:.35;cursor:default}.ql-btn-prev{border-color:var(--ql-green);background:0 0}.ql-btn-prev:hover:not(:disabled){filter:none;background:#22c55e24}.ql-btn-flag{background:var(--ql-red)}.ql-btn-flag[aria-pressed=true]{color:#fca5a5;border-color:var(--ql-red);background:0 0}.ql-btn-next{background:var(--ql-green-deep)}@media (width<=860px){.ql{padding:16px 14px 32px}.ql-panel{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"main""actions""side";gap:32px;min-height:0;padding:14px}.ql-qnum{min-width:40px;height:40px;font-size:20px}.ql-hint{width:34px;height:34px;font-size:22px}.ql-qtext{font-size:16.5px}.ql-option{padding:5px 14px;font-size:15px}.ql-status-title{font-size:16px}.ql-timer{min-width:4.6em;padding:2px 12px;font-size:19px}.ql-map{grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:6px}.ql-cell{font-size:13px}.ql-btn{padding:4px 6px;font-size:15px}}@media (width<=420px){.ql-qhead{gap:10px}.ql-btn{gap:4px;font-size:14px}}
