:root{color-scheme:dark;--bg:#0c1020;--panel:#1a1b32;--text:#eeeaf6;--muted:#b3abc9;--purple:#b49aff;--green:#4de2b3;--line:rgba(180,154,255,.23)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 60% 25%,#201638 0,transparent 65%),linear-gradient(160deg,#0b1020,#111326 60%,#1b1230);color:var(--text);font-family:'Crimson Text',Georgia,serif;min-height:100vh;font-size:18px}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{background:#27243d;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px 15px;cursor:pointer;line-height:1.3}button:hover:not(:disabled){border-color:var(--purple);background:#33294d}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}button.primary{background:linear-gradient(130deg,#8962dd,#6741ba);color:white;font-weight:700;border-color:#ae8ef0}a{color:var(--purple);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0 0 12px}h1{font-size:clamp(32px,4vw,48px);color:#d5c5fb;letter-spacing:-1px}h2{font-size:29px}h3{font-size:21px}p{line-height:1.5}.masthead{max-width:1450px;margin:auto;padding:24px 28px 22px;text-align:center}.masthead nav{display:flex;align-items:center;gap:16px;font-size:14px;margin-bottom:28px;text-align:left}.masthead nav #identity{margin-left:auto;color:var(--muted)}.masthead nav button{font-size:13px}.eyebrow,.mono{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.5px}.eyebrow{color:var(--purple);text-transform:uppercase;letter-spacing:2px}.intro{color:var(--muted);font-size:17px}.muted{color:var(--muted)}.small{font-size:14px}main{max-width:1540px;margin:auto;padding:0 28px 28px}.narrow{max-width:840px;margin:16px auto}.panel{background:rgba(27,28,50,.94);border:1px solid var(--line);border-radius:17px;padding:22px}.section-heading,.game-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.section-heading h2,.section-heading h3{margin:0}.section-heading{margin-bottom:14px}.game-heading{max-width:1450px;margin:0 auto 14px}.game-heading h2{margin-bottom:4px}.game-heading p{margin:0}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.actions button{font-size:15px}label{display:block;font-size:16px;color:var(--muted);margin:12px 0}input:not([type=checkbox]),select{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:#101426;color:var(--text);margin-top:6px}input[type=checkbox]{width:17px;height:17px;accent-color:#ae8aef;flex-shrink:0}#login{max-width:470px}#loginForm .primary{width:100%;margin-top:10px}#notice{position:sticky;top:8px;z-index:10;max-width:900px;margin:10px auto 20px;background:#442836;border:1px solid #f59baf;border-radius:10px;padding:12px 18px;color:#ffe1e7;font-size:16px}#notice button{margin-left:12px;font-size:14px}.game-entry{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:14px}.game-entry h3{margin-bottom:4px}.game-entry p{margin:0}.setup{max-width:1200px;margin:auto}.setup-columns{display:grid;grid-template-columns:1fr 1.8fr;gap:25px;margin:20px 0}.picker{max-height:470px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:12px;background:#12172a}.pick{display:flex;align-items:flex-start;gap:10px;color:var(--text);padding:9px;border-radius:8px;margin:2px 0;font-size:16px}.pick:has(input:checked){background:rgba(180,154,255,.10)}.pick span{flex:1}.pick small{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:10px}.unit{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.unit:last-child{border:0;margin:0}.unit summary{cursor:pointer;font-size:19px;padding:6px}.unit>.pick{font-weight:700;color:var(--purple)}.target-note{border-left:3px solid var(--green);padding:12px 16px;background:#172c32;border-radius:5px;font-size:16px}.visibility{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:18px 0;color:var(--muted)}.visibility button{font-size:13px;padding:7px 11px}.board{display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:18px;align-items:start}.board.no-left{grid-template-columns:minmax(0,1fr) 300px}.board.no-right{grid-template-columns:220px minmax(0,1fr)}.board.no-left.no-right{grid-template-columns:minmax(0,1fr);max-width:1100px;margin:auto}.left-panels,.play-column{display:flex;flex-direction:column;gap:16px;min-width:0}.left-panels .panel{padding:17px}.rankings{position:sticky;top:14px;padding:18px;min-width:0}.rankings h3{font-size:20px}.rankings ol{list-style:none;margin:16px 0;padding:0;max-height:65vh;overflow:auto}.rank-row{border-top:1px solid var(--line);padding:13px 0}.rank-row.mine{background:#2a2547;border-radius:9px;padding:13px 8px}.rank-top{display:flex;gap:9px;align-items:center}.rank-number{color:var(--purple);font-family:'JetBrains Mono',monospace;font-size:13px;min-width:21px}.rank-name{flex:1;overflow-wrap:anywhere;font-size:17px}.rank-pct{color:var(--green);font-family:'JetBrains Mono',monospace;font-size:13px}.rank-sub{font-size:12px;color:var(--muted);margin:6px 0 0 30px}.bar{height:6px;background:#353149;overflow:hidden;border-radius:4px;margin-top:8px}.bar>span{display:block;height:100%;background:linear-gradient(90deg,#9c7ce7,#4de2b3);border-radius:4px}.live-dot{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 10px #4de2b350}.progress-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.progress-label{display:flex;align-items:center;justify-content:space-between;font-size:18px}.progress-label strong{color:var(--green);font-family:'JetBrains Mono',monospace;font-size:20px}.progress-grid .plus strong{color:#f8d077}.plus .bar>span{background:linear-gradient(90deg,#c29955,#f6d177)}.metrics{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:18px;padding-top:13px;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted)}.metrics b{color:var(--text)}.question-area{min-height:330px;padding:28px}.question-topic{font-size:10px;font-family:'JetBrains Mono',monospace;color:var(--purple);letter-spacing:.5px;text-transform:uppercase;margin-bottom:16px}.question-text{font-size:23px;font-weight:600;line-height:1.45;margin-bottom:24px;white-space:pre-wrap;overflow-wrap:anywhere}.options{display:flex;flex-direction:column;gap:10px}.option{display:flex;gap:14px;align-items:flex-start;text-align:left;width:100%;padding:13px 15px;background:rgba(255,255,255,.025);font-size:18px}.option .letter{color:var(--purple);font:600 12px 'JetBrains Mono',monospace;background:#302944;border-radius:7px;padding:6px 8px}.option.selected{border-color:var(--purple);background:#302544}.option.correct{border-color:var(--green);background:#173931}.option.wrong{border-color:#ff929e;background:#422832}.option:disabled{opacity:1;cursor:default}.feedback{margin-top:22px;border-left:3px solid var(--green);background:#152c2c;padding:15px 17px;border-radius:5px}.feedback.wrong{border-color:#ffa0ae;background:#322632}.feedback p{font-size:17px;margin:7px 0 0}.question-actions{display:flex;justify-content:flex-end;margin-top:22px;gap:12px}.reducer-row,.run-row{border-top:1px solid var(--line);padding:12px 0}.reducer-row:last-child,.run-row:last-child{padding-bottom:0}.reducer-row .value{float:right;color:var(--green);font-family:'JetBrains Mono',monospace;font-size:15px}.run-row strong{color:var(--purple);font-size:15px}.run-row p{margin:3px 0 0;font-size:13px;color:var(--muted)}.targets{font-size:16px}.targets summary{cursor:pointer;font-weight:600;color:var(--purple)}.targets #targets{margin-top:14px}.targets ul{padding-left:20px;line-height:1.6}.waiting{padding:30px 4px;text-align:center}.waiting .symbol{font-size:36px;color:var(--purple);margin-bottom:15px}.waiting h3{font-size:25px}.teacher-board .play-column{grid-column:1}.teacher-board{grid-template-columns:minmax(0,1fr) 420px!important;max-width:1200px;margin:auto}footer{font-size:14px;color:var(--muted);text-align:center;padding:25px 20px 35px}[hidden]{display:none!important}
.in-game .masthead{padding-top:16px;padding-bottom:12px}.in-game .masthead nav{margin-bottom:14px}.in-game .masthead h1{font-size:30px;margin-bottom:4px}.in-game .masthead>.eyebrow,.in-game .masthead .intro{display:none}.in-game .game-heading{margin-bottom:10px}.in-game .visibility{margin:12px 0}.in-game #teacherControls:empty{display:none}
@media(min-width:1200px){.board:not(.no-left):not(.no-right) .question-text{font-size:22px}}
@media(max-width:1150px){main{padding:0 18px 20px}.board{grid-template-columns:180px minmax(0,1fr) 255px;gap:12px}.board.no-left{grid-template-columns:minmax(0,1fr) 255px}.board.no-right{grid-template-columns:180px minmax(0,1fr)}.question-area{padding:20px}.rankings{padding:14px}.rank-name{font-size:15px}}
@media(max-width:950px){.board,.board.no-left,.board.no-right,.teacher-board{display:flex;flex-direction:column;max-width:780px!important;margin:auto}.play-column{order:0;width:100%}.rankings{position:static;order:1;width:100%}.left-panels{order:2;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.left-panels:has(>[hidden]){grid-template-columns:1fr}.rankings ol{max-height:440px}.setup-columns{grid-template-columns:1fr 1.4fr}.visibility>span{width:100%;text-align:center}.masthead{padding:20px 18px 10px}}
@media(max-width:600px){main{padding:0 12px 20px}.masthead nav{gap:8px;flex-wrap:wrap;margin-bottom:24px}.masthead nav #identity{font-size:12px}.masthead nav button{padding:6px 8px}.intro{font-size:16px}.panel{padding:18px;border-radius:14px}.setup-columns{grid-template-columns:1fr;gap:20px}.picker{max-height:340px}.section-heading h2{font-size:24px}.section-heading button{font-size:14px}.game-entry{align-items:flex-start;flex-wrap:wrap}.game-heading h2{font-size:24px}.game-heading>button{font-size:13px}.visibility{gap:6px}.visibility button{padding:7px 8px;font-size:12px}.question-text{font-size:21px}.option{font-size:17px;padding:12px 11px;gap:10px}.question-area{padding:20px 16px}.progress-label{font-size:16px}.progress-label strong{font-size:17px}.progress-grid{gap:14px}.left-panels{grid-template-columns:1fr}.metrics{gap:11px}#notice{margin:8px 12px 16px}.game-heading{gap:10px}.target-note{font-size:15px}}

.question-content{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;min-width:0;overflow-x:auto}.question-content img,.question-content svg{display:block;max-width:100%;height:auto;margin:14px auto;background:#fff;border-radius:8px}.question-content table{border-collapse:collapse;width:auto;max-width:100%;white-space:normal;margin:14px 0;border:1px solid var(--line);font-size:16px}.question-content th,.question-content td{padding:8px;border:1px solid var(--line)}.option .question-content{flex:1;text-align:left}.feedback .question-content{margin-top:7px;font-size:17px}
.mastery-lock-notice{border:1px solid var(--line);background:#1b2732;padding:10px 14px;border-radius:10px;max-width:1450px;margin:12px auto;font-size:14px;color:#cde5dd}.mastery-lock-shield{position:fixed;inset:0;z-index:1000;background:rgba(8,11,24,.96);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.mastery-lock-dialog{width:min(100%,630px);max-height:calc(100dvh - 48px);overflow:auto;padding:30px;box-shadow:0 24px 90px #0008}.mastery-lock-dialog h2{font-size:30px}.mastery-lock-dialog .primary{margin-top:8px}.mastery-lock-leave{margin:8px 0 0 10px}.mastery-leave-confirm{z-index:1100}.mastery-lock-blocked{overflow:hidden}#masteryLockError{color:#ffd6df;background:#422832;border-radius:8px;padding:10px 13px;margin:12px 0;font-size:16px}.recent-indicators{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.recent-indicator{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:9px;padding:10px;min-width:0;font-family:'JetBrains Mono',monospace}.recent-indicator span{font-size:11px;color:var(--muted)}.recent-indicator strong{font-size:18px;color:var(--green)}.recent-indicator small{font-size:9px;color:var(--muted)}.recent-note{margin:10px 0 0}.mastery-lock-shield button{white-space:normal}@media(max-width:600px){.mastery-lock-shield{padding:14px}.mastery-lock-dialog{padding:22px;max-height:calc(100dvh - 28px)}.mastery-lock-dialog h2{font-size:26px}.mastery-lock-dialog p{font-size:16px}.recent-indicator{padding:8px}.recent-indicator strong{font-size:16px}}
