@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque.woff2) format("woff2");font-weight:600 800;font-display:swap}@font-face{font-family:Figtree;src:url(/fonts/Figtree.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono.woff2) format("woff2");font-weight:400 700;font-display:swap}:root{--qp-canvas: #100f14;--qp-sunken: #17161d;--qp-card: #1f1d27;--qp-tile: #2a2833;--qp-raised: #3a3746;--qp-line: rgba(255, 255, 255, .07);--qp-rose: #c5837f;--qp-rose-lift: #e0a9a5;--qp-rose-deep: #9e6462;--qp-blue: #5a5fa0;--qp-blue-lift: #8388c4;--qp-blue-deep: #3f4478;--qp-correct: #67c99a;--qp-wrong: #d9646e;--qp-streak: #e5b15c;--qp-text: #f2eff5;--qp-text-2: #b4aec0;--qp-text-3: #9f98ad;--qp-text-4: #7b7589;--qp-font-display: "Bricolage Grotesque", system-ui, sans-serif;--qp-font-ui: "Figtree", system-ui, -apple-system, sans-serif;--qp-font-mono: "JetBrains Mono", ui-monospace, monospace;--qp-1: 4px;--qp-2: 8px;--qp-3: 12px;--qp-4: 16px;--qp-5: 24px;--qp-6: 40px;--qp-7: 64px;--qp-r-chip: 6px;--qp-r-input: 10px;--qp-r-btn: 14px;--qp-r-tile: 18px;--qp-r-card: 22px;--qp-r-full: 999px;--qp-press: .12s ease-out;--qp-move: .22s cubic-bezier(.2, .8, .2, 1);--qp-reward: .42s cubic-bezier(.34, 1.56, .64, 1);--qp-overlay: 0 18px 40px -12px rgba(0, 0, 0, .75);--qp-glow-rose: 0 0 0 4px rgba(197, 131, 127, .09);--qp-glow-blue: 0 0 0 4px rgba(90, 95, 160, .14);--bg-primary: var(--qp-canvas);--bg-secondary: var(--qp-card);--bg-tertiary: var(--qp-tile);--bg-hover: var(--qp-raised);--text-primary: var(--qp-text);--text-secondary: var(--qp-text-2);--text-muted: var(--qp-text-3);--brand-rose: var(--qp-rose);--brand-slate: var(--qp-blue-lift);--border-color: var(--qp-raised);--border-focus: var(--qp-blue-lift);--color-primary: var(--qp-blue);--color-primary-hover: var(--qp-blue-deep);--color-primary-light: var(--qp-blue-lift);--color-success: var(--qp-correct);--color-success-hover: #4fb184;--color-success-light: var(--qp-correct);--color-danger: var(--qp-wrong);--color-danger-hover: #c2505a;--color-warning: var(--qp-streak);--color-info: var(--qp-blue-lift);--spacing-xs: var(--qp-1);--spacing-sm: var(--qp-2);--spacing-md: var(--qp-3);--spacing-lg: var(--qp-4);--spacing-xl: var(--qp-5);--radius-sm: var(--qp-r-input);--radius-md: var(--qp-r-btn);--radius-lg: var(--qp-r-card);--radius-circle: 50%}*{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--qp-font-ui);font-size:16px;line-height:1.55;background-color:var(--qp-canvas);color:var(--qp-text);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--qp-blue-lift);outline-offset:2px;box-shadow:var(--qp-glow-blue)}::selection{background-color:#e0a9a5;color:#100f14}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.12s!important;scroll-behavior:auto!important}}h1,h2,h3,h4,h5,h6{margin-top:0;color:var(--qp-text);font-family:var(--qp-font-display);font-weight:700;letter-spacing:-.025em;line-height:1.05;text-wrap:balance}h1{font-size:clamp(30px,7vw,36px);font-weight:800;letter-spacing:-.035em;margin-bottom:var(--qp-4)}h2{font-size:26px;margin-bottom:var(--qp-3)}h3{font-size:22px;margin-bottom:var(--qp-3)}h4{font-size:18px;margin-bottom:var(--qp-2)}p{margin-top:0}.qp-display-xl{font-family:var(--qp-font-display);font-size:clamp(40px,12vw,54px);font-weight:800;letter-spacing:-.035em;line-height:.94}.qp-eyebrow,.qp-label{font-family:var(--qp-font-ui);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--qp-text-4)}.qp-question{font-family:var(--qp-font-ui);font-size:clamp(22px,5.5vw,26px);font-weight:600;line-height:1.3;text-wrap:pretty}.qp-dense{font-size:15px;line-height:1.6}.qp-mono{font-family:var(--qp-font-mono);font-variant-numeric:tabular-nums}.qp-code{font-family:var(--qp-font-mono);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--qp-rose-lift)}button,.qp-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--qp-2);min-height:48px;padding:var(--qp-3) var(--qp-5);border:none;border-radius:var(--qp-r-btn);font-family:var(--qp-font-ui);font-size:16px;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;transition:background-color var(--qp-press),border-color var(--qp-press),color var(--qp-press),transform var(--qp-press)}@media(hover:hover){button:hover:not(:disabled),.qp-btn:hover{transform:translateY(-1px)}}button:active:not(:disabled),.qp-btn:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-player,.join-session-btn{background-color:var(--qp-rose);color:#17141a}.btn-player:hover:not(:disabled),.join-session-btn:hover:not(:disabled){background-color:var(--qp-rose-lift)}.btn-player:focus-visible,.join-session-btn:focus-visible{outline-color:var(--qp-rose-lift);box-shadow:var(--qp-glow-rose)}.primary-btn,.select-btn,.add-btn,.add-round-btn,.upload-btn,.success-btn,.create-btn,.save-btn,.create-round-btn,.restore-btn{background-color:var(--qp-blue);color:var(--qp-text)}.primary-btn:hover:not(:disabled),.select-btn:hover:not(:disabled),.add-btn:hover:not(:disabled),.add-round-btn:hover:not(:disabled),.upload-btn:hover:not(:disabled),.success-btn:hover:not(:disabled),.create-btn:hover:not(:disabled),.save-btn:hover:not(:disabled),.create-round-btn:hover:not(:disabled),.restore-btn:hover:not(:disabled){background-color:var(--qp-blue-lift)}.secondary-btn,.back-btn,.clear-display-btn,.score-btn{background-color:var(--qp-tile);color:var(--qp-text);box-shadow:inset 0 0 0 1px var(--qp-line)}.secondary-btn:hover:not(:disabled),.back-btn:hover:not(:disabled),.clear-display-btn:hover:not(:disabled),.score-btn:hover:not(:disabled){background-color:var(--qp-raised)}.logout-btn,.qp-ghost{background:none;color:var(--qp-text-2);box-shadow:inset 0 0 0 1px var(--qp-line)}.logout-btn:hover:not(:disabled),.qp-ghost:hover:not(:disabled){background-color:var(--qp-tile);color:var(--qp-text)}.danger-btn,.danger-btn-large,.clear-btn,.reset-btn{background:none;color:var(--qp-wrong);box-shadow:inset 0 0 0 2px var(--qp-wrong)}.danger-btn:hover:not(:disabled),.danger-btn-large:hover:not(:disabled),.clear-btn:hover:not(:disabled),.reset-btn:hover:not(:disabled){background-color:var(--qp-wrong);color:#17141a}.danger-btn-large{min-height:56px;font-size:17px}.display-btn{background-color:var(--qp-blue);color:var(--qp-text)}.display-btn:hover:not(:disabled){background-color:var(--qp-blue-lift)}.display-active-btn,.warning-btn{background-color:#e5b15c29;color:var(--qp-streak);box-shadow:inset 0 0 0 2px var(--qp-streak)}.display-active-btn:hover:not(:disabled),.warning-btn:hover:not(:disabled){background-color:#e5b15c42}.edit-btn-small,.delete-btn-small{min-height:44px;padding:var(--qp-1) var(--qp-3);font-size:14px;font-weight:600;background-color:var(--qp-tile);color:var(--qp-text-2);border-radius:var(--qp-r-chip);box-shadow:inset 0 0 0 1px var(--qp-line);touch-action:manipulation}.edit-btn-small:hover:not(:disabled){background-color:var(--qp-raised);color:var(--qp-text)}.delete-btn-small{color:var(--qp-text-3)}.delete-btn-small:hover:not(:disabled){background-color:var(--qp-raised);color:var(--qp-wrong);box-shadow:inset 0 0 0 1px var(--qp-wrong)}label:not([class]){display:block;margin:var(--qp-4) 0 var(--qp-2);font-family:var(--qp-font-ui);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--qp-text-4)}input[type=text],input[type=date],input[type=url],input[type=email],input[type=password],input[type=number],textarea,select{width:100%;min-height:48px;padding:var(--qp-3) var(--qp-4);background-color:var(--qp-sunken);color:var(--qp-text);border:1px solid var(--qp-raised);border-radius:var(--qp-r-input);font-family:var(--qp-font-ui);font-size:16px;transition:border-color var(--qp-press),box-shadow var(--qp-press)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--qp-blue-lift);box-shadow:var(--qp-glow-blue)}input::placeholder,textarea::placeholder{color:var(--qp-text-4)}input[type=file]{display:none}.file-label{display:inline-block;cursor:pointer}.file-label input[disabled]+.file-button{background-color:var(--qp-tile);cursor:not-allowed}.file-name{margin-left:var(--qp-3);color:var(--qp-text-2);font-size:14px}.container{padding:var(--qp-5) var(--qp-4);max-width:1200px;margin:0 auto}@media(min-width:48rem){.container{padding:var(--qp-6) var(--qp-7)}}.card,.qp-card{background-color:var(--qp-card);border:1px solid var(--qp-line);border-radius:var(--qp-r-card);padding:var(--qp-4)}@media(min-width:48rem){.card,.qp-card{padding:var(--qp-5)}}.qp-card--raised{background-color:var(--qp-tile);box-shadow:inset 0 1px #ffffff0d}.form-container{background-color:var(--qp-sunken);border:1px solid var(--qp-line);border-radius:var(--qp-r-tile);padding:var(--qp-4);margin-bottom:var(--qp-4)}.qp-tile{display:flex;flex-direction:column;justify-content:center;gap:var(--qp-1);width:100%;min-height:56px;padding:var(--qp-3) var(--qp-4);background-color:var(--qp-tile);color:var(--qp-text);border:2px solid var(--qp-raised);border-radius:var(--qp-r-tile);font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:border-color var(--qp-press),background-color var(--qp-press),transform var(--qp-press)}.qp-tile:hover{border-color:var(--qp-blue-lift)}.qp-tile:active{transform:scale(.97);background-color:var(--qp-sunken)}.qp-tile[aria-pressed=true],.qp-tile.is-selected{border-color:var(--qp-rose);background-color:#c5837f1f}.qp-tile.is-correct{border-color:var(--qp-correct);background-color:#67c99a24}.qp-tile.is-wrong{border-color:var(--qp-wrong);background-color:#d9646e24}.qp-tile-stack>*:nth-child(4n+1){transform:rotate(-.6deg)}.qp-tile-stack>*:nth-child(4n+2){transform:rotate(.4deg)}.qp-tile-stack>*:nth-child(4n+3){transform:rotate(-.3deg)}.qp-tile-stack>*:nth-child(4n+4){transform:rotate(.7deg)}.qp-tile-stack>*:hover,.qp-tile-stack>.is-selected{transform:rotate(0)}@media(prefers-reduced-motion:reduce){.qp-tile-stack>*{transform:none}}@keyframes qp-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes qp-pop{0%{transform:scale(1)}60%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes qp-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.qp-enter{animation:qp-rise var(--qp-move) both}.qp-stagger>*:nth-child(1){animation-delay:0ms}.qp-stagger>*:nth-child(2){animation-delay:40ms}.qp-stagger>*:nth-child(3){animation-delay:80ms}.qp-stagger>*:nth-child(4){animation-delay:.12s}.qp-stagger>*:nth-child(5){animation-delay:.16s}.qp-stagger>*:nth-child(n+6){animation-delay:.2s}.qp-reward{animation:qp-pop var(--qp-reward) both}.qp-idle{animation:qp-bob 2.4s ease-in-out infinite}ul{list-style:none;padding:0;margin:0}.list-item{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;border:2px solid transparent}.list-item:hover{border-color:var(--brand-slate);transform:translate(5px)}.list-item.active{border-color:var(--qp-blue);background-color:#5a5fa024}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.badge-primary{background-color:var(--color-primary);color:#fff}.badge-success{background-color:var(--color-success);color:#fff}.badge-info{background-color:var(--color-info);color:#fff}.error-message{padding:var(--qp-3);background-color:#d9646e1f;color:var(--qp-wrong);border:1px solid rgba(217,100,110,.35);border-radius:var(--qp-r-input);font-size:15px;margin-top:var(--qp-3)}.success-message{padding:var(--qp-3);background-color:#67c99a1f;color:var(--qp-correct);border:1px solid rgba(103,201,154,.35);border-radius:var(--qp-r-input);font-size:15px;margin-top:var(--qp-3)}.info-message{padding:var(--qp-3);background-color:#5a5fa024;color:var(--qp-blue-lift);border:1px solid rgba(90,95,160,.4);border-radius:var(--qp-r-input);font-size:15px;margin-top:var(--qp-3)}.no-content{color:var(--qp-text-3);padding:var(--qp-5) var(--qp-4);background-color:var(--qp-sunken);border:1px dashed var(--qp-raised);border-radius:var(--qp-r-tile)}img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.image-thumbnail{border:2px solid var(--border-color);transition:border-color .2s}.image-thumbnail:hover{border-color:var(--brand-slate)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.lobby-container{display:flex;min-height:100dvh;gap:40px;padding:40px}.left-section{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:400px}.right-section{flex:1;border-left:2px solid var(--border-color);padding-left:40px}@media(max-width:700px){.lobby-container{flex-direction:column;gap:var(--qp-5);padding:var(--qp-5) var(--qp-4)}.left-section{max-width:none}.right-section{border-left:none;border-top:2px solid var(--border-color);padding-left:0;padding-top:var(--qp-5)}}.waiting-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center}.player-status,.player-logged-in-status{margin-top:30px;padding:20px;background-color:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--color-primary)}.results-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 4px #0003}.results-table thead{background:var(--color-primary);color:#fff}.results-table th{padding:12px;text-align:left;font-weight:600}.results-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .2s}.results-table tbody tr:hover{background-color:var(--bg-hover)}.results-table tbody tr:last-child{border-bottom:none}.results-table td{padding:12px}.results-table .rank{font-weight:700;color:var(--color-primary);width:60px;text-align:center}.results-table .player-name{font-weight:500;color:var(--text-primary)}.results-table .marked-by{color:var(--text-secondary);font-style:italic}.results-table .score{font-family:monospace;color:var(--text-secondary)}.results-table .percentage{font-weight:700;color:var(--color-success)}.questions-grid,.image-grid{display:grid;gap:25px;margin-top:20px}.image-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.remove-player-btn{background:none;color:var(--qp-wrong);box-shadow:inset 0 0 0 2px var(--qp-wrong)}.remove-player-btn:hover:not(:disabled){background-color:var(--qp-wrong);color:#17141a}.round-manager,.question-manager,.player-management,.marking-controls,.bottom-controls{margin-top:30px;padding:25px;background-color:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--border-color)}.round-manager{border-color:var(--color-success)}.round-manager h3{color:var(--color-success)}.question-manager{border-color:var(--color-primary)}.question-manager h3{color:var(--color-primary)}.marking-controls,.bottom-controls{border-left:3px solid var(--qp-blue)}.marking-controls h3,.bottom-controls h3{margin-top:0;color:var(--qp-text)}.quiz-form,.round-form,.question-form{background-color:var(--bg-tertiary);padding:20px;border-radius:var(--radius-md);margin-bottom:20px}.round-type-badge{display:inline-block;padding:5px 15px;background-color:#5a5fa033;color:var(--qp-blue-lift);border-radius:20px;font-size:14px;margin-bottom:20px}.round-type{display:inline-block;padding:4px 12px;background-color:var(--color-primary);color:#fff;border-radius:12px;font-size:12px;text-transform:capitalize}.data-table{width:100%;border-collapse:collapse;margin:var(--spacing-md) 0}.data-table tbody tr{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);transition:background-color .2s ease;cursor:pointer}.data-table tbody tr.odd{background-color:var(--bg-tertiary)}.data-table tbody tr:hover{background-color:var(--bg-hover)}.data-table tbody tr.active{background-color:#8a92e029;border-left:3px solid var(--brand-slate)}.data-table tbody tr.is-displayed{background-color:#e5b15c29;border-left:3px solid var(--qp-streak)}.data-table td{padding:var(--spacing-md);vertical-align:middle}.data-table .player-name{font-size:16px;color:var(--text-primary);font-weight:500}.data-table .round-info-cell{font-size:16px;color:var(--text-primary)}.data-table .round-info-cell strong{display:block;margin-bottom:4px}.data-table .round-info-cell .round-type{margin-left:8px;font-size:11px}.qp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
