:root{--bg:#f7f5f0;--surface:#fff;--surface-2:#f1eee7;--border:#e4dfd4;--text:#1f1b2e;--muted:#6b6578;--primary:#4338ca;--primary-hover:#3730a3;--primary-soft:#eef0ff;--danger:#dc2626;--success:#15803d;--warn:#b45309;--radius:14px;--shadow:0 1px 2px #1f1b2e0f, 0 4px 16px #1f1b2e0f;--jp-blue:#0b1d9c;--jp-blue-deep:#060f5e;--jp-blue-light:#1730c9;--jp-gold:#fbbf24;--jp-gold-deep:#f59e0b;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.9rem;font-weight:900}h2{font-size:1.25rem;font-weight:800}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code{background:var(--surface-2);border-radius:6px;padding:.1em .4em;font-size:.9em}kbd{opacity:.75;vertical-align:middle;border:1px solid;border-radius:6px;padding:.1em .5em;font-family:inherit;font-size:.7em;font-weight:800;display:inline-block}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.875rem}.stack{gap:1rem;display:grid}.stack-lg{gap:1.5rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.center{justify-content:center}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.grid-3{grid-template-columns:1fr 2fr 1.5fr;gap:1rem;display:grid}@media (width<=760px){.grid-3{grid-template-columns:1fr}}.btn{min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.15rem;font-size:.95rem;font-weight:800;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex;text-decoration:none!important}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--primary-soft);color:var(--primary)}.btn-secondary:hover:not(:disabled){border-color:var(--primary)}.btn-ghost{color:var(--text);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:#fef2f2}.btn-sm{min-height:36px;padding:.35rem .85rem;font-size:.85rem}.btn-xl{min-height:60px;padding:.8rem 2rem;font-size:1.25rem}.btn-block{width:100%}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.4rem;line-height:1;display:grid}.icon-btn:hover{color:var(--danger);background:#fef2f2}.icon-btn-sm{width:28px;height:28px;margin-left:auto;font-size:1.15rem}.field{gap:.35rem;font-size:.9rem;font-weight:700;display:grid}.field em{font-style:normal;font-weight:400}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:10px;width:100%;min-height:44px;padding:.6rem .75rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:0}input:focus,textarea:focus,select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4338ca26}input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.9rem;font-weight:700}.toggle{cursor:pointer;align-items:flex-start;gap:.75rem;display:flex}.toggle input{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex-shrink:0;margin-top:1px}.alert{border-radius:10px;padding:.85rem 1rem;font-size:.95rem}.alert ul{margin:.5rem 0 0;padding-left:1.25rem}.alert-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:800;display:inline-block}.home{background:radial-gradient(1200px 600px at 10% -10%, #e0e7ff 0%, transparent 60%), radial-gradient(900px 500px at 110% 110%, #fef3c7 0%, transparent 60%), var(--bg);place-content:center;justify-items:center;gap:1.5rem;min-height:100dvh;padding:1.5rem;display:grid}.home-card{background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow);text-align:center;border-radius:24px;gap:1rem;padding:2.5rem 2rem;display:grid}.login-card{text-align:left}.login-card h1,.login-card .muted,.login-card .home-mark{text-align:center;justify-self:center}.home-mark{width:64px;height:64px;color:var(--jp-gold);background:#1e1b4b;border-radius:18px;justify-self:center;place-items:center;font-size:2rem;font-weight:900;display:grid}.code-form{gap:1rem;margin-top:.5rem;display:grid}.code-input{text-align:center;letter-spacing:.3em;text-transform:uppercase;font-variant-numeric:tabular-nums;border-radius:16px;padding:.6rem .5rem .6rem .8rem;font-size:2.4rem;font-weight:900}.code-input::placeholder{color:#d6d1c6}.home-teacher-link{font-weight:800}.center-link{justify-self:center}.page-loading{min-height:60vh}.topbar{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#f7f5f0d9;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:.6rem;font-size:1.1rem;font-weight:900;display:flex}.brand-mark{width:34px;height:34px;color:var(--jp-gold);background:#1e1b4b;border-radius:10px;place-items:center;display:grid}.topbar-actions{gap:.5rem;display:flex}.topbar-actions .btn{border-color:#0000}.teacher-main{max-width:1200px;margin:0 auto;padding:2rem clamp(1rem,4vw,2.5rem) 6rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head h1{margin-top:.25rem}.page-head p{margin-top:.35rem}.section-head{justify-content:space-between;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.search{border:2px solid var(--border);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%236b6578' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 1rem center;width:100%;min-height:56px;box-shadow:var(--shadow);border-radius:14px;padding:.75rem 1rem .75rem 3.1rem;font-size:1.1rem;font-weight:600}.search::placeholder{font-weight:500}.search:focus{border-color:var(--primary);box-shadow:0 0 0 4px #4338ca26, var(--shadow)}.skeleton-list{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface) 50%, var(--surface-2) 75%);background-size:200% 100%;height:240px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.empty{text-align:center;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);justify-items:center;gap:.75rem;padding:3rem 1rem;display:grid}.empty-emoji{font-size:3rem}.game-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.game-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:auto 1fr auto auto;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:box-shadow .15s;display:grid}.game-row:hover{box-shadow:var(--shadow)}.game-row-icon{font-size:1.75rem}.game-row-title{color:var(--text);font-size:1.1rem;font-weight:800}.game-row-code{letter-spacing:.15em;background:var(--primary-soft);color:var(--primary);font-variant-numeric:tabular-nums;border-radius:10px;padding:.3rem .8rem;font-size:1.35rem;font-weight:900}.game-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}@media (width<=860px){.game-row{grid-template-columns:auto 1fr auto}.game-row-actions{grid-column:1/-1;justify-content:flex-start}}.picker{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.picker-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);align-content:start;gap:.5rem;padding:1.5rem;transition:border-color .15s,transform .15s,box-shadow .15s;display:grid;text-decoration:none!important}a.picker-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.picker-emoji{font-size:2.5rem}.picker-cta{color:var(--primary);margin-top:.5rem;font-weight:800}.picker-card .badge{justify-self:start;margin-top:.5rem}.code-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.6rem;padding:.4rem .4rem .4rem 1rem;display:flex}.code-chip strong{letter-spacing:.15em;color:var(--primary);font-size:1.3rem}.pace{border-radius:10px;align-content:center;gap:.2rem;padding:.75rem 1rem;font-size:.9rem;display:grid}.pace-ok{color:var(--success);background:#f0fdf4}.pace-over{color:var(--warn);background:#fffbeb}.pace-under{background:var(--primary-soft);color:var(--primary)}.dropzone{border-radius:var(--radius);background:#fbfaff;border:2px dashed #c7c0ef;gap:1.25rem;padding:1.5rem;transition:background .15s,border-color .15s;display:flex}.dropzone-active{background:var(--primary-soft);border-color:var(--primary)}.dropzone-icon{font-size:2.5rem}.dropzone-body{flex:1;gap:.75rem;display:grid}.category-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:1rem;display:grid}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.category-head{background:var(--jp-blue);align-items:center;gap:.25rem;padding:.6rem;display:flex}.category-name{color:#fff;text-transform:uppercase;letter-spacing:.03em;background:0 0;border-color:#0000;font-weight:900}.category-name::placeholder{color:#ffffff80}.category-name:focus{border-color:var(--jp-gold);box-shadow:none;background:#ffffff1a}.category-head .icon-btn{color:#ffffffb3}.clue-list{gap:.75rem;margin:0;padding:.75rem;list-style:none;display:grid}.clue-edit{background:var(--surface-2);border-radius:10px;gap:.4rem;padding:.6rem;display:grid}.clue-edit-top{align-items:center;gap:.4rem;display:flex}.points-input{width:90px;min-height:34px;color:var(--jp-gold-deep);padding:.3rem .5rem;font-weight:800}.clue-edit textarea,.clue-edit input:not(.points-input){min-height:38px;font-size:.95rem}.category-card>.btn{border:none;border-top:1px solid var(--border);border-radius:0}.save-bar{background:var(--surface);border:1px solid var(--border);border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .75rem .75rem 1.25rem;display:flex;position:sticky;bottom:1rem;box-shadow:0 8px 30px #1f1b2e1f}.dialog{text-align:center;border:none;border-radius:24px;width:min(440px,100vw - 2rem);padding:2rem;box-shadow:0 20px 60px #00000040}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f1b2e80}.dialog>*+*{margin-top:1rem}.dialog-emoji{font-size:3rem}.big-code{letter-spacing:.25em;background:var(--primary-soft);color:var(--primary);border-radius:16px;padding:.5rem 0 .5rem .25em;font-size:3rem;font-weight:900}.jp{background:radial-gradient(ellipse at top, #13238f, var(--jp-blue-deep) 70%);color:#fff;grid-template-rows:auto 1fr auto;gap:1vh;height:100dvh;min-height:100dvh;padding:1.2vh 1.2vw;display:grid;overflow:hidden}.jp-loading{background:var(--jp-blue-deep);place-items:center;min-height:100dvh;display:grid}.spinner{border:6px solid #fff3;border-top-color:var(--jp-gold);border-radius:50%;width:56px;height:56px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.jp-header{align-items:center;gap:1.5vw;display:flex}.jp-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:clamp(1rem,2.2vw,2.2rem);font-weight:900;overflow:hidden}.jp-clock{font-variant-numeric:tabular-nums;background:#ffffff1a;border-radius:999px;padding:.2em .7em;font-size:clamp(.9rem,1.6vw,1.6rem);font-weight:800}.jp-clock-of{opacity:.55}.jp-clock-warn{background:#f59e0b4d}.jp-clock-over{background:#dc262673}.jp-header-actions{gap:.5vw;display:flex}.jp-btn{font:inherit;color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1.5px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;gap:.5em;min-height:40px;padding:.5em 1em;font-size:clamp(.8rem,1vw,1.1rem);font-weight:800;transition:background .15s;display:inline-flex;text-decoration:none!important}.jp-btn:hover:not(:disabled){background:#ffffff2e}.jp-btn:disabled{opacity:.4;cursor:not-allowed}.jp-btn:focus-visible{outline-color:var(--jp-gold)}.jp-btn-gold{background:var(--jp-gold);border-color:var(--jp-gold);color:#1a1446}.jp-btn-gold:hover:not(:disabled){background:#fcd34d}.jp-btn-lg{padding:.6em 1.6em;font-size:clamp(1rem,1.8vw,1.8rem)}.jp-board{grid-auto-rows:1fr;gap:.6vw;min-height:0;display:grid;position:relative}.jp-category,.jp-cell{text-align:center;background:linear-gradient(180deg, var(--jp-blue-light), var(--jp-blue));border-radius:.6vw;place-items:center;min-height:0;display:grid;box-shadow:inset 0 0 0 2px #00000040,0 .3vh #00000059}.jp-category{text-transform:uppercase;letter-spacing:.02em;text-shadow:.1vw .1vw #000;overflow-wrap:anywhere;padding:.5vh .6vw;font-size:clamp(.85rem,1.7vw,2.1rem);font-weight:900;line-height:1.1}.jp-cell{color:var(--jp-gold);text-shadow:.2vw .2vw #000;cursor:pointer;border:none;font-family:Anton,Impact,sans-serif;font-size:clamp(1.5rem,4.5vw,6rem);transition:transform .12s,filter .12s}.jp-cell:hover:not(:disabled),.jp-cell:focus-visible{filter:brightness(1.2);z-index:1;transform:scale(1.04)}.jp-cell:focus-visible{outline:.3vw solid var(--jp-gold)}.jp-cell-used{cursor:default;background:#060f5eb3;box-shadow:inset 0 0 0 2px #ffffff0d}.jp-cell-empty{box-shadow:none;background:0 0}.jp-board-done{text-align:center;background:#060f5ed9;border-radius:1vw;place-items:center;animation:.4s fade-in;display:grid;position:absolute;inset:0}.jp-board-done h2{margin-bottom:3vh;font-size:clamp(1.5rem,3.5vw,4rem)}.jp-scores{gap:.8vw;display:grid}.jp-score{border-top:.5vh solid var(--team);background:#0000004d;border-radius:.8vw;grid-template-columns:1fr auto;align-items:center;gap:0 1vw;padding:.8vh 1.2vw;display:grid;position:relative}.jp-score-name{color:var(--team);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.9rem,1.6vw,2rem);font-weight:800;overflow:hidden}.jp-score-value{font-variant-numeric:tabular-nums;grid-row:span 2;font-family:Anton,Impact,sans-serif;font-size:clamp(1.4rem,3.2vw,4rem);line-height:1.1}.jp-score-value.negative{color:#fca5a5}.jp-score-adjust{opacity:.35;gap:.3vw;transition:opacity .15s;display:flex}.jp-score:hover .jp-score-adjust,.jp-score-adjust:focus-within{opacity:1}.jp-score-adjust button{font:inherit;color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:999px;padding:.15em .6em;font-size:clamp(.7rem,.8vw,.95rem);font-weight:800}.jp-score-adjust button:hover{background:#ffffff26}.jp-overlay{z-index:50;background:radial-gradient(ellipse at center, var(--jp-blue-light), var(--jp-blue-deep) 80%);grid-template-rows:auto 1fr auto;padding:3vh 4vw;animation:.25s cubic-bezier(.2,.8,.3,1.1) zoom-in;display:grid;position:fixed;inset:0}@keyframes zoom-in{0%{opacity:0;transform:scale(.3)}}@keyframes fade-in{0%{opacity:0}}.jp-overlay-top{text-transform:uppercase;justify-content:space-between;align-items:center;font-size:clamp(1rem,2.2vw,2.6rem);font-weight:900;display:flex}.jp-overlay-points{color:var(--jp-gold);font-family:Anton,Impact,sans-serif;font-size:1.4em}.jp-overlay-body{text-align:center;align-content:center;justify-items:center;gap:4vh;min-height:0;display:grid}.jp-question{text-shadow:.15vw .15vw #000;text-wrap:balance;max-width:85vw;font-weight:800;line-height:1.2}.jp-answer{color:var(--jp-gold);text-shadow:.15vw .15vw #000;text-wrap:balance;background:#00000040;border-radius:1vw;max-width:85vw;padding:1.5vh 3vw;font-weight:900;line-height:1.2;animation:.3s zoom-in}.jp-text-xl{font-size:clamp(1.8rem,5.5vw,7rem)}.jp-text-lg{font-size:clamp(1.5rem,4vw,5rem)}.jp-text-md{font-size:clamp(1.2rem,3vw,3.6rem)}.jp-text-sm{font-size:clamp(1rem,2.2vw,2.6rem)}.jp-overlay-bottom{justify-items:center;gap:2vh;display:grid}.jp-overlay-actions{justify-content:center;align-items:center;gap:1.5vw;display:flex}.jp-timer{color:#fff;width:min(60vw,900px);height:clamp(36px,5vh,64px);font:inherit;cursor:pointer;background:#00000059;border:none;border-radius:999px;position:relative;overflow:hidden}.jp-timer-bar{background:linear-gradient(90deg,#22c55e,#84cc16);border-radius:999px;transition:width .1s linear;position:absolute;inset:0 auto 0 0}.jp-timer-low .jp-timer-bar{background:linear-gradient(90deg,#ef4444,#f97316)}.jp-timer-label{font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #0009;font-size:clamp(1rem,2vw,2.2rem);font-weight:900;position:relative}.jp-timer-done{cursor:default;background:#dc2626;animation:.6s 3 pulse}@keyframes pulse{50%{transform:scale(1.04)}}.jp-award{justify-items:center;gap:1.5vh;animation:.3s fade-in;display:grid}.jp-award-label{opacity:.85;font-size:clamp(1rem,1.8vw,2rem);font-weight:800}.jp-award-buttons{flex-wrap:wrap;justify-content:center;gap:1vw;display:flex}.jp-award-team,.jp-award-none{font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.5em;padding:.6em 1.2em;font-size:clamp(1rem,1.6vw,1.9rem);font-weight:800;transition:transform .1s,filter .1s;display:inline-flex}.jp-award-team{background:var(--team);color:#fff;text-shadow:0 1px 2px #0006;border:none}.jp-award-team:hover,.jp-award-none:hover{filter:brightness(1.1);transform:translateY(-2px)}.jp-award-none{color:#fff;background:0 0;border:2px solid #fff6}.jp-setup-screen{grid-template-rows:1fr;place-items:center;overflow:auto}.jp-setup{text-align:center;justify-items:center;gap:3vh;width:min(1000px,92vw);display:grid}.jp-setup-kicker,.jp-final-kicker{color:var(--jp-gold);text-shadow:.25vw .25vw #000;letter-spacing:.02em;font-family:Anton,Impact,sans-serif;font-size:clamp(2rem,5vw,5.5rem)}.jp-setup h1{font-size:clamp(1.4rem,3vw,3.4rem)}.jp-setup-meta{opacity:.8;font-size:clamp(1rem,1.5vw,1.6rem)}.jp-team-count{border:none;justify-content:center;align-items:center;gap:1vw;margin:0;padding:0;display:flex}.jp-team-count legend{float:left;margin-right:1vw;font-size:clamp(1rem,1.6vw,1.8rem);font-weight:800}.jp-team-count button{aspect-ratio:1;color:#fff;width:clamp(48px,5vw,80px);font:inherit;cursor:pointer;background:0 0;border:2px solid #ffffff59;border-radius:50%;font-size:clamp(1.2rem,2vw,2.2rem);font-weight:900}.jp-team-count button.selected{background:var(--jp-gold);border-color:var(--jp-gold);color:#1a1446}.jp-team-names{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1vw;width:100%;display:grid}.jp-team-names input{text-align:center;color:#fff;border:2px solid var(--team);background:#00000040;border-radius:999px;min-height:56px;font-size:clamp(1.1rem,1.8vw,2rem);font-weight:800}.jp-team-names input:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--team) 40%, transparent);border-color:var(--team)}.jp-hint{opacity:.7;font-size:clamp(.85rem,1.1vw,1.2rem)}.jp-final,.jp-results{text-align:center;grid-row:2/4;align-content:center;justify-items:center;gap:3vh;min-height:0;display:grid;overflow:auto}.jp-final-category{text-transform:uppercase;font-size:clamp(2rem,5vw,6rem);font-weight:900}.jp-final-help{opacity:.85;max-width:60ch;font-size:clamp(1rem,1.6vw,1.8rem)}.jp-wagers,.jp-final-marks{flex-wrap:wrap;justify-content:center;gap:1.2vw;display:flex}.jp-wager,.jp-final-mark{border-top:.5vh solid var(--team);background:#0000004d;border-radius:1vw;justify-items:center;gap:.6vh;min-width:200px;padding:1.5vh 1.5vw;display:grid}.jp-wager-name{color:var(--team);font-size:clamp(1rem,1.7vw,2rem);font-weight:900}.jp-wager-score,.jp-wager-max{opacity:.75;font-size:clamp(.8rem,1vw,1.2rem)}.jp-wager input{text-align:center;background:#fffffff2;width:9em;font-size:clamp(1.2rem,2vw,2.4rem);font-weight:900}.jp-final-mark-buttons{gap:.5vw;display:flex}.jp-final-mark-buttons button{font:inherit;color:#fff;cursor:pointer;background:0 0;border:2px solid #ffffff59;border-radius:999px;padding:.4em .9em;font-size:clamp(.9rem,1.2vw,1.4rem);font-weight:800}.jp-final-mark-buttons .right.selected{background:#16a34a;border-color:#16a34a}.jp-final-mark-buttons .wrong.selected{background:#dc2626;border-color:#dc2626}.jp-results{position:relative}.jp-winner{font-size:clamp(1.8rem,4.5vw,5.5rem);font-weight:900;animation:.5s cubic-bezier(.2,.8,.3,1.3) zoom-in}.jp-ranking{gap:1.2vh;width:min(900px,90vw);margin:0;padding:0;list-style:none;display:grid}.jp-ranking li{border-left:.6vw solid var(--team);background:#0000004d;border-radius:1vw;grid-template-columns:4vw 1fr auto;align-items:center;gap:1.5vw;padding:1.2vh 2vw;font-size:clamp(1.1rem,2.2vw,2.8rem);font-weight:800;display:grid}.jp-rank-winner{box-shadow:0 0 0 3px var(--jp-gold);background:#fbbf2433!important}.jp-rank-pos{opacity:.6}.jp-rank-name{text-align:left;color:var(--team)}.jp-rank-score{font-variant-numeric:tabular-nums;font-family:Anton,Impact,sans-serif}.jp-confetti{pointer-events:none;position:fixed;inset:0;overflow:hidden}.jp-confetti span{border-radius:2px;width:10px;height:16px;animation:linear infinite fall;position:absolute;top:-20px}@keyframes fall{to{top:110vh;transform:rotate(720deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.jp-confetti{display:none}}@media (width<=700px){.jp-header{flex-wrap:wrap}.jp-header-actions .jp-btn{min-height:34px;padding:.3em .7em}.save-bar{border-radius:var(--radius)}}.team-count{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.team-count-label{margin-right:.5rem;font-size:.9rem;font-weight:700}.chip{border:1.5px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:50%;font-weight:800;transition:background .15s,border-color .15s}.chip:hover{border-color:var(--primary)}.chip-on{background:var(--primary);border-color:var(--primary);color:#fff}.team-name-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.team-name-field input{border-left:6px solid var(--team);font-weight:800}.account-chip{background:var(--surface-2);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;max-width:220px;padding:.35rem .85rem;font-size:.9rem;font-weight:800;display:inline-flex;overflow:hidden}.login-footer{text-align:center;line-height:1.6}.add-class-grid{grid-template-columns:1fr 1fr auto;align-items:end;gap:1rem;display:grid}@media (width<=760px){.add-class-grid{grid-template-columns:1fr}}.input-with-button{align-items:center;gap:.5rem;display:flex}.input-with-button input{letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.class-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1rem 1.25rem;display:grid}@media (width<=760px){.class-row .game-row-actions{grid-column:1/-1;justify-content:flex-start}}.credentials{text-align:left;background:var(--primary-soft);border-radius:12px;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin-left:0;margin-right:0;padding:1rem 1.25rem;display:grid}.credentials dt{color:var(--muted);font-weight:700}.credentials dd{color:var(--text);margin:0;font-weight:900}.credentials-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;color:var(--primary)!important}.dialog-form{text-align:left}.dialog-actions{justify-content:flex-end}.chip-wide,.jp-team-count button.wide{aspect-ratio:auto;border-radius:999px;width:auto;padding:0 1.1em}.word-table{gap:.5rem;display:grid}.word-row{grid-template-columns:2rem minmax(160px,1.1fr) 2fr minmax(120px,.8fr) 36px;align-items:start;gap:.6rem;display:grid}.word-row-head{color:var(--muted);padding:0 0 .25rem;font-size:.85rem;font-weight:800}.word-num{text-align:right;font-variant-numeric:tabular-nums;padding-top:.7rem}.word-cell{gap:.25rem;display:grid}.word-input{text-transform:uppercase;letter-spacing:.06em;font-weight:800}.word-input::placeholder{text-transform:none;letter-spacing:normal;font-weight:400}@media (width<=760px){.word-row{grid-template-columns:1.5rem 1fr 36px}.word-row-head{display:none}.word-row>input{grid-column:2}}.hm-counter{opacity:.85;align-self:center;margin-right:.5vw;font-size:clamp(.9rem,1.3vw,1.5rem);font-weight:800}.hm-main{grid-template-columns:minmax(0,.8fr) minmax(0,2fr);align-items:center;gap:3vw;min-height:0;padding:1vh 2vw;display:grid}.hm-left{justify-items:center;gap:1.5vh;min-height:0;display:grid}.hm-drawing{stroke-linecap:round;fill:none;width:100%;max-height:52vh}.hm-gallows{stroke:#ffffff73;stroke-width:7px}.hm-figure{stroke:#fff;stroke-width:6px}.hm-figure>*{animation:.35s fade-in}.hm-drawing-lost .hm-figure{stroke:#f87171}.hm-lives{font-size:clamp(1rem,1.6vw,1.9rem);font-weight:800}.hm-wrong{flex-wrap:wrap;justify-content:center;gap:.4vw;display:flex}.hm-wrong span{color:#fca5a5;padding:0 .2em;font-family:Anton,Impact,sans-serif;font-size:clamp(1rem,1.8vw,2.2rem);text-decoration:line-through}.hm-right{text-align:center;align-content:center;justify-items:center;gap:3vh;min-height:0;display:grid}.hm-clue{justify-items:center;gap:1vh;display:grid}.hm-category{text-transform:uppercase;letter-spacing:.08em;color:var(--jp-gold);background:#00000040;border-radius:999px;padding:.25em 1em;font-size:clamp(.9rem,1.5vw,1.8rem);font-weight:900}.hm-hint{text-wrap:balance;max-width:55vw;font-size:clamp(1.1rem,2.2vw,2.8rem);font-weight:700;line-height:1.25}.hm-word{--tile:clamp(2rem, 5vw, 6rem);flex-wrap:wrap;justify-content:center;gap:1vh 2.4vw;display:flex}.hm-word-md{--tile:clamp(1.8rem, 3.8vw, 4.6rem)}.hm-word-sm{--tile:clamp(1.5rem, 2.8vw, 3.4rem)}.hm-word-part{gap:.6vw;display:flex}.hm-tile{width:calc(var(--tile) * .8);height:calc(var(--tile) * 1.15);font-family:Anton,Impact,sans-serif;font-size:var(--tile);color:#fff;text-shadow:.15vw .15vw #000;border-bottom:max(4px,.4vw) solid #ffffffd9;place-items:end center;line-height:1;display:grid}.hm-tile-shown{animation:.25s zoom-in}.hm-tile-missed{color:#fca5a5}.hm-tile-symbol{border-bottom-color:#0000;width:auto}.hm-keyboard{grid-template-columns:repeat(13,1fr);gap:.6vw;width:min(100%,1200px);display:grid}.hm-key{aspect-ratio:1;background:linear-gradient(180deg, var(--jp-blue-light), var(--jp-blue));color:#fff;cursor:pointer;border:none;border-radius:.6vw;font-family:Anton,Impact,sans-serif;font-size:clamp(1rem,2.2vw,2.8rem);transition:transform .1s,filter .1s;box-shadow:inset 0 0 0 2px #00000040,0 .3vh #00000059}.hm-key:hover:not(:disabled){filter:brightness(1.25);transform:translateY(-2px)}.hm-key:focus-visible{outline:.25vw solid var(--jp-gold)}.hm-key:disabled{cursor:default;box-shadow:none}.hm-key-right{background:#16a34a}.hm-key-wrong{color:#ffffff4d;background:#0000004d}.hm-teacher-actions .jp-btn{opacity:.85}.hm-banner{justify-items:center;gap:2.5vh;animation:.3s fade-in;display:grid}.hm-banner-title{font-size:clamp(1.4rem,3.2vw,4rem);font-weight:900}.hm-banner-solved .hm-banner-title{color:var(--jp-gold)}.hm-banner-missed .hm-banner-title{color:#fca5a5}.jp-award-team.hm-awarded{box-shadow:0 0 0 4px #fff}@media (width<=900px){.hm-main{grid-template-columns:1fr}.hm-drawing{max-height:26vh}.hm-keyboard{grid-template-columns:repeat(7,1fr)}}.ws-main{text-align:center;align-content:center;justify-items:center;gap:3.5vh;min-height:0;padding:1vh 2vw;display:grid}.ws-tiles,.ws-slots{--tile:clamp(2.2rem, 6vw, 7rem);flex-wrap:wrap;justify-content:center;gap:2vh 3vw;display:flex}.ws-tiles-md{--tile:clamp(1.9rem, 4.6vw, 5.4rem)}.ws-tiles-sm{--tile:clamp(1.6rem, 3.4vw, 4rem)}.ws-group{gap:calc(var(--tile) * .14);display:flex}.ws-tile{width:calc(var(--tile) * 1.05);height:calc(var(--tile) * 1.15);border-radius:calc(var(--tile) * .14);color:#1a1446;font-family:Anton,Impact,sans-serif;font-size:calc(var(--tile) * .78);box-shadow:0 calc(var(--tile) * .07) 0 #c08a1b, 0 calc(var(--tile) * .12) calc(var(--tile) * .2) #00000059;background:linear-gradient(#fef9e7,#fde7a9);place-items:center;line-height:1;animation:.3s zoom-in;display:grid}.ws-tiles-answer .ws-tile{color:#fff;text-shadow:0 2px #0000004d;box-shadow:0 calc(var(--tile) * .07) 0 #166534, 0 calc(var(--tile) * .12) calc(var(--tile) * .2) #00000059;background:linear-gradient(#4ade80,#16a34a)}.ws-symbol{font-family:Anton,Impact,sans-serif;font-size:calc(var(--tile) * .78);align-self:center}.ws-slots{--tile:clamp(1.4rem, 3vw, 3.6rem)}.ws-slot{width:calc(var(--tile) * .85);height:calc(var(--tile) * 1.15);font-family:Anton,Impact,sans-serif;font-size:var(--tile);color:var(--jp-gold);border-bottom:max(3px,.3vw) solid #ffffffb3;place-items:end center;line-height:1;display:grid}.ws-slot-filled{animation:.25s zoom-in}.ws-controls{justify-items:center;gap:2.5vh;display:grid}.jp-award-team.ws-yes{background:#16a34a}.dialog-message{color:var(--muted);line-height:1.5}.dialog-buttons{padding-top:.5rem}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.dialog-tv{background:radial-gradient(ellipse at top, var(--jp-blue-light), var(--jp-blue-deep) 85%);color:#fff;width:min(720px,100vw - 2rem);box-shadow:0 0 0 3px var(--jp-gold), 0 30px 80px #0009;border-radius:clamp(16px,1.5vw,28px);padding:clamp(1.5rem,3vw,3rem);animation:.25s cubic-bezier(.2,.8,.3,1.1) zoom-in}.dialog-tv::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#030728b3}.dialog-tv h2{color:var(--jp-gold);text-shadow:.12em .12em #000;font-size:clamp(1.6rem,3vw,3.2rem);font-weight:900}.dialog-tv .dialog-emoji{font-size:clamp(2.5rem,4vw,4.5rem)}.dialog-tv .dialog-message{color:#ffffffe6;font-size:clamp(1rem,1.6vw,1.7rem);font-weight:600}.dialog-tv .dialog-buttons{gap:clamp(.75rem,1.5vw,1.5rem)}.jp-btn-danger{color:#fff;background:#dc2626;border-color:#dc2626}.jp-btn-danger:hover:not(:disabled){background:#ef4444}.home-links{justify-items:center;gap:.5rem;font-weight:800;display:grid}.hw-badge{background:var(--surface-2);color:var(--muted);border-radius:999px;margin-top:.35rem;padding:.15rem .6rem;font-size:.8rem;font-weight:800;display:inline-block}.hw-badge.open{color:var(--success);background:#dcfce7}.hw-settings-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.switch{cursor:pointer;align-items:center;gap:.75rem;display:flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:#d6d1c6;border-radius:999px;flex-shrink:0;width:52px;height:30px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+.switch-track{background:var(--success)}.switch input:checked+.switch-track:after{transform:translate(22px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--primary);outline-offset:2px}.status-pill{border-radius:999px;padding:.3rem .8rem;font-size:.85rem;font-weight:800}.status-open{color:var(--success);background:#dcfce7}.status-closed{color:var(--warn);background:#fffbeb}.status-off{background:var(--surface-2);color:var(--muted)}.hw-settings-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;display:grid}.hw-settings-grid .input-with-button input{letter-spacing:normal;max-width:280px;font-family:inherit}@media (width<=700px){.hw-settings-grid{grid-template-columns:1fr}}.share-grid{grid-template-columns:auto 1fr;gap:1rem;display:grid}.share-code,.share-link{background:var(--primary-soft);border-radius:12px;gap:.2rem;min-width:0;padding:.75rem 1rem;display:grid}.share-code strong{letter-spacing:.15em;color:var(--primary);font-size:1.8rem}.share-link code{overflow-wrap:anywhere;background:0 0;align-self:center;padding:0;font-size:1rem}@media (width<=700px){.share-grid{grid-template-columns:1fr}}.sort-select{align-items:center;gap:.4rem;display:flex}.sort-select select{width:auto;min-height:36px;padding:.25rem .5rem}.stat-row{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:1rem 1.25rem;display:grid}.stat strong{font-size:1.8rem;font-weight:900}.stat span{color:var(--muted);font-size:.9rem;font-weight:700}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.results-table{border-collapse:collapse;width:100%}.results-table th,.results-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.7rem 1rem}.results-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.8rem}.results-table tr:last-child td{border-bottom:none}.results-name{font-weight:800}.score-cell{align-items:center;gap:.6rem;display:flex}.score-bar,.question-bar{background:var(--surface-2);border-radius:999px;width:80px;height:8px;display:block;overflow:hidden}.score-bar span,.question-bar span{background:var(--primary);border-radius:999px;height:100%;display:block}.badge-done{color:var(--success);background:#dcfce7}.question-stats{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.question-stats li{grid-template-columns:minmax(0,1fr) 140px auto;align-items:center;gap:1rem;display:grid}.question-label{font-weight:700}.question-bar{width:100%;height:10px}.question-bar.low span{background:var(--danger)}.question-bar.mid span{background:#f59e0b}.question-bar.high span{background:var(--success)}.question-pct{text-align:right;min-width:70px;display:grid}@media (width<=700px){.question-stats li{grid-template-columns:1fr auto}.question-bar{grid-area:2/1/auto/-1}}.hw{background:radial-gradient(ellipse at top, #13238f, var(--jp-blue-deep) 70%) fixed;color:#fff;min-height:100dvh}.hw-header{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060f5ed9;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex;position:sticky;top:0}.hw-brand{background:var(--jp-gold);color:#1a1446;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-weight:900;display:grid;text-decoration:none!important}.hw-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:1.05rem;font-weight:900;overflow:hidden}.hw-header-right{gap:.4rem;display:flex}.hw-chip{text-overflow:ellipsis;white-space:nowrap;background:#ffffff1f;border-radius:999px;max-width:140px;padding:.25rem .7rem;font-size:.9rem;font-weight:800;overflow:hidden}.hw-chip-score{background:var(--jp-gold);color:#1a1446}.hw-main{justify-items:center;gap:1rem;max-width:960px;margin:0 auto;padding:1.25rem 1rem 3rem;display:grid}.hw-main>.spinner{margin-top:30vh}.hw-stack{gap:1rem;width:100%;display:grid}.hw-card{background:#00000040;border-radius:20px;gap:1rem;width:100%;padding:clamp(1.25rem,4vw,2rem);display:grid;box-shadow:inset 0 0 0 1px #ffffff14}.hw-card h1{font-size:clamp(1.5rem,5vw,2.2rem)}.hw-card h2{font-size:clamp(1.2rem,4vw,1.6rem)}.hw-center{text-align:center;justify-items:center;max-width:560px;margin:0 auto}.hw-center-text{text-align:center}.hw-emoji{font-size:3rem}.hw-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--jp-gold);font-size:.85rem;font-weight:900}.hw-muted{color:#ffffffbf}.hw-small{font-size:.85rem}.hw-field{text-align:left;gap:.4rem;width:100%;font-weight:800;display:grid}.hw-field input,.hws-input{background:#fff;border:2px solid #0000;border-radius:14px;min-height:54px;font-size:1.2rem;font-weight:700}.hw-field input:focus,.hws-input:focus{border-color:var(--jp-gold);box-shadow:0 0 0 4px #fbbf2459}.hw-error{color:#fecaca;text-align:center;background:#dc262640;border-radius:12px;width:100%;padding:.75rem 1rem;font-weight:700}.hw-hint{font-size:clamp(1.05rem,3.5vw,1.35rem);font-weight:700;line-height:1.35}.hw-link-btn{color:#ffffffbf;font:inherit;cursor:pointer;background:0 0;border:none;padding:.5rem;font-weight:700;text-decoration:underline}.hw-link-btn:hover:not(:disabled){color:#fff}.hw-feedback{text-align:center;border-radius:14px;width:100%;padding:.85rem 1rem;font-size:1.15rem;font-weight:900;animation:.25s zoom-in}.hw-feedback.right{color:#bbf7d0;background:#16a34a4d}.hw-feedback.wrong{color:#fecaca;background:#dc262640}.hw-progress{justify-items:center;gap:.5rem;width:100%;display:grid}.hw-dots{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.hw-dot{background:#fff3;border-radius:50%;width:12px;height:12px}.hw-dot.current{background:#fff;box-shadow:0 0 0 3px #ffffff4d}.hw-dot.right{background:#22c55e}.hw-dot.wrong{background:#ef4444}.hwj-board{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:.5rem;width:100%;display:grid}.hwj-col{align-content:start;gap:.5rem;display:grid}.hwj-cat{background:var(--jp-blue);text-transform:uppercase;text-align:center;overflow-wrap:anywhere;border-radius:10px;place-items:center;min-height:64px;padding:.4rem;font-size:.9rem;font-weight:900;line-height:1.15;display:grid}.hwj-tile{background:linear-gradient(180deg, var(--jp-blue-light), var(--jp-blue));min-height:56px;color:var(--jp-gold);cursor:pointer;border:none;border-radius:10px;font-family:Anton,Impact,sans-serif;font-size:1.6rem;box-shadow:0 3px #00000059}.hwj-tile:hover{filter:brightness(1.2)}.hwj-tile.right{color:#bbf7d0;box-shadow:none;background:#16a34a59}.hwj-tile.wrong{color:#fecaca;box-shadow:none;background:#dc262640}@media (width<=640px){.hwj-board{grid-template-columns:1fr}.hwj-col{grid-template-columns:minmax(0, 1.7fr) repeat(var(--rows), minmax(0, 1fr));align-items:stretch}.hwj-cat{overflow-wrap:normal;-webkit-hyphens:auto;hyphens:auto;min-height:48px;font-size:.68rem}.hwj-tile{min-height:48px;font-size:1.1rem}}.hw-bonus{background:var(--jp-gold);color:#1a1446;width:100%;font:inherit;cursor:pointer;border:none;border-radius:14px;padding:1rem;font-size:1.1rem;font-weight:900;animation:1.2s 3 pulse}.hw-question{max-width:720px;margin:0 auto}.hw-question-top{justify-content:space-between;align-items:center;display:flex}.hw-points{color:var(--jp-gold);font-family:Anton,Impact,sans-serif;font-size:1.8rem}.hw-question-text{line-height:1.3;font-size:clamp(1.3rem,4.5vw,2rem)!important}.hw-options{gap:.6rem;display:grid}.hw-option{color:#fff;min-height:56px;font:inherit;text-align:left;cursor:pointer;background:#ffffff14;border:2px solid #ffffff40;border-radius:14px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:1.05rem;font-weight:800;transition:background .15s,border-color .15s;display:flex}.hw-option:hover:not(:disabled){border-color:var(--jp-gold);background:#ffffff26}.hw-option:disabled{cursor:default}.hw-option-letter{background:#ffffff26;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.hw-option.right{background:#16a34a59;border-color:#22c55e}.hw-option.wrong{background:#dc26264d;border-color:#ef4444}.hw-option.dim{opacity:.5}.hwh-play{grid-template-columns:minmax(90px,160px) 1fr;align-items:center;gap:1rem;width:100%;display:grid}.hwh-play .hm-drawing{max-height:200px}.hwh-word{flex-wrap:wrap;justify-content:center;gap:.6rem 1.2rem;display:flex}.hwh-part{gap:.3rem;display:flex}.hwh-tile{border-bottom:3px solid #ffffffd9;place-items:end center;width:clamp(1.4rem,6vw,2.4rem);height:clamp(2rem,8vw,3rem);font-family:Anton,Impact,sans-serif;font-size:clamp(1.4rem,6vw,2.4rem);line-height:1;display:grid}.hwh-tile.shown{animation:.2s zoom-in}.hwh-tile.symbol{border-bottom-color:#0000;width:auto}.hwh .hm-keyboard{grid-template-columns:repeat(9,1fr);gap:.35rem}.hwh .hm-key{border-radius:8px;font-size:1.3rem}@media (width<=480px){.hwh-play{grid-template-columns:1fr}.hwh-play .hm-drawing{max-height:140px}.hwh .hm-keyboard{grid-template-columns:repeat(7,1fr)}}.hws .ws-tiles{--tile:clamp(1.8rem, 9vw, 3.6rem)}.hws .ws-tiles-sm,.hws .ws-tiles-md{--tile:clamp(1.4rem, 6.5vw, 2.8rem)}.hws-form{gap:.5rem;width:100%;display:flex}.hws-input{text-transform:uppercase;letter-spacing:.08em;text-align:center;flex:1}.hws-input::placeholder{text-transform:none;letter-spacing:normal}.hws-input.shake{border-color:#ef4444;animation:.4s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.hw-stars{color:#fff3;gap:.5rem;font-size:3rem;display:flex}.hw-stars .on{color:var(--jp-gold);animation:.4s cubic-bezier(.2,.8,.3,1.4) both zoom-in}.hw-stars .on:nth-child(2){animation-delay:.15s}.hw-stars .on:nth-child(3){animation-delay:.3s}.hw-big-score{color:var(--jp-gold);font-family:Anton,Impact,sans-serif;font-size:clamp(3rem,12vw,5rem);line-height:1}.hw-big-score span{color:#fff9;font-size:.45em}.hw-review{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.hw-review li{background:#ffffff0f;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.6rem .8rem;display:flex}.hw-review li>span:last-child{gap:.15rem;display:grid}.hw-review-mark{border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:.9rem;font-weight:900;display:grid}.hw-review li.right .hw-review-mark{background:#16a34a}.hw-review li.wrong .hw-review-mark{background:#dc2626}.hwj-tile.pending{box-shadow:inset 0 0 0 3px var(--jp-gold), 0 3px 0 #00000059}.hw-answer{text-align:center;background:#0000004d;border-radius:14px;justify-items:center;gap:.3rem;padding:1rem;animation:.25s zoom-in;display:grid}.hw-answer strong{color:var(--jp-gold);font-size:clamp(1.3rem,5vw,2rem);line-height:1.25}.hw-mark-buttons{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.hw-mark{color:#fff;min-height:60px;font:inherit;cursor:pointer;border:none;border-radius:14px;font-size:1.15rem;font-weight:900;transition:transform .1s,filter .1s}.hw-mark:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.hw-mark.right{background:#16a34a}.hw-mark.wrong{background:#dc2626}.card-table{gap:.5rem;display:grid}.card-row{grid-template-columns:2rem minmax(0,1fr) minmax(0,1.4fr) minmax(110px,.6fr) 36px;align-items:start;gap:.6rem;display:grid}.card-row-head{color:var(--muted);font-size:.85rem;font-weight:800}.card-row textarea{min-height:44px}@media (width<=760px){.card-row{grid-template-columns:1.5rem 1fr 36px}.card-row-head{display:none}.card-row>textarea,.card-row>input{grid-column:2}}.fc-main{grid-row:2/4;align-content:center;justify-items:center;gap:3vh;min-height:0;display:grid}.fc-stage{perspective:1800px;width:min(1100px,88vw);height:min(56vh,620px)}.fc-stage-phone{perspective:1200px;width:100%;height:min(52vh,420px)}.fc-card{width:100%;height:100%;font:inherit;color:inherit;cursor:pointer;transform-style:preserve-3d;background:0 0;border:none;padding:0;transition:transform .5s cubic-bezier(.3,.7,.3,1);display:block;position:relative}.fc-card.flipped{transform:rotateY(180deg)}.fc-card:focus-visible{outline:none}.fc-card:focus-visible .fc-face{box-shadow:0 0 0 5px var(--jp-gold), 0 20px 50px #00000073}.fc-face{backface-visibility:hidden;text-align:center;border-radius:clamp(18px,2vw,32px);grid-template-rows:auto 1fr auto;place-items:center;gap:1rem;padding:clamp(1.25rem,4vh,3rem) clamp(1.25rem,4vw,4rem);display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:0 20px 50px #00000073}.fc-front{color:#1a1446;background:linear-gradient(#fffdf5,#fdf0c8)}.fc-back{background:linear-gradient(160deg, var(--jp-blue-light), var(--jp-blue-deep));color:var(--jp-gold);box-shadow:inset 0 0 0 4px var(--jp-gold), 0 20px 50px #00000073;grid-template-rows:1fr;transform:rotateY(180deg)}.fc-category{color:var(--jp-gold);text-transform:uppercase;letter-spacing:.08em;background:#1a1446;border-radius:999px;grid-row:1;padding:.3em 1em;font-size:clamp(.8rem,1.3vw,1.4rem);font-weight:900}.fc-text{text-wrap:balance;overflow-wrap:anywhere;grid-row:2;font-weight:900;line-height:1.2}.fc-back .fc-text{text-shadow:.1em .1em #000;grid-row:1}.fc-tap{color:#1a144673;grid-row:3;font-size:clamp(.8rem,1.1vw,1.2rem);font-weight:800}.fc-phone-xl{font-size:clamp(1.8rem,9vw,2.8rem)}.fc-phone-lg{font-size:clamp(1.4rem,6.5vw,2.1rem)}.fc-phone-md{font-size:clamp(1.15rem,5vw,1.6rem)}.fc-phone-sm{font-size:clamp(1rem,4.2vw,1.3rem)}.fc-stage-phone .fc-category{font-size:.75rem}.fc-stage-phone .fc-tap{font-size:.85rem}.fc-controls{justify-content:center;align-items:center;gap:1.2vw;display:flex}.jp-award-team.fc-got{background:#16a34a}.jp-award-team.fc-again{background:#ea580c}.fc-dots{max-width:80vw}.fc-done .fc-again-list{gap:1vh;width:min(900px,90vw);display:grid}.fc-again-list ul{gap:.8vh;max-height:40vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.fc-again-list li{text-align:left;background:#0000004d;border-radius:.8vw;justify-content:space-between;gap:2vw;padding:1vh 1.5vw;font-size:clamp(1rem,1.5vw,1.8rem);display:flex}.fc-again-list li span{color:var(--jp-gold);text-align:right}@media (prefers-reduced-motion:reduce){.fc-card{transition:none}}.nav-link.active{background:var(--primary-soft);color:var(--primary);border-color:#0000}.alert-info{background:var(--primary-soft);color:var(--primary);border:1px solid #c7d2fe}.library-tag{background:var(--primary-soft);color:var(--primary);vertical-align:middle;border-radius:999px;margin-left:.6rem;padding:.15rem .65rem;font-size:.85rem;display:inline-block}.game-row-description{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.15rem 0 .2rem;font-size:.92rem;display:-webkit-box;overflow:hidden}.library-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.library-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-rows:auto auto 1fr auto auto;gap:.6rem;padding:1.25rem;transition:box-shadow .15s;display:grid}.library-card:hover{box-shadow:var(--shadow)}.library-card h2{font-size:1.15rem}.library-card-head{justify-content:space-between;align-items:center;display:flex}.library-emoji{font-size:2rem}.library-code strong{letter-spacing:.12em;color:var(--primary)}.library-actions{flex-wrap:wrap;gap:.4rem;display:flex}.jp-setup-description{color:#ffffffe6;max-width:60ch;font-size:clamp(1rem,1.6vw,1.8rem);font-weight:600;line-height:1.4}.hw-description{font-weight:600;line-height:1.4}.share-badge{color:#0369a1;font:inherit;cursor:pointer;background:#e0f2fe;border:none;border-radius:999px;margin:.35rem .35rem 0 0;padding:.15rem .6rem;font-size:.8rem;font-weight:800;display:inline-block}.share-badge:hover{background:#bae6fd}.share-dialog{width:min(520px,100vw - 2rem)}.share-skeleton{height:160px}.share-options{border:none;gap:.5rem;margin:0;padding:0;display:grid}.share-option{border:2px solid var(--border);cursor:pointer;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;transition:border-color .15s,background .15s;display:flex}.share-option.selected{border-color:var(--primary);background:var(--primary-soft)}.share-option input{width:18px;height:18px;min-height:0;accent-color:var(--primary);flex-shrink:0;margin-top:3px}.share-option>span{gap:.1rem;display:grid}.share-classes{gap:.5rem;display:grid}.share-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.share-tool-buttons{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.link-btn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:800}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn:disabled{color:var(--muted);opacity:.6;cursor:default}.share-chosen-only{cursor:pointer;align-items:center;gap:.35rem;font-size:.85rem;font-weight:700;display:flex}.share-chosen-only input{width:16px;height:16px;min-height:0;accent-color:var(--primary)}.share-list{overscroll-behavior:contain;border:1px solid var(--border);border-radius:12px;height:min(300px,38vh);margin:0;padding:.25rem;list-style:none;overflow-y:scroll}@supports not selector(::-webkit-scrollbar){.share-list{scrollbar-width:thin;scrollbar-color:#b9b2c7 var(--surface-2)}}.share-list::-webkit-scrollbar{width:10px}.share-list::-webkit-scrollbar-track{background:var(--surface-2);border-radius:0 12px 12px 0}.share-list::-webkit-scrollbar-thumb{border:2px solid var(--surface-2);background:#b9b2c7;border-radius:999px}.share-list::-webkit-scrollbar-thumb:hover{background:#8f879f}.share-class{cursor:pointer;border-radius:8px;align-items:center;gap:.6rem;padding:.4rem .6rem;font-weight:700;display:flex}.share-class:hover{background:var(--surface-2)}.share-class input{width:18px;height:18px;min-height:0;accent-color:var(--primary);flex-shrink:0}.share-class.checked{background:var(--primary-soft)}.share-empty{padding:.75rem}.share-filter{background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b6578' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat .85rem center;min-height:44px;padding-left:2.6rem}.share-dialog{max-height:calc(100dvh - 2rem);overflow-y:auto}.toast{z-index:20;color:#fff;background:#1f1b2e;border-radius:999px;padding:.7rem 1.2rem;font-weight:800;animation:.2s fade-in;position:fixed;bottom:6rem;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000040}.library-section-head{align-items:baseline;gap:.6rem;display:flex}.library-owner{color:#0369a1;font-size:.85rem;font-weight:800}.share-dialog .dialog-actions{background:var(--surface);border-top:1px solid var(--border);margin:0 -2rem -2rem;padding:.75rem 2rem 1.25rem;position:sticky;bottom:-2rem}.public-link code{background:var(--primary-soft);overflow-wrap:anywhere;border-radius:10px;padding:.5rem .75rem;font-size:.95rem}.pl-intro{text-align:center;gap:.4rem;display:grid}.pl-intro h1{font-size:clamp(1.6rem,6vw,2.4rem)}.pl-search{border-color:#0000}.pl-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.pl-card{color:#fff;background:#00000040;border-radius:20px;grid-template-rows:auto auto 1fr auto;gap:.5rem;height:100%;padding:1.25rem;transition:transform .12s,box-shadow .12s;display:grid;box-shadow:inset 0 0 0 1px #ffffff1a;text-decoration:none!important}.pl-card:hover,.pl-card:focus-visible{box-shadow:inset 0 0 0 2px var(--jp-gold);transform:translateY(-3px)}.pl-card-head{justify-content:space-between;align-items:center;display:flex}.pl-emoji{font-size:2.2rem}.pl-type{background:#ffffff1f;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:800}.pl-title{font-size:1.25rem;font-weight:900;line-height:1.25}.pl-description{color:#fffc;line-height:1.4}.pl-play{background:var(--jp-gold);color:#1a1446;border-radius:999px;justify-self:start;margin-top:.4rem;padding:.5rem 1.1rem;font-weight:900}.hw-optional{color:#ffffffa6;font-style:normal;font-weight:600}.sl{grid-template-rows:auto 1fr auto}.sl-stage{cursor:pointer;-webkit-user-select:none;user-select:none;place-items:center;min-height:0;padding:2vh 3vw;display:grid;position:relative}.sl-end{color:#ffffff80;font-size:clamp(.8rem,1vw,1.1rem);font-weight:800;position:absolute;bottom:1vh;right:2vw}.sl-footer{gap:.8vh;display:grid}.sl-progress{background:#ffffff1f;border-radius:999px;height:6px;overflow:hidden}.sl-progress span{background:var(--jp-gold);height:100%;transition:width .25s;display:block}.sl-hint{text-align:center;color:#ffffff8c;font-size:clamp(.75rem,.9vw,1rem)}.sv{--sv-title:clamp(1.8rem, 4.6vw, 5.4rem);--sv-body:clamp(1.2rem, 2.6vw, 3rem);align-content:center;gap:3vh;width:min(100%,1500px);animation:.3s fade-in;display:grid}.sv-roomy{--sv-title:clamp(2rem, 5.4vw, 6.4rem);--sv-body:clamp(1.4rem, 3.2vw, 3.8rem)}.sv-dense{--sv-title:clamp(1.6rem, 3.8vw, 4.4rem);--sv-body:clamp(1.05rem, 2vw, 2.4rem);gap:2vh}.sv-tight{--sv-title:clamp(1.4rem, 3.2vw, 3.6rem);--sv-body:clamp(.95rem, 1.6vw, 1.9rem);gap:1.5vh}.sv-title{font-size:var(--sv-title);color:var(--jp-gold);text-shadow:.06em .06em #000;text-wrap:balance;font-weight:900;line-height:1.12}.sv-title-only{text-align:center}.sv-title-only .sv-title{font-size:calc(var(--sv-title) * 1.25)}.sv-body{font-size:var(--sv-body);gap:1.4vh;font-weight:700;line-height:1.35;display:grid}.sv-body p{margin:0}.sv-body ul{gap:1vh;margin:0;padding-left:1.2em;display:grid}.sv-body li::marker{color:var(--jp-gold)}.sv-preview{--sv-title:1.05rem;--sv-body:.72rem;gap:.5rem;animation:none}.sv-preview.sv-roomy{--sv-title:1.2rem;--sv-body:.8rem}.sv-preview.sv-tight,.sv-preview.sv-dense{--sv-title:.9rem;--sv-body:.62rem}.sv-preview .sv-body,.sv-preview .sv-body ul{gap:.2rem}.slide-edit-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.slide-edit{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) 300px;gap:1rem;padding:1rem;display:grid}.slide-edit-fields{align-content:start;gap:.5rem;display:grid}.slide-edit-fields input{font-weight:800}.slide-edit-head{justify-content:space-between;align-items:center;display:flex}.slide-num{color:var(--primary);font-weight:900}.slide-edit-tools{gap:.15rem;display:flex}.icon-btn-plain{font-size:1.1rem;font-weight:900}.icon-btn-plain:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.slide-thumb{aspect-ratio:16/9;background:radial-gradient(ellipse at top, #13238f, var(--jp-blue-deep) 75%);color:#fff;border-radius:10px;align-self:start;place-items:center;padding:.75rem 1rem;display:grid;overflow:hidden}.slide-thumb-empty{color:#ffffff80;font-size:.85rem;font-weight:700}@media (width<=800px){.slide-edit{grid-template-columns:1fr}}.kind-tabs{border-bottom:2px solid var(--border);gap:.25rem;display:flex}.kind-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:.45rem;margin-bottom:-2px;padding:.65rem 1.1rem;font-size:1.05rem;font-weight:800;display:inline-flex}.kind-tab:hover{color:var(--text)}.kind-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.kind-count{background:var(--surface-2);min-width:1.6em;color:var(--muted);text-align:center;border-radius:999px;padding:.05rem .45rem;font-size:.8rem}.kind-tab.active .kind-count{background:var(--primary-soft);color:var(--primary)}.kind-tabs-dark{border-bottom-color:#ffffff26;justify-content:center}.kind-tabs-dark .kind-tab{color:#ffffffa6}.kind-tabs-dark .kind-tab:hover{color:#fff}.kind-tabs-dark .kind-tab.active{color:var(--jp-gold);border-bottom-color:var(--jp-gold)}.kind-tabs-dark .kind-count{color:#fffc;background:#ffffff1f}.kind-tabs-dark .kind-tab.active .kind-count{background:var(--jp-gold);color:#1a1446}.play-only-badge,.share-tag{color:#92400e;vertical-align:middle;background:#fef3c7;border-radius:999px;margin-left:.5rem;padding:.1rem .55rem;font-size:.75rem;font-weight:800;display:inline-block}.home-one{text-align:left;width:100%;max-width:440px}.home-one>.home-mark,.home-one>h1,.home-one .center-link{justify-self:center}.or-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.75rem;font-size:.8rem;font-weight:800;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--border);flex:1;height:1px}.home-signed-in{text-align:center;justify-items:center;gap:.6rem;display:grid}.center-text{text-align:center}.home-choices{gap:.75rem;display:grid}.home-choice{border:2px solid var(--border);color:var(--text);border-radius:14px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:.85rem;padding:1rem 1.1rem;transition:border-color .15s,background .15s;display:grid;text-decoration:none!important}.home-choice:hover,.home-choice:focus-visible{border-color:var(--primary);background:var(--primary-soft)}.home-choice-emoji{grid-row:span 2;font-size:2rem}.home-choice strong{font-size:1.1rem}.install-app{border:1px dashed var(--border);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:14px;align-items:center;gap:.75rem;padding:.7rem .9rem;display:flex}.install-app:hover,.install-app:focus-visible{border-color:var(--primary);background:var(--primary-soft)}.install-app img{border-radius:7px;flex:none}.install-icon{border-radius:14px;justify-self:center}.install-steps{text-align:left;gap:.6rem;margin:0;padding-left:1.3rem;line-height:1.5;display:grid}.share-glyph{vertical-align:-3px;color:#2563eb}a,button{-webkit-tap-highlight-color:transparent}@media (pointer:coarse){input,textarea,select{font-size:max(16px,1em)}}.rt-math-loading{opacity:.6;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8em}.rt-math-display{max-width:100%;display:block;overflow:auto hidden}.rt-math-display .katex-display{margin:.3em 0}.katex{font-size:1.1em}.rich-cell{gap:.35rem;min-width:0;display:grid}.rich-preview{background:var(--primary-soft);border-radius:10px;padding:.45rem .7rem;font-size:.95rem;line-height:1.5;overflow-x:auto}.rich-preview:before{content:"Preview";color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.15rem;font-size:.7rem;font-weight:800;display:block}.format-help{position:relative}.format-help .is-active{background:var(--primary-soft);color:var(--primary)}.format-panel{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:18px;gap:.75rem;width:min(560px,100vw - 2rem);max-height:min(70vh,560px);padding:1rem 1.1rem;display:grid;position:absolute;bottom:calc(100% + .9rem);left:-.5rem;overflow-y:auto;box-shadow:0 16px 40px #1f1b2e2e}.format-panel-head{justify-content:space-between;align-items:center;display:flex}.format-panel p{margin:0}.format-examples{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.format-example{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;justify-items:start;gap:.3rem;padding:.6rem .7rem;display:grid}.format-example:hover,.format-example:focus-visible{border-color:var(--primary);background:var(--primary-soft)}.format-example-wide{grid-column:span 2}.format-example-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:800}.format-example-out{max-width:100%;min-height:1.6em;overflow-x:auto}.format-example-out .katex-display{margin:0}.format-example code{overflow-wrap:anywhere;max-width:100%;color:var(--muted);font-size:.72rem}@media (width<=640px){.format-panel{width:auto;position:fixed;bottom:5.5rem;left:1rem;right:1rem}}.saved-actions{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}
