@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/figtree-latin-300-normal-C9xDoCWy.woff2)format("woff2"),url(/assets/figtree-latin-300-normal-BzOoftBZ.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2)format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2)format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-700-normal-th6qEP7c.woff2)format("woff2"),url(/assets/figtree-latin-700-normal-BCCt2T1q.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/figtree-latin-800-normal-30yxI7TZ.woff2)format("woff2"),url(/assets/figtree-latin-800-normal-B7vj2UK8.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root{--bg:#fff;--surface:#f5f7fa;--surface-raised:#eceff3;--border:#dfe3e8;--line-soft:#e8ebef;--grid:#16181b09;--border-control:#6b707a;--primary:#0b57c9;--primary-hover:#0a3a8c;--accent:#0a3a8c;--logo-blue:#238dfa;--text:#16181b;--text-muted:#4c4f55;--text-subtle:#5f646d;--success:#0e7a4f;--warning:#8a5c00;--error:#b42318;--on-primary:#fff;--topbar:#fffffff0;--glass:#ffffffeb;--warn-wash:#fdf4e3;--tag-blocks:#9a4a12;--tag-python:#0b57c9;--tag-java:#b42318;--fc-line:#16181b;--fc-stroke:#16181b;--fc-terminal:#dfe3e8;--fc-process:#cfe0fb;--fc-decision:#f7dfa8;--code-bg:#0a0f14;--w-light:300;--w-display:800;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--sans:"Figtree", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius:12px;--radius-sm:8px;--pill:999px;--shadow:none}:root[data-theme=dark]{--bg:#0b0f14;--surface:#141a21;--surface-raised:#1b222b;--border:#2e3742;--line-soft:#252d37;--grid:#ffffff06;--border-control:#647285;--primary:#5ea3ff;--primary-hover:#8bbcff;--accent:#8bbcff;--logo-blue:#238dfa;--text:#e9edf1;--text-muted:#b3bcc6;--text-subtle:#8b95a1;--success:#4dcb9d;--warning:#ecb351;--error:#f08a85;--on-primary:#0b0f14;--topbar:#0b0f14eb;--glass:#0a0f14cc;--warn-wash:#2a2111;--tag-blocks:#f2a26b;--tag-python:#93c5fd;--tag-java:#fca5a5;--fc-line:#fff;--fc-stroke:transparent;--fc-terminal:#b3bcc6;--fc-process:#8bbcff;--fc-decision:#ecb351;--code-bg:#0a0f14;--w-light:400;--w-display:750;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0f14;--surface:#141a21;--surface-raised:#1b222b;--border:#2e3742;--line-soft:#252d37;--grid:#ffffff06;--border-control:#647285;--primary:#5ea3ff;--primary-hover:#8bbcff;--accent:#8bbcff;--logo-blue:#238dfa;--text:#e9edf1;--text-muted:#b3bcc6;--text-subtle:#8b95a1;--success:#4dcb9d;--warning:#ecb351;--error:#f08a85;--on-primary:#0b0f14;--topbar:#0b0f14eb;--glass:#0a0f14cc;--warn-wash:#2a2111;--tag-blocks:#f2a26b;--tag-python:#93c5fd;--tag-java:#fca5a5;--fc-line:#fff;--fc-stroke:transparent;--fc-terminal:#b3bcc6;--fc-process:#8bbcff;--fc-decision:#ecb351;--code-bg:#0a0f14;--w-light:400;--w-display:750;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px;overflow:hidden}@media (width>=1200px){html{font-size:17px}}@media (width>=1600px){html{font-size:18px}}@media (width>=2000px){html{font-size:19px}}body{height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);font-size:1rem;line-height:1.6;overflow:hidden}#root{overscroll-behavior:none;-webkit-overflow-scrolling:touch;height:100%;overflow:hidden auto}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:44px;height:44px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.screen{background-color:var(--bg);background-image:radial-gradient(80% 55% at 50% -5%,#238dfa2e 0%,#0000 65%),linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:auto,40px 40px,40px 40px;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-top-color:#238dfa73;width:100%;padding:2.5rem 2rem}.logo,.logo-sm,.cert-logo,.verify-logo,.login-photo-logo,.complete-ring-logo{object-fit:contain;clip-path:polygon(17.5% 0,100% 0,100% 100%,0 100%,0 23%);background:0 0;padding:0}.logo{width:72px;height:68px;margin:0 auto 1.5rem;display:block}.logo-sm{width:42px;height:40px;margin:0}.card-title{text-align:center;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.card-eyebrow{text-align:center;color:var(--text-muted);margin-bottom:.25rem;font-size:.8rem;font-weight:700}.card-subtitle{color:var(--text-muted);text-align:center;margin-bottom:1.75rem;font-size:.95rem}.safety-card{text-align:center;max-width:420px}.safety-message{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1.5rem;padding:1.25rem 1.5rem}.safety-icon{width:2.5rem;height:2.5rem;color:var(--accent);margin:0 auto .75rem;display:block}.safety-primary{margin-bottom:.6rem;font-size:1.05rem;font-weight:600}.safety-secondary{color:var(--text-muted);font-size:.9rem}.progress-bar-track{background:var(--border);border-radius:3px;height:6px;margin-bottom:.6rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--primary), var(--accent));border-radius:3px;height:100%;transition:width .95s linear}.countdown-label{color:var(--text-subtle);min-height:1.3em;margin-bottom:1.25rem;font-size:.85rem}.ready-label{color:var(--success)}.login-photo-fade{transition:opacity .4s}.login-photo-out{opacity:0}.login-slide-dots{gap:.4rem;margin-top:.85rem;display:flex}.login-slide-dot{background:#ffffff4d;border-radius:50%;width:6px;height:6px;transition:background .3s,transform .3s}.login-slide-dot-active{background:#fff;transform:scale(1.3)}.login-photo-panel{display:none}.login-card-panel{justify-content:center;align-items:center;width:100%;padding:1.5rem;display:flex}@media (width>=860px){.login-screen{background:var(--bg);align-items:stretch;padding:0}.login-photo-panel{flex:0 0 48%;display:block;position:relative;overflow:hidden}.login-photo{object-fit:cover;object-position:center 30%;width:100%;height:100%;display:block}.login-photo-overlay{background:linear-gradient(#0a0f1433 0%,#0a0f1459 45%,#0a0f14e0 100%);flex-direction:column;justify-content:flex-end;padding:2.5rem;display:flex;position:absolute;inset:0}.login-photo-logo{object-fit:contain;width:52px;height:52px;margin-bottom:1rem}.login-photo-tagline{color:#fff;margin-bottom:.4rem;font-size:1.45rem;font-weight:700;line-height:1.3}.login-photo-sub{color:#ffffffa6;font-size:.9rem}.login-card-panel{background-color:var(--bg);background-image:radial-gradient(80% 55% at 50% -5%,#238dfa24 0%,#0000 65%),linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:auto,40px 40px,40px 40px;flex:1;padding:2rem}}.login-card{max-width:420px}.login-form{flex-direction:column;gap:.65rem;margin-bottom:1.5rem;display:flex}.field-label{font-size:.9rem;font-weight:600}.code-input{background:var(--bg);border:2px solid var(--border-control);border-radius:var(--radius-sm);color:var(--text);font-size:1.3rem;font-family:var(--mono);letter-spacing:.1em;text-align:center;width:100%;padding:.8rem 1rem;transition:border-color .15s}.code-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #238dfa2e}.code-input.input-error{border-color:var(--error)}.code-input:disabled{opacity:.55}.error-msg{color:var(--error);text-align:center;font-size:.88rem}.login-hint{color:var(--text-subtle);text-align:center;font-size:.85rem}.code-chip{font-family:var(--mono);background:var(--surface-raised);color:var(--accent);border-radius:4px;padding:.1rem .45rem;font-size:.88rem}.btn{border-radius:var(--pill);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;min-height:48px;padding:.65rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-raised);color:var(--text)}.btn-block{width:100%;min-height:52px;font-size:1.05rem}.btn-sm{min-height:44px;padding:.35rem 1rem;font-size:.875rem;font-weight:600}.btn-label-short{display:none}@media (width<=700px){.btn-label-full{display:none}.btn-label-short{display:inline}}.dashboard{flex-direction:column;min-height:100vh;display:flex}.dash-header{background:var(--topbar);-webkit-backdrop-filter:saturate(1.2)blur(6px);border-bottom:1px solid var(--border);color:var(--text);z-index:100;align-items:center;gap:1rem;min-height:64px;padding:.6rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0}.dash-header .dash-welcome{color:var(--text)}.dash-header .dash-progress-badge{background:var(--surface);border-color:var(--border);color:var(--text-muted)}.dash-header .dash-xp-badge{color:var(--primary);background:#238dfa1a;border-color:#238dfa4d}.dash-header-right{align-items:center;gap:.85rem;margin-left:auto;display:flex}.dash-welcome{font-size:.95rem;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.badge-staff,.badge-supervisor{background:var(--primary);color:var(--on-primary)}.track-layout{flex:1;min-height:0;display:flex;overflow:hidden}.track-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;width:272px;padding:1.25rem 0 2rem;overflow-y:auto}.track-content{background-color:var(--bg);background-image:radial-gradient(ellipse 80% 55% at 50% -5%, #238dfa12 0%, transparent 65%), linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:0 0,-1px -1px,-1px -1px;background-size:auto,64px 64px,64px 64px;flex:1;padding:2.5rem clamp(.85rem,3vw,2.5rem);overflow-y:auto}.track-content-center{justify-content:center;align-items:center;min-height:60vh;display:flex}.dash-progress-badge{font-family:var(--mono);font-variant-numeric:tabular-nums;background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:20px;padding:.2rem .65rem;font-size:.78rem;font-weight:700}.dash-xp-badge{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--primary);background:#238dfa26;border:1px solid #238dfa59;border-radius:20px;padding:.2rem .65rem;font-size:.78rem;font-weight:700}.track-section-header{text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-top:.5rem;padding:.45rem 1.25rem .35rem;font-size:.7rem;font-weight:700}.sidebar-item{align-items:flex-start;gap:.7rem;padding:.55rem 1.25rem;transition:background .12s;display:flex}.sidebar-item-active{border-left:3px solid var(--primary);background:#238dfa1a;padding-left:calc(1.25rem - 3px)}.sidebar-item-done{opacity:.65;cursor:pointer}.sidebar-item-done:hover{opacity:1;background:var(--surface-raised)}.sidebar-item-active{cursor:pointer}.sidebar-item-locked{opacity:.38}.sidebar-item-next{opacity:.75}.sidebar-item-viewing{opacity:1!important;border-left:3px solid var(--accent)!important;background:#74b3fb14!important;padding-left:calc(1.25rem - 3px)!important}.sidebar-bonus-section{border-top:1px solid var(--border);margin-top:.75rem}.sidebar-bonus-header{color:var(--text-muted)}.sidebar-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;font-size:.7rem;font-weight:700;display:flex}.sidebar-icon-done{background:var(--success);color:var(--on-primary)}.sidebar-icon-active{background:var(--primary);color:var(--on-primary)}.sidebar-icon-next{border:2px solid var(--primary);color:var(--primary);background:0 0}.sidebar-icon-locked{background:var(--border);color:var(--text-subtle)}.sidebar-item-body{flex-direction:column;gap:.1rem;display:flex}.sidebar-item-label{font-size:.85rem;font-weight:500;line-height:1.3}.sidebar-here{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.sidebar-break{align-items:center;gap:.5rem;padding:.25rem 1.25rem;display:flex}.sidebar-break-line{background:var(--border);flex:1;height:1px}.sidebar-break-label{color:var(--text-subtle);white-space:nowrap;font-size:.72rem}.module-view{flex-direction:column;gap:1.1rem;width:100%;max-width:min(1280px,100%);margin:0 auto;display:flex}.module-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.mod-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.mod-tag-section{background:var(--surface-raised);color:var(--text-muted)}.mod-tag-python{color:var(--tag-python);background:#3b82f61f}.mod-tag-java{color:var(--tag-java);background:#ef44441a}.module-title{letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:800}.module-goal{color:var(--text-muted);margin:0;font-size:1rem;line-height:1.55}.module-section-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin-bottom:-.4rem;font-size:.72rem;font-weight:500}.module-teach{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-muted);padding:1rem 1.25rem;font-size:.95rem;line-height:1.65}.editor-placeholder{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 2rem;display:flex}.editor-placeholder-icon{font-size:1.5rem;font-family:var(--mono);color:var(--border);margin-bottom:.25rem}.editor-placeholder-title{color:var(--text-muted);font-size:.95rem;font-weight:700}.editor-placeholder-body{color:var(--text-subtle);max-width:420px;font-size:.88rem;line-height:1.55}.module-hint{color:var(--text-subtle);margin:0;font-size:.8rem}.module-hint-fail{color:var(--warning);white-space:pre-wrap;font-size:.82rem;line-height:1.55;display:block}.module-already-done{color:var(--success);border-radius:var(--radius-sm);background:#4dcb9d14;border:1px solid #4dcb9d59;padding:.35rem .9rem;font-size:.85rem;font-weight:600}.break-view{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;width:100%;max-width:560px;min-height:65vh;margin:0 auto;display:flex}.break-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-subtle);font-size:.75rem;font-weight:700}.break-timer{font-variant-numeric:tabular-nums;color:var(--primary);letter-spacing:.04em;font-size:5rem;font-weight:800;line-height:1}.break-subtext{color:var(--text-muted);font-size:.92rem;line-height:1.6}.break-bar{background:var(--border);border-radius:2px;width:260px;height:4px;overflow:hidden}.break-bar-fill{background:var(--primary);border-radius:2px;height:100%;transition:width 1s linear}.complete-view{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;max-width:520px;margin:0 auto;padding:3rem 2rem;display:flex}.complete-ring{border:6px solid var(--primary);border-radius:50%;justify-content:center;align-items:center;width:140px;height:140px;display:flex}.complete-ring-logo{object-fit:contain;width:80px;height:80px}.complete-heading{margin:0;font-size:1.75rem;font-weight:800}.complete-text{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.65}.complete-text-muted{color:var(--text-subtle);font-size:.85rem}@media (width<=860px){.safety-card{max-width:480px}}@media (width<=700px){.track-layout{flex-direction:column;overflow:visible}.track-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:230px;padding:.65rem 0;overflow-y:auto}.track-content{height:auto;padding:1.25rem .9rem;overflow-y:visible}.sidebar-progress-hub{gap:.35rem;padding:.5rem .85rem}.cert-ring-svg{width:72px!important;height:72px!important}.sidebar-progress-hub .badge-strip,.sidebar-progress-hub .badges-empty{display:none}.dash-header{flex-wrap:nowrap;gap:.45rem;padding:.6rem 1rem}.dash-header-right{flex-shrink:1;gap:.4rem;min-width:0;overflow:hidden}.dash-welcome,.dash-progress-badge{display:none}.logo-sm{flex-shrink:0;width:30px;height:30px}.badge-staff{display:none}.admin-main{padding:1.25rem 1rem}.admin-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:0;overflow:auto hidden}.admin-nav::-webkit-scrollbar{display:none}.admin-tab{white-space:nowrap;flex-shrink:0;padding:.55rem 1rem;font-size:.82rem}.module-view{gap:.85rem}.module-photo-banner{height:150px}.module-title{font-size:1.4rem}.module-teach{font-size:.9rem}.module-complete-row{flex-direction:column;align-items:flex-start}.viewing-banner{flex-direction:column;align-items:flex-start;gap:.5rem}.break-view{max-width:100%;padding:0 .5rem}.break-timer{font-size:3.2rem}.break-community-photo{width:100%;max-width:360px}.complete-view{gap:1rem;padding:1.5rem .75rem}.cert-card{padding:1.5rem 1.1rem 1.25rem}.cert-card-name{font-size:1.5rem}.cert-grad-banner{height:185px}.cert-actions{flex-direction:column;align-items:stretch}.cert-actions .btn{text-align:center;justify-content:center}.cert-community-img{height:155px}.mint-anim-wrap{min-height:55vh}}@media (width<=480px){.screen{padding:1rem .85rem}.card{padding:1.5rem 1rem}.login-card-panel{padding:1rem .85rem}.safety-card{max-width:100%}.btn{min-height:44px}.btn-sm{min-height:36px}.module-photo-banner{height:120px}.module-photo-caption{display:none}.module-title{font-size:1.2rem}.output-pre{padding:.65rem .75rem;font-size:.8rem}.hint-text{font-size:.82rem}.break-timer{font-size:2.6rem}.cert-grad-banner{height:155px}.cert-grad-title{font-size:1rem}.cert-grad-sub{font-size:.72rem}.cert-card-name{font-size:1.3rem}.cert-hash-value{font-size:.62rem}.cert-qr-img{width:95px;height:95px}.cert-community-img{height:130px}.mint-hash-scroll{max-width:260px;font-size:.62rem}.verify-wrap{padding:1.5rem 1rem}.verify-cert-name{font-size:1.3rem}.verify-hash-value{font-size:.62rem}.admin-tab{padding:.5rem .85rem;font-size:.78rem}.progress-table th,.progress-table td{padding:.35rem;font-size:.8rem}.dash-live-header{flex-direction:column;align-items:flex-start;gap:.35rem}.dash-refresh-row{justify-content:space-between;width:100%;margin-left:0}.codes-result-header{flex-wrap:wrap;gap:.4rem}.codes-result-actions{flex-shrink:0}.dash-settings-row{flex-wrap:wrap}.dash-settings-desc{width:100%}}@media (width<=360px){.dash-xp-badge{display:none}.module-photo-banner{height:100px}.break-timer{font-size:2.2rem}.cert-grad-banner{height:130px}.card-title{font-size:1.3rem}.module-title{font-size:1.1rem}}.admin-main{width:100%;max-width:76rem;margin:0 auto;padding:2rem clamp(1rem,4vw,2.5rem)}.admin-main-wide{max-width:76rem}.dash-header-column{padding-inline:max(clamp(1rem,4vw,2.5rem),50% - 38rem + clamp(1rem,4vw,2.5rem))}.admin-nav{border-bottom:2px solid var(--border);gap:.25rem;margin-bottom:2rem;display:flex}.admin-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:.6rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--text)}.admin-tab-active{border-bottom-color:var(--primary);color:var(--text)}.admin-section{flex-direction:column;gap:1rem;display:flex}.admin-heading{font-size:1.25rem;font-weight:700}.admin-desc{color:var(--text-muted);font-size:.9rem}.names-textarea{background:var(--bg);border:2px solid var(--border-control);border-radius:var(--radius-sm);color:var(--text);font-family:var(--mono);resize:vertical;width:100%;padding:.75rem 1rem;font-size:.95rem;transition:border-color .15s}.names-textarea:focus{border-color:var(--primary);outline:none}.names-textarea:disabled{opacity:.55}.codes-result{flex-direction:column;gap:.75rem;display:flex}.codes-result-header{justify-content:space-between;align-items:center;display:flex}.codes-count{color:var(--success);font-size:.88rem;font-weight:600}.codes-table{border-collapse:collapse;width:100%;font-size:.9rem}.codes-table th{text-align:left;border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.5rem .75rem;font-size:.8rem}.codes-table td{border-bottom:1px solid var(--border);color:var(--text);padding:.55rem .75rem}.codes-table tr:last-child td{border-bottom:none}.codes-table tr:hover td{background:var(--surface-raised)}.code-date{color:var(--text-subtle);font-size:.82rem}.csv-upload-row{align-items:center;gap:.75rem;display:flex}.csv-label{cursor:pointer;display:inline-block}.csv-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.preview-banner{color:#0a0f14;background:#ecb351;justify-content:center;align-items:center;gap:1rem;padding:.6rem 1.25rem;font-size:.88rem;font-weight:600;display:flex}.preview-banner .btn-ghost{color:#0a0f14;border-color:#00000040}.preview-banner .btn-ghost:hover{background:#0000001a}.progress-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.progress-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.88rem}.progress-table th{border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:center;padding:.45rem .5rem;font-size:.75rem}.progress-table th.pt-name{text-align:left}.progress-table td{border-bottom:1px solid var(--border);text-align:center;padding:.45rem .5rem}.progress-table tr:last-child td{border-bottom:none}.progress-table tr:hover td{background:var(--surface-raised)}.pt-name-cell{flex-direction:column;gap:.1rem;display:flex;text-align:left!important}.pt-fullname{font-weight:600}.pt-xp{color:var(--text-muted);font-size:.78rem}.mod-dot{vertical-align:middle;border-radius:50%;width:14px;height:14px;display:inline-block}.mod-dot-done{background:var(--success)}.mod-dot-started{background:var(--warning)}.mod-dot-none{background:var(--border)}.cert-ready{color:var(--success);font-size:.82rem;font-weight:700}.cert-pending{color:var(--text-subtle);font-size:.82rem}.pt-reset{width:210px}.pt-reset-cell{white-space:nowrap;text-align:right!important}.pt-reset-cell .btn-sm+.btn-sm{margin-left:.35rem}.progress-table th.pt-name,.progress-table td.pt-name-cell,.progress-table th.pt-reset,.progress-table td.pt-reset-cell{z-index:2;background:var(--bg);position:sticky}.progress-table th.pt-name,.progress-table td.pt-name-cell{left:0}.progress-table th.pt-reset,.progress-table td.pt-reset-cell{right:0}.progress-table td.pt-name-cell{box-shadow:1px 0 0 var(--border)}.progress-table td.pt-reset-cell{box-shadow:-1px 0 0 var(--border)}.progress-table tr:hover td.pt-name-cell,.progress-table tr:hover td.pt-reset-cell{background:var(--surface-raised)}.pt-row-stuck td.pt-name-cell,.pt-row-stuck td.pt-reset-cell{background:var(--warn-wash)!important}.meter{align-items:center;gap:.5rem;display:inline-flex}.meter-track{background:var(--surface);border-radius:4px;gap:2px;padding:2px;display:inline-flex}.meter-seg{background:var(--border);border-radius:1px;width:9px;height:14px;display:inline-block}.meter-seg-done{background:var(--success)}.meter-seg-started{background:var(--warning)}.meter-seg-none{background:var(--border)}.meter-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.pt-expand{cursor:pointer;color:inherit;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;display:inline-flex}.pt-expand:hover .pt-fullname{color:var(--accent)}.pt-caret{border-left:5px solid var(--text-subtle);border-top:4px solid #0000;border-bottom:4px solid #0000;flex-shrink:0;width:0;height:0;transition:transform .15s}.pt-caret-open{transform:rotate(90deg)}.pt-code{color:var(--text-subtle);letter-spacing:.04em;padding-left:.9rem;font-size:.72rem;display:block}.pt-detail-row td{padding:.6rem .75rem!important}.pt-detail{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pt-detail-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-size:.72rem}.pt-detail-mods{gap:3px;display:flex}.pt-detail-age{color:var(--text-muted);margin-left:auto;font-size:.78rem}.pt-detail-attempts{color:var(--warning);width:100%;font-size:.78rem}.pt-struggle-tag{color:var(--warning);background:#ecb3512e;border-radius:999px;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.mod-pill{background:var(--border);width:22px;height:22px;color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;font-size:.72rem;font-weight:600;display:inline-flex}.mod-pill-done{color:#052e21;background:#4dcb9d}.mod-pill-started{color:#3a2705;background:#ecb351}.dash-filters{flex-wrap:wrap;gap:.4rem;display:flex}.dash-filter{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.82rem;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.dash-filter:hover{color:var(--text)}.dash-filter-count{font-variant-numeric:tabular-nums;color:var(--text-subtle);font-size:.72rem;font-weight:700}.dash-filter-on{background:var(--surface-raised);border-color:var(--primary);color:var(--text)}.dash-filter-on .dash-filter-count{color:var(--text)}.dash-filter-stuck.dash-filter-on{border-color:var(--warning)}.dash-filter-active.dash-filter-on{border-color:var(--success)}.dash-filter-complete.dash-filter-on{border-color:var(--primary)}.publish-controls{align-items:center;gap:.6rem;display:flex}.publish-field{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.82rem;display:inline-flex}.publish-field input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:3.4rem;color:var(--text);font:inherit;padding:.3rem .45rem;font-size:.85rem}.dash-filter-archived.dash-filter-on{border-color:var(--text-muted)}.module-locked{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--radius-sm);padding:1rem 1.1rem}.module-locked-title{margin-bottom:.35rem;font-weight:700;display:block}.module-locked-text{color:var(--text-muted);font-size:.9rem}.cert-held-notice{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);color:var(--text-muted);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.table-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.table-search{flex:220px;align-items:center;gap:.4rem;min-width:0;display:flex}.table-search-input{background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);min-width:0;color:var(--text);font:inherit;flex:auto;padding:.5rem .75rem;font-size:.9rem}.table-search-input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.table-search-clear{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:.82rem}.table-search-clear:hover{color:var(--text)}.table-toolbar-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.table-search-count{color:var(--text-muted);font-size:.82rem}.table-pagesize{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.82rem;display:inline-flex}.table-pagesize select{background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);color:var(--text);font:inherit;padding:.35rem .5rem;font-size:.85rem}.pager{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:.75rem;display:flex}.pager-range{color:var(--text-muted);font-size:.85rem}.pager-controls{align-items:center;gap:.75rem;display:flex}.pager-page{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.btn-reset{color:var(--error);opacity:.75}.btn-reset:hover:not(:disabled){opacity:1}.btn-archive{color:var(--text-muted)}.btn-archive:hover:not(:disabled){color:var(--text)}.dash-archive-all{margin-left:auto}.btn-delete{color:var(--error);opacity:.85;font-weight:600}.btn-delete:hover:not(:disabled){opacity:1;text-decoration:underline}.progress-legend{flex-wrap:wrap;align-items:center;gap:.4rem;padding-top:.5rem;display:flex}.progress-legend .meter-seg{margin-right:.1rem}.progress-legend-hint{color:var(--text-subtle);margin-left:auto}.cm-editor,.cm-editor .cm-gutters,.cm-editor .cm-scroller{background-color:var(--code-bg)}.cm-editor .cm-gutters{border-right:1px solid #252d37}.cm-editor .cm-activeLine,.cm-editor .cm-activeLineGutter{background-color:#ffffff09}.cm-editor .cm-cursor{border-left-color:#e9edf1}.cm-editor .cm-line.cm-locked-line{opacity:.5}.cm-editor .cm-line.cm-editable-line{box-shadow:inset 2px 0 0 var(--success);background:#4dcb9d1f}.editor-lock-note{color:var(--text-subtle);margin:.5rem 0 0;font-size:.8rem;line-height:1.55}.module-expected{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--radius-sm);margin:0;padding:.85rem 1.1rem}.module-expected-group+.module-expected-group{margin-top:.75rem}.module-expected-when{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin-bottom:.3rem;font-size:.75rem}.module-expected-lines{font-family:var(--mono);color:var(--text);background:var(--bg);border-radius:var(--radius-sm);white-space:pre-wrap;margin:0;padding:.6rem .8rem;font-size:.9rem;line-height:1.55;overflow-x:auto}.module-expected-note{color:var(--text-muted);margin:.7rem 0 0;font-size:.85rem;line-height:1.6}.module-task{color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);margin:0;padding:.85rem 1.1rem;font-size:.95rem;line-height:1.6}.pyodide-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:700}.pyodide-loading{color:var(--warning);background:#ecb35126}.pyodide-ready{color:var(--success);background:#4dcb9d26}.pyodide-error{color:var(--error);background:#e96c6726}.code-editor-cm{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:120px;transition:border-color .15s;overflow:hidden}.code-editor-cm:focus-within{border-color:var(--primary)}.code-editor-cm .cm-editor{min-height:120px}.code-editor{background:var(--code-bg);border:1px solid var(--border-control);border-radius:var(--radius-sm);color:#e6edf3;width:100%;font-family:var(--mono);resize:vertical;tab-size:4;min-height:120px;padding:.9rem 1rem;font-size:.9rem;line-height:1.55;transition:border-color .15s}.code-editor:focus{border-color:var(--primary);outline:none}.stdin-editor{background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius-sm);width:100%;color:var(--text);font-family:var(--mono);resize:vertical;padding:.65rem .9rem;font-size:.88rem;transition:border-color .15s}.stdin-editor:focus{border-color:var(--accent);outline:none}.stdin-hint{color:var(--text-subtle);text-transform:none;letter-spacing:0;font-weight:400}.run-bar{align-items:center;gap:.75rem;display:flex}.btn-run{background:var(--success);color:var(--on-primary);border-radius:var(--pill);cursor:pointer;border:none;min-height:48px;padding:.55rem 1.6rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:opacity .15s,background .15s}.btn-run:hover:not(:disabled){opacity:.88}.btn-run:disabled{opacity:.45;cursor:default}.run-hint{color:var(--text-subtle);font-size:.82rem}.output-console{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.output-console-error{border-color:#e96c6773}.output-console-pass{border-color:#4dcb9d66}.output-label{text-transform:uppercase;letter-spacing:.1em;background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-muted);padding:.4rem .9rem;font-size:.7rem;font-weight:700}.output-console-error .output-label{color:var(--error)}.output-pre{font-family:var(--mono);color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0;padding:.85rem 1rem;font-size:.88rem;line-height:1.55}.output-console-error .output-pre{color:var(--error)}.output-empty{color:var(--text-subtle);font-style:italic}.output-badge-pass,.output-badge-fail,.output-badge-checking{vertical-align:middle;text-transform:none;letter-spacing:0;border-radius:999px;margin-left:.55rem;padding:.1rem .5rem;font-size:.68rem;font-weight:700;display:inline-block}.output-badge-pass{color:var(--success);background:#4dcb9d26}.output-badge-fail{color:var(--warning);background:#ecb35126}.output-badge-checking{color:var(--text-muted);font-weight:400}.hints-section{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);flex-direction:column;gap:.55rem;padding:.85rem 1.1rem;display:flex}.hint-item{align-items:flex-start;gap:.75rem;display:flex}.hint-num{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;min-width:44px;padding-top:.15rem;font-size:.7rem;font-weight:700}.hint-text{color:var(--text);font-family:inherit;font-size:.88rem;line-height:1.5}.hint-text code,.hint-text pre{font-family:var(--mono);background:var(--surface-raised);border-radius:3px;padding:.05rem .3rem;font-size:.85em}.btn-hint{color:var(--accent);border:1px solid #74b3fb4d;align-self:flex-start}.btn-hint:hover:not(:disabled){background:#74b3fb14}.hints-exhausted{color:var(--text-subtle);font-size:.82rem;font-style:italic}.viewing-banner{border-radius:var(--radius-sm);color:var(--accent);background:#74b3fb1a;border:1px solid #74b3fb4d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;padding:.6rem 1rem;font-size:.85rem;display:flex}.viewing-banner .btn-ghost{color:var(--accent);border-color:#74b3fb66}.module-complete-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem;padding-top:.5rem;display:flex}.sidebar-progress-hub{border-bottom:1px solid var(--border);flex-direction:column;align-items:center;gap:.65rem;margin-bottom:.5rem;padding:1rem 1rem .5rem;display:flex}.sidebar-track-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin-top:-.4rem;font-size:.65rem;font-weight:700}.cert-ring-svg{width:110px;height:110px;display:block}.ring-wedge-empty{fill:var(--border);transition:fill .45s}.ring-wedge-filled{fill:var(--primary);transition:fill .45s}.ring-wedge-filled-alt{fill:var(--logo-blue);transition:fill .45s}.ring-wedge-platinum{transition:fill .45s}.ring-center{fill:var(--bg)}.ring-logo-spin{transform-box:fill-box;transform-origin:50%;animation:9s linear infinite ring-logo-spin}@keyframes ring-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ring-logo-spin{animation:none}}.ring-count{fill:var(--text-muted);font-size:11px;font-weight:700;font-family:var(--sans)}.xp-wrap{width:100%}.xp-row{justify-content:space-between;align-items:baseline;margin-bottom:.3rem;display:flex}.xp-level-name{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.xp-total{color:var(--text-muted);font-size:.72rem}.xp-track{background:var(--border);border-radius:999px;height:6px;overflow:hidden}.xp-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .5s}.xp-fill-max{background:var(--success)}.badges-empty{color:var(--text-subtle);text-align:center;padding:.25rem 0;font-size:.75rem}.badge-strip{flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.badge-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.badge-chip-icon{font-size:.75rem}.badge-chip-label{display:none}.badge-chip-blue{color:var(--accent);background:#74b3fb26;border-color:#74b3fb4d}.badge-chip-orange{color:var(--warning);background:#ecb35126;border-color:#ecb3514d}.badge-chip-green{color:var(--success);background:#4dcb9d26;border-color:#4dcb9d4d}.badge-chip-purple{color:var(--primary);background:#238dfa26;border-color:#238dfa4d}.badge-chip-platinum{color:#151c23;text-shadow:0 1px #ffffff80;background:linear-gradient(135deg,#f1f3f5 0%,#c6cbd2 45%,#aab0ba 55%,#eef0f2 100%);border-color:#c6cbd2}.complete-view .badge-strip{justify-content:center;gap:.5rem;margin-top:.5rem}.complete-view .badge-chip{padding:.3rem .85rem;font-size:.78rem}.complete-view .badge-chip-label{display:inline}.mascot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:.85rem;padding:.75rem 1rem;display:flex}.mascot-svg{flex-shrink:0;width:52px;height:65px}.mascot-bubble{flex:1;align-items:center;display:flex}.mascot-msg{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.5}.msv-struct{stroke:#818b98}.msv-antenna{fill:var(--primary)}.msv-head{fill:#1a2b4a;transition:fill .3s}.msv-visor{fill:#74b3fb40}.msv-eye{fill:#74b3fbb3}.msv-pupil{fill:#fff}.msv-body{fill:#131e33}.msv-light{fill:#333d47;transition:fill .3s}.msv-light-on{fill:var(--success)}.msv-light-err{fill:var(--error)}.mascot-face-pass .msv-head,.mascot-face-complete .msv-head{fill:#12302a}.mascot-face-error .msv-head{fill:#2e1a1a}.mascot-face-pass .msv-antenna,.mascot-face-complete .msv-antenna{fill:var(--success)}.complete-view{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 1.5rem;display:flex}.complete-view .cert-ring-svg{width:160px;height:160px}.leaderboard{width:100%;max-width:380px}.leaderboard-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem;font-size:.9rem;font-weight:700}.leaderboard-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.leaderboard-row{background:var(--surface);border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.45rem .85rem;display:flex}.lb-rank{color:var(--text-muted);text-align:right;min-width:1.2rem;font-size:.72rem;font-weight:700}.lb-name{flex:1;font-size:.88rem;font-weight:600}.lb-xp{color:var(--primary);font-size:.78rem;font-weight:700}.lb-mods{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:.75rem}.lb-finished{letter-spacing:.06em;text-transform:uppercase;color:var(--success);font-size:.7rem;font-weight:700}.leaderboard-row-finished{border-left:3px solid var(--success)}.leaderboard-note{color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.mint-anim-wrap{justify-content:center;align-items:center;min-height:65vh;display:flex}.mint-phase{flex-direction:column;align-items:center;gap:1.5rem;animation:.35s mint-fade-in;display:flex}@keyframes mint-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mint-phase-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-subtle);font-size:.78rem;font-weight:700}.mint-chain{align-items:center;gap:0;display:flex}.mint-chain-item{align-items:center;display:flex}.mint-block{border:2px solid var(--primary);opacity:0;background:#238dfa1a;border-radius:6px;width:44px;height:44px;animation:.3s forwards mint-block-appear;display:block}@keyframes mint-block-appear{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.mint-connector{background:var(--primary);opacity:0;width:28px;height:3px;animation:.25s forwards mint-connector-appear;display:block}@keyframes mint-connector-appear{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.mint-hash-scroll{font-family:var(--mono);color:var(--primary);word-break:break-all;text-align:center;opacity:.85;max-width:340px;font-size:.78rem;line-height:1.5}.mint-lock-phase{gap:1.1rem}.mint-lock-svg{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards mint-lock-drop}@keyframes mint-lock-drop{0%{opacity:0;transform:scale(.4)translateY(-20px)}to{opacity:1;transform:scale(1)translateY(0)}}.mint-lock-label{color:var(--success);font-size:1.2rem;font-weight:800;animation:.4s .35s both mint-fade-in}.cert-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius);flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:480px;padding:2rem 2rem 1.5rem;display:flex}.cert-card-header{align-items:center;gap:.85rem;width:100%;display:flex}.cert-logo{object-fit:contain;width:44px;height:44px}.cert-card-title-group{flex-direction:column;gap:.1rem;display:flex}.cert-card-issuer{font-size:1rem;font-weight:800}.cert-card-subtitle-text{color:var(--text-muted);font-size:.78rem}.cert-card-name{letter-spacing:-.02em;color:var(--text);text-align:center;font-size:2rem;font-weight:800}.cert-platinum-seal{letter-spacing:.04em;text-transform:uppercase;color:#151c23;background:linear-gradient(135deg,#f1f3f5 0%,#c6cbd2 45%,#aab0ba 55%,#eef0f2 100%);border:1px solid #c6cbd2;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.3rem .9rem;font-size:.75rem;font-weight:700;display:flex;box-shadow:0 1px 3px #00000040}.cert-platinum-seal-icon{color:#5b6472}.cert-card-body{color:var(--text-muted);text-align:center;font-size:.95rem;line-height:1.5}.cert-card-date{color:var(--text-subtle);font-size:.82rem}.cert-hash-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:.6rem .85rem}.cert-hash-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:.25rem;font-size:.65rem;font-weight:700}.cert-hash-value{font-family:var(--mono);color:var(--primary);word-break:break-all;font-size:.72rem;line-height:1.5}.cert-qr-block{flex-direction:column;align-items:center;gap:.35rem;display:flex}.cert-qr-img{width:120px;height:120px;image-rendering:pixelated;border-radius:6px}.cert-qr-caption{color:var(--text-subtle);font-size:.7rem}.cert-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.cert-explainer{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);width:100%;max-width:480px;padding:1rem 1.25rem}.cert-explainer-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;font-weight:700}.cert-explainer-body{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.6}.mint-error{color:var(--error);text-align:center;max-width:420px;font-size:.92rem}.verify-screen{align-items:flex-start;padding:0}.verify-wrap{flex-direction:column;gap:1.75rem;width:100%;max-width:600px;margin:0 auto;padding:2.5rem 1.5rem;display:flex}.verify-brand{align-items:center;gap:.75rem;display:flex}.verify-logo{object-fit:contain;width:36px;height:36px}.verify-brand-name{font-size:1.1rem;font-weight:800}.verify-center{flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;display:flex}.verify-loading-text{color:var(--text-muted);font-size:.88rem}.verify-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--success);border-radius:var(--radius);flex-direction:column;gap:.85rem;padding:2rem 1.75rem;display:flex}.verify-card-invalid{border-top-color:var(--error)}.verify-valid-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--success);background:#4dcb9d1a;border:1px solid #4dcb9d4d;border-radius:999px;align-self:flex-start;padding:.2rem .65rem;font-size:.72rem;font-weight:700}.verify-invalid-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--error);background:#e96c671a;border:1px solid #e96c674d;border-radius:999px;align-self:flex-start;padding:.2rem .65rem;font-size:.72rem;font-weight:700}.verify-cert-name{font-size:1.65rem;font-weight:800}.verify-cert-title{color:var(--text-muted);font-size:.95rem;line-height:1.5}.verify-cert-date{color:var(--text-subtle);font-size:.85rem}.verify-hash-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .9rem}.verify-hash-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:.2rem;font-size:.65rem;font-weight:700}.verify-hash-value{font-family:var(--mono);color:var(--primary);word-break:break-all;font-size:.72rem;line-height:1.5}.verify-notice{color:var(--text-subtle);margin:0;font-size:.82rem;line-height:1.6}.verify-invalid-text{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.6}.module-photo-banner{border-radius:var(--radius-sm);width:100%;height:190px;margin-bottom:-.15rem;position:relative;overflow:hidden}.module-photo-img{object-fit:cover;object-position:center 35%;width:100%;height:100%;display:block}.module-photo-overlay{background:linear-gradient(90deg,#0a0f14d1 0%,#0a0f1459 55%,#0a0f140d 100%);align-items:flex-end;padding:.75rem 1rem;display:flex;position:absolute;inset:0}.module-photo-caption{color:#ffffffa6;max-width:55%;font-size:.72rem;font-style:italic;line-height:1.4}.break-community-photo{border-radius:var(--radius-sm);opacity:.8;width:280px;overflow:hidden}.break-community-photo img{object-fit:cover;object-position:center 30%;width:100%;height:170px;display:block}.break-community-caption{background:var(--surface);color:var(--text-muted);text-align:center;padding:.45rem .75rem;font-size:.72rem;font-style:italic;line-height:1.45}.cert-grad-banner{border-radius:var(--radius);width:100%;max-width:480px;height:240px;position:relative;overflow:hidden}.cert-grad-img{object-fit:cover;object-position:center 20%;width:100%;height:100%;display:block}.cert-grad-overlay{background:linear-gradient(#0a0f141a 0%,#0a0f14e0 100%);flex-direction:column;justify-content:flex-end;padding:1.5rem;display:flex;position:absolute;inset:0}.cert-grad-title{color:#fff;margin-bottom:.3rem;font-size:1.3rem;font-weight:800}.cert-grad-sub{color:#ffffffb8;font-size:.82rem;line-height:1.5}.cert-community-strip{border-radius:var(--radius-sm);width:100%;max-width:480px;overflow:hidden}.cert-community-img{object-fit:cover;object-position:center 30%;width:100%;height:200px;display:block}.cert-community-caption{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);text-align:center;border-top:none;padding:.6rem .85rem;font-size:.78rem;font-style:italic;line-height:1.5}.wifi-notice{border-radius:var(--radius-sm);color:var(--warning);background:#ecb3511f;border:1px solid #ecb35159;align-items:flex-start;gap:.6rem;margin-bottom:1.25rem;padding:.7rem 1rem;font-size:.85rem;line-height:1.5;display:flex}.wifi-notice-icon{width:18px;height:18px;color:var(--warning);flex-shrink:0;margin-top:1px}.codes-result-actions{flex-wrap:wrap;gap:.5rem;display:flex}.dash-live-header{flex-wrap:wrap;align-items:baseline;gap:1rem;margin-bottom:.25rem;display:flex}.dash-live-header .admin-heading{margin-bottom:0}.dash-refresh-row{align-items:center;gap:.75rem;margin-left:auto;display:flex}.dash-refresh-age{color:var(--text-subtle);font-size:.8rem}.dash-stats-row{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.dash-stat{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:99px;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.85rem;display:inline-flex}.dash-stat-num{color:var(--text);font-weight:700}.dash-stat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-stat-dot-active{background:var(--success)}.dash-stat-dot-stuck{background:#ecb351}.dash-stat-active{color:var(--success)}.dash-stat-stuck{color:var(--warning)}.dash-stat-dim{color:var(--text-subtle)}.dash-settings-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem 0;display:flex}.dash-settings-label{color:var(--text);min-width:90px;font-size:.88rem;font-weight:600}.dash-settings-desc{color:var(--text-muted);font-size:.82rem}.admin-toggle{background:var(--border);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background .2s;position:relative}.admin-toggle-on{background:var(--primary)}.admin-toggle-knob{pointer-events:none;background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px}.admin-toggle-on .admin-toggle-knob{transform:translate(20px)}.pt-status{width:96px;text-align:left!important}.pt-meter{width:190px;text-align:left!important}.pt-meter-cell{white-space:nowrap;text-align:left!important}.pt-status-cell{text-align:left!important}.pt-badge{width:90px}.pt-badge-cell{text-align:center}.pt-actions{width:70px}.pt-row-stuck td{background:#ecb35114!important}.pt-row-active td{border-left:3px solid var(--success)}.pt-row-stuck td:first-child{border-left:3px solid #ecb351}.pt-status-chip{white-space:nowrap;border-radius:99px;padding:.15rem .5rem;font-size:.73rem;font-weight:600;display:inline-block}.pt-status-active{color:var(--success);background:#4dcb9d2e}.pt-status-complete{color:var(--accent);background:#238dfa38}.pt-status-stuck{color:var(--warning);background:#ecb3512e}.pt-status-idle,.pt-status-ns{background:var(--surface);color:var(--text-subtle);border:1px solid var(--border)}.admin-badge-chip{color:var(--primary);white-space:nowrap;background:#238dfa26;border-radius:99px;padding:.15rem .5rem;font-size:.73rem;font-weight:600;display:inline-block}.admin-badge-chip-platinum{color:#151c23;background:linear-gradient(135deg,#f1f3f5 0%,#c6cbd2 45%,#aab0ba 55%,#eef0f2 100%);margin-left:.35rem}.cert-bonus-tag{color:var(--text-subtle);white-space:nowrap;margin-top:.1rem;font-size:.68rem;display:block}.btn-award{color:var(--primary);opacity:.8;white-space:nowrap;font-size:.78rem}.nature-bg{z-index:-1;pointer-events:none;background-position:50%,50%,top;background-repeat:no-repeat;background-size:auto,auto,cover;transition:opacity .7s;position:absolute;inset:0}.login-card-panel{isolation:isolate;background:linear-gradient(160deg,#0a3a8c,#0b57c9);min-height:100svh;position:relative}.track-content{isolation:isolate;position:relative}.login-screen .login-card-panel .card,.safety-screen .login-card-panel .card{background:var(--glass);-webkit-backdrop-filter:blur(10px)}.btn-award:hover:not(:disabled){opacity:1}@media (width<=760px){.admin-main,.admin-main-wide{padding:1rem}.admin-nav{flex-wrap:wrap}.progress-scroll{overflow-x:visible}.progress-table,.codes-table{white-space:normal;width:100%;display:block}.progress-table thead,.codes-table thead{display:none}.progress-table tbody,.codes-table tbody{display:block}.progress-table tr,.codes-table tr{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:1fr auto;align-items:center;gap:.4rem .75rem;margin-bottom:.6rem;padding:.75rem;display:grid}.progress-table tr:hover td,.codes-table tr:hover td{background:0 0}.progress-table tr.pt-row-stuck{border-color:var(--warning)}.progress-table tr.pt-row-active{border-color:var(--success)}.pt-row-stuck td,.pt-row-stuck td.pt-name-cell,.pt-row-stuck td.pt-reset-cell{background:0 0!important}.pt-row-active td,.pt-row-stuck td:first-child{border-left:none}.progress-table td,.codes-table td{border-bottom:none;min-width:0;display:block;text-align:left!important;padding:0!important}.progress-table td.pt-name-cell,.progress-table td.pt-reset-cell{box-shadow:none;position:static;background:0 0!important}.progress-table td.pt-name-cell,.codes-table td[data-label=Name]{grid-column:1;font-weight:600}.progress-table td.pt-status-cell,.codes-table td[data-label=Join\ code]{grid-column:2;text-align:right!important}.progress-table td.pt-meter-cell,.progress-table td.pt-badge-cell,.progress-table td.pt-reset-cell,.codes-table td[data-label=Created],.codes-table td.pt-reset-cell{grid-column:1/-1}.progress-table td.pt-meter-cell:before,.progress-table td.pt-badge-cell:before,.codes-table td[data-label=Created]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin-bottom:.25rem;font-size:.7rem;display:block}.progress-table td.pt-reset-cell,.codes-table td.pt-reset-cell{gap:.5rem;display:flex;border-top:1px solid var(--border)!important;padding-top:.5rem!important}.pt-reset-cell .btn-sm{text-align:center;flex:auto}.pt-reset-cell .btn-sm+.btn-sm{margin-left:0}.pt-detail-row{display:block}.pt-detail-row td{grid-column:1/-1}.pt-detail-age{width:100%;margin-left:0}.table-toolbar-right{justify-content:space-between;width:100%;margin-left:0}.pager{flex-direction:column;align-items:stretch;gap:.6rem}.pager-controls{justify-content:space-between}.progress-legend-hint{width:100%;margin-left:0}}.solve-plan{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.9rem;padding:1rem 1.1rem;display:flex}.solve-plan-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.6rem;padding-bottom:.6rem;display:flex}.solve-plan-title{font-weight:700}.solve-plan-steps{color:var(--text-subtle);font-size:.8rem}.solve-plan-why{color:var(--text-muted);font-size:.9rem}.solve-plan-block{flex-direction:column;gap:.6rem;display:flex}.solve-plan-label{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.solve-plan-label-code{padding-top:.2rem}.solve-plan-num{background:var(--primary);width:20px;height:20px;color:var(--on-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.solve-plan-note{color:var(--text-subtle);font-size:.82rem}.fc-wrap{width:100%;overflow-x:auto}.fc-svg{width:100%;max-width:620px;height:auto;margin:0 auto;display:block}.fc-title{color:var(--text-subtle);margin-bottom:.25rem;font-size:.78rem}.fc-line{stroke:var(--fc-line);stroke-width:1.75px}.fc-arrowhead{fill:var(--fc-line)}.fc-label{fill:var(--fc-line);letter-spacing:.04em;font-size:11px;font-weight:700}.fc-text{fill:#0b1220;font-size:12px;font-weight:600}.fc-text-small{font-size:11.5px}.fc-terminal{fill:var(--fc-terminal);stroke:var(--fc-stroke);stroke-width:1px}.fc-process,.fc-io{fill:var(--fc-process);stroke:var(--fc-stroke);stroke-width:1px}.fc-decision{fill:var(--fc-decision);stroke:var(--fc-stroke);stroke-width:1px}.flow-key{color:var(--text-subtle);flex-wrap:wrap;gap:1rem;padding-top:.5rem;font-size:.75rem;display:flex}.flow-key span{align-items:center;gap:.4rem;display:inline-flex}.flow-key-shape{flex-shrink:0;width:20px;height:13px;display:inline-block}.flow-key-terminal{background:var(--fc-terminal);border:1px solid var(--fc-stroke);border-radius:50%/100%}.flow-key-io{background:var(--fc-process);border:1px solid var(--fc-stroke);transform:skew(-20deg)}.flow-key-process{background:var(--fc-process);border:1px solid var(--fc-stroke)}.flow-key-decision{background:var(--fc-decision);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);width:20px;height:16px}.flow-key-link{color:var(--accent);margin-left:auto}.pseudocode{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);color:var(--text);white-space:pre;padding:.75rem .9rem;font-size:.82rem;line-height:1.7;overflow-x:auto}.pseudocode-line{white-space:pre}@media (width<=760px){.solve-plan{padding:.85rem}.flow-node{padding:.4rem .7rem;font-size:.78rem}.flow-node-decision{width:100%;min-width:0;padding:1.4rem 2rem}.flow-branches{flex-direction:column;align-items:center;gap:.5rem}.flow-branch{flex:auto;width:100%}}.plan-editor{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font-family:var(--mono);resize:vertical;padding:.75rem .9rem;font-size:.82rem;line-height:1.7}.plan-editor:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.plan-editor::placeholder{color:var(--text-subtle)}.plan-editor-foot{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.4rem;display:flex}.plan-status{color:var(--text-subtle);font-size:.8rem}.plan-status-ready{color:var(--success)}.plan-editor-foot .btn{margin-left:auto}.plan-hidden{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:.85rem 1rem}.plan-hidden-text{color:var(--text-muted);font-size:.87rem}.plan-model{border-left:3px solid var(--accent);margin-top:.6rem;padding-left:.75rem}.plan-model-label{color:var(--text-subtle);margin-bottom:.35rem;font-size:.78rem}@media (width<=760px){.plan-editor-foot .btn{width:100%;margin-left:0}}.plan-examples{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.6rem;padding:.6rem .85rem}.plan-examples>summary{cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600}.plan-examples>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.plan-examples-note{color:var(--text-muted);margin:.5rem 0 .75rem;font-size:.82rem}.plan-examples-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.plan-example{flex-direction:column;gap:.5rem;min-width:0;display:flex}.plan-example-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-size:.78rem;font-weight:700}.pt-plans{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem;padding-top:.5rem;display:flex}.pt-plans-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-size:.72rem}.pt-plan-head{color:var(--text-muted);align-items:center;gap:.5rem;margin-bottom:.2rem;font-size:.78rem;font-weight:600;display:flex}.pt-plan-tag{background:var(--surface-raised);color:var(--text-subtle);border-radius:999px;padding:.05rem .4rem;font-size:.68rem;font-weight:700}.pt-plan-tag-solo{color:var(--success)}.pt-plan-text{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);white-space:pre-wrap;color:var(--text);max-height:260px;padding:.5rem .65rem;font-size:.76rem;line-height:1.6;overflow:auto}.solve-plan a,.plan-examples-note a{color:var(--accent)}.solve-plan-chain{color:var(--text-subtle);align-items:center;gap:.4rem;font-size:.75rem;display:inline-flex}.chain-step{border:1px solid var(--border);border-radius:999px;padding:.1rem .45rem}.chain-step-code{border-color:var(--primary);color:var(--text)}.chain-arrow{color:var(--text-subtle)}.solve-plan-transfer{color:var(--text-muted);border-left:3px solid var(--accent);padding-left:.75rem;font-size:.85rem}.solve-plan-transfer-label{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin-bottom:.2rem;font-size:.7rem;font-weight:700;display:block}.solve-plan-fundamental{color:var(--text);margin-top:.4rem;display:block}.flow-builder{flex-direction:column;gap:.6rem;display:flex}.flow-builder-empty{color:var(--text-subtle);font-size:.85rem}.flow-builder-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.flow-builder-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:.6rem;padding:.5rem .6rem;display:flex}.flow-builder-chip{flex-shrink:0;width:18px;height:12px;margin-top:.55rem}.flow-builder-chip-start,.flow-builder-chip-end{background:var(--text-muted);border-radius:50%/100%}.flow-builder-chip-io{background:var(--accent);transform:skew(-20deg)}.flow-builder-chip-process{background:var(--accent)}.flow-builder-chip-decision{background:var(--warning);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);height:16px}.flow-builder-fields{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.flow-builder-main{flex-wrap:wrap;gap:.4rem;display:flex}.flow-builder-main select,.flow-builder-branches input,.flow-builder-main input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;padding:.35rem .5rem;font-size:.82rem}.flow-builder-main input{flex:200px;min-width:0}.flow-builder-branches{border-left:2px solid var(--warning);flex-wrap:wrap;gap:.5rem;padding-left:.5rem;display:flex}.flow-builder-branches label{text-transform:uppercase;letter-spacing:.06em;color:var(--warning);flex:220px;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;display:flex}.flow-builder-branches input{text-transform:none;letter-spacing:normal;flex:1;min-width:0}.flow-builder-actions{flex-direction:column;gap:.2rem;display:flex}.flow-builder-actions button{border:1px solid var(--border);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:.15rem .4rem;font-size:.7rem}.flow-builder-actions button:hover:not(:disabled){color:var(--text);border-color:var(--text-subtle)}.flow-builder-actions button:disabled{opacity:.4;cursor:default}.flow-builder-remove{color:var(--error)!important}.flow-builder-add{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.flow-builder-add-label{color:var(--text-subtle);font-size:.78rem}.flow-builder-preview{border:1px dashed var(--border);border-radius:var(--radius-sm);margin-top:.6rem;padding:.6rem}.flow-builder-preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin-bottom:.3rem;font-size:.72rem}.plan-examples-tight{margin-top:.6rem}.pt-plan-flow{flex-direction:column;gap:.2rem;margin-bottom:.4rem;list-style:none;display:flex}.pt-plan-flow li{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.76rem;display:flex}.pt-plan-shape{background:var(--accent);flex-shrink:0;width:14px;height:10px}.pt-plan-shape-start,.pt-plan-shape-end{background:var(--text-muted);border-radius:50%/100%}.pt-plan-shape-io{transform:skew(-20deg)}.pt-plan-shape-decision{background:var(--warning);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);height:13px}.pt-plan-branches{color:var(--text-subtle)}@media (width<=760px){.flow-builder-row{flex-wrap:wrap}.flow-builder-actions{flex-direction:row;width:100%}.flow-builder-actions button{flex:1}}.solved-block{margin-top:.85rem}.solved-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin-bottom:.35rem;font-size:.72rem}.solved-code{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);color:var(--text);white-space:pre;padding:.7rem .85rem;font-size:.8rem;line-height:1.6;overflow-x:auto}.solved-note{color:var(--text-subtle);margin-top:.6rem;font-size:.82rem}.flow-builder-loops{flex-direction:column;gap:.15rem;width:100%;display:flex}.flow-builder-branches .flow-builder-loop{text-transform:none;letter-spacing:normal;color:var(--text-muted);cursor:pointer;flex:auto;align-items:center;gap:.4rem;font-size:.78rem;font-weight:400;display:flex}.flow-builder-branches .flow-builder-loop input[type=checkbox]{width:15px;min-width:15px;height:15px;accent-color:var(--warning);cursor:pointer;flex:none;margin:0;padding:0}@media (width<=760px){.fc-svg{min-width:520px}.fc-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.track-leaderboard{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1.5rem}.track-leaderboard .leaderboard{max-width:none}.leaderboard-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.leaderboard-summary{cursor:pointer;align-items:center;gap:.75rem;min-height:48px;padding:.5rem 1rem;list-style:none;display:flex}.leaderboard-summary::-webkit-details-marker{display:none}.leaderboard-summary:after{content:"";border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);width:.55rem;height:.55rem;margin-left:auto;transition:transform .2s;transform:rotate(45deg)}.leaderboard-dropdown[open]>.leaderboard-summary:after{transform:rotate(-135deg)}.leaderboard-summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.leaderboard-summary .leaderboard-heading{margin:0}.leaderboard-count{color:var(--text-subtle);font-size:.8rem}.leaderboard-dropdown>.leaderboard-note,.leaderboard-dropdown>.leaderboard-list{margin:0 1rem 1rem}@media (prefers-reduced-motion:reduce){.leaderboard-summary:after{transition:none}}.roster-notes{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;padding:.85rem 1rem;font-size:.9375rem;line-height:1.5}.roster-notes ul{margin:.4rem 0 0;padding-left:1.2rem}.roster-notes-summary{margin:0}.roster-notes-list{margin-top:.6rem}.roster-notes-list summary{cursor:pointer;align-items:center;min-height:32px;font-weight:600;display:flex}.codes-bulk-send{flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 1rem;display:flex}.dialog-email{word-break:break-all}.send-status{margin-top:.15rem;font-size:.8rem}.send-ok{color:var(--success)}.send-fail{color:var(--error)}.text-subtle{color:var(--text-subtle)}.dialog-backdrop{z-index:1000;background:#0a0f14b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius);flex-direction:column;gap:.9rem;width:100%;max-width:46rem;max-height:calc(100svh - 2rem);padding:1.5rem;display:flex}.dialog-title{margin:0;font-size:1.25rem}.dialog-text{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.55}.dialog-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:0;overflow-y:auto}.dialog-table{margin:0}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.dialog-actions .btn{min-height:48px}@media (width<=480px){.dialog{padding:1.1rem}.dialog-actions .btn{flex:auto}}.mod-tag-blocks{color:var(--tag-blocks);background:#b3561c1f}.module-teach-note,.module-fundamental{color:var(--text-muted);margin:.6rem 0 0;font-size:.9375rem;line-height:1.55}.module-fundamental{margin:0 0 1.1rem}.block-puzzle{flex-direction:column;gap:.9rem;margin-top:.5rem;display:flex}.block-puzzle-stage{grid-template-columns:1fr;gap:.9rem;display:grid}@media (width>=900px){.block-puzzle-stage{grid-template-columns:minmax(240px,2fr) 3fr;align-items:start}}.block-puzzle-maze{background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.maze-svg{width:100%;max-height:300px;display:block}.maze-wall{fill:#0a0f14}.maze-path{fill:#5b7089;stroke:#0a0f14;stroke-width:.03px}.maze-flag line{stroke:#fff;stroke-width:.07px;stroke-linecap:round}.maze-flag path{fill:#fff}.maze-robot{transition:transform .3s}.maze-robot circle{fill:#ffd166;stroke:#0a0f14;stroke-width:.05px}.maze-robot-nose{fill:#0a0f14}.maze-robot-bump circle{fill:#ffb4ab}@media (prefers-reduced-motion:reduce){.maze-robot{transition:none}}.block-puzzle-controls{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.block-puzzle-controls .btn-run{min-width:96px;min-height:48px}.block-puzzle-limit{color:var(--text-subtle);margin:0;font-size:.875rem}.block-puzzle-workspace{border:1px solid var(--border-control);border-radius:var(--radius);height:420px;min-height:320px;overflow:hidden}@media (width<=700px){.block-puzzle-workspace{height:380px}}.block-puzzle-msg{display:block}.block-puzzle-solved{border:1px solid var(--success);border-radius:var(--radius);background:var(--surface);padding:.9rem 1rem}.block-puzzle-solved-text{color:var(--text-muted);margin:.5rem 0;font-size:.9375rem;line-height:1.55}.block-puzzle-python{background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius-sm);margin:.4rem 0;padding:.75rem}.what-next{text-align:left;width:100%;max-width:46rem;margin:1.5rem auto 0}.what-next-heading{margin:0 0 .5rem;font-size:1.15rem}.what-next-intro,.what-next-source{color:var(--text-muted);margin:0 0 1rem;font-size:.9375rem;line-height:1.55}.what-next-pillar{border-top:1px solid var(--border);margin-top:.9rem;padding-top:.9rem}.what-next-pillar-name{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0;font-size:1rem}.what-next-quote{color:var(--text-muted);margin:.25rem 0 .6rem;font-size:.9375rem;font-style:italic}.what-next-list{flex-direction:column;gap:.6rem;margin:0;padding-left:1.25rem;display:flex}.what-next-item{line-height:1.5}.what-next-title{flex-wrap:wrap;align-items:baseline;gap:.5rem;font-weight:600;display:flex}.what-next-note{color:var(--text-muted);font-size:.9375rem;display:block}.what-next-tag{border:1px solid var(--border-control);color:var(--text-subtle);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;font-weight:600}.code-locked{background:var(--bg);border:1px dashed var(--border-control);border-radius:var(--radius);flex-direction:column;justify-content:center;gap:.35rem;min-height:120px;padding:1.25rem 1.1rem;display:flex}.code-locked-title{font-weight:700}.code-locked-text{color:var(--text-muted);font-size:.9375rem;line-height:1.55}.assess-intro,.assess-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;font-size:.9375rem;line-height:1.55}.assess-intro ul{margin:.5rem 0 1rem;padding-left:1.2rem}.assess-result-pass{border-color:var(--success)}.assess-score{margin:0 0 .25rem;font-size:2.25rem;font-weight:800}.assess-result-actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.assess-clock{color:var(--text-subtle);margin:0 0 1rem;font-size:.875rem}.assess-questions{flex-direction:column;gap:1rem;margin:1rem 0;display:flex}.assess-q{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;margin:0;padding:1rem}.assess-q-right{border-color:var(--success)}.assess-q-wrong{border-color:var(--error)}.assess-q-prompt{margin-bottom:.6rem;padding:0;font-weight:600;line-height:1.5}.assess-q-num{background:var(--bg);border:1px solid var(--border-control);border-radius:999px;justify-content:center;align-items:center;min-width:1.6rem;height:1.6rem;margin-right:.35rem;font-size:.8rem;display:inline-flex}.assess-q-code{background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius-sm);margin:0 0 .6rem;padding:.6rem .75rem;overflow-x:auto}.assess-options{flex-direction:column;gap:.4rem;display:flex}.assess-option{border:1px solid var(--border-control);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.6rem;min-height:44px;padding:.35rem .7rem;display:flex}.assess-option-chosen{border-color:var(--primary);background:#238dfa14}.assess-option input{width:1.1rem;height:1.1rem;accent-color:var(--primary)}.assess-q-mark{margin:.6rem 0 0;font-weight:700}.assess-q-right .assess-q-mark{color:var(--success)}.assess-q-wrong .assess-q-mark{color:var(--error)}.assess-plan{margin:.75rem 0}.assess-gate{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.assess-gate-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:1fr auto;align-items:center;gap:.3rem 1rem;padding:.8rem 1rem;display:grid}.assess-gate-pass{border-color:var(--success)}.assess-gate-title{font-weight:700}.assess-gate-score{text-align:right;font-size:1.25rem;font-weight:800}.assess-gate-note{color:var(--text-muted);font-size:.875rem}.pt-detail-assess{flex-wrap:wrap;gap:.4rem;display:flex}.assess-chip{border:1px solid var(--border-control);color:var(--text-muted);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.assess-chip-tried{border-color:var(--warning);color:var(--warning)}.assess-chip-pass{border-color:var(--success);color:var(--success)}.roster-notes-skipped{border-color:var(--warning)}.codes-select-all{cursor:pointer;align-items:center;gap:.5rem;min-height:44px;font-weight:600;display:inline-flex}.codes-select-all input,.codes-select-col input{width:1.15rem;height:1.15rem;accent-color:var(--primary);cursor:pointer}.codes-select-col{text-align:center;width:2.5rem}.codes-row-selected td{background:#238dfa14}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.module-title,.card-title,.admin-heading,.complete-heading,.dialog-title{font-weight:var(--w-display);letter-spacing:-.01em;line-height:1.15}.module-goal,.card-subtitle,.admin-desc{font-weight:var(--w-light)}.login-photo-tagline{font-weight:var(--w-display);text-transform:uppercase;letter-spacing:-.01em;line-height:1.05}.theme-btn{border-radius:var(--pill);border:1px solid var(--border);width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.theme-btn:hover{background:var(--surface-raised)}.theme-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-btn svg{width:20px;height:20px}.theme-btn-floating{z-index:50;background:var(--glass);position:fixed;top:.75rem;right:.75rem}.sidebar-icon-practice{color:var(--tag-blocks);background:0 0;border:1.5px solid}.sidebar-practice-note{color:var(--text-subtle);font-size:.75rem}.practice-view .module-goal{max-width:none}.practice-modes{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=760px){.practice-modes{grid-template-columns:1fr 1fr}}.practice-mode{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.1rem 1.2rem;display:flex}.practice-mode h3{margin:0;font-size:1.1rem}.practice-mode p{color:var(--text-muted);flex:1;margin:0;font-size:.9375rem;line-height:1.55}.practice-best{font-weight:600}.practice-sprint{flex-direction:column;gap:.8rem;display:flex}.practice-clock{z-index:5;background:var(--surface);border:1px solid var(--border-control);border-radius:var(--pill);align-self:flex-start;align-items:baseline;gap:.6rem;padding:.4rem 1rem;display:inline-flex;position:sticky;top:72px}.practice-clock-time{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.practice-clock-label{color:var(--text-muted);font-size:.875rem}.practice-clock-urgent{border-color:var(--error)}.practice-clock-urgent .practice-clock-time{color:var(--error)}.practice-progress{gap:.4rem;display:flex}.practice-dot{border:1.5px solid var(--border-control);border-radius:999px;width:.9rem;height:.9rem}.practice-dot-current{border-color:var(--primary);background:var(--primary)}.practice-dot-solved{border-color:var(--success);background:var(--success)}.practice-dot-skipped{border-color:var(--error)}.practice-title{margin:0;font-size:1.2rem}.practice-hint{color:var(--text-muted);margin:0;font-size:.9375rem}.practice-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.practice-solved{color:var(--success);font-weight:700}.practice-results{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:1.1rem 1.2rem;display:flex}.practice-results-list{flex-direction:column;gap:.3rem;margin:0;padding-left:1.2rem;display:flex}.practice-results-list li span:first-child{margin-right:.5rem;font-weight:600}.practice-r-solved span:last-child{color:var(--success)}.practice-r-missed span:last-child{color:var(--error)}.practice-tip{color:var(--text-muted);font-size:.9375rem}.practice-free{flex-direction:column;gap:.9rem;display:flex}.practice-tier-name{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin:0 0 .5rem;font-size:.85rem}.practice-grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.6rem;display:grid}.practice-card{text-align:left;cursor:pointer;background:var(--surface);min-height:64px;color:var(--text);border:1px solid var(--border-control);border-radius:var(--radius);flex-direction:column;gap:.2rem;padding:.75rem .9rem;font-family:inherit;display:flex}.practice-card:hover{border-color:var(--primary)}.practice-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.practice-card-title{font-weight:700}.practice-card-meta{color:var(--text-subtle);font-size:.8rem}.practice-card-solved{border-color:var(--success)}.practice-card-solved .practice-card-meta{color:var(--success)}.workshop-picker{flex-direction:column;gap:.5rem;display:flex}.workshop-select{background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);color:var(--text);font:inherit;max-width:100%;padding:.5rem .75rem;font-size:.9rem}.workshop-select:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.workshop-new summary{cursor:pointer;color:var(--text-muted);font-size:.9rem}.workshop-new-fields{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.workshop-new-fields .field-label{flex-direction:column;gap:.25rem;display:flex}.evidence-lookup{flex-direction:column;gap:.4rem;display:flex}.evidence-lookup-row{align-items:center;gap:.5rem;max-width:24rem;display:flex}.mod-tag-readiness{background:var(--surface);color:var(--text);border:1px solid var(--border-control)}.readiness-steps{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.readiness-step{border:1px solid var(--border-control);color:var(--text-muted);border-radius:999px;padding:.3rem .8rem;font-size:.875rem}.readiness-step-current{color:var(--text);border-color:var(--text);font-weight:700}.readiness-card{margin-bottom:.9rem}.readiness-card-heading{margin:0 0 .4rem;font-size:1rem}h3.module-section-label{margin-top:0}.module-view h3[tabindex="-1"]:focus{outline:none}.readiness-card ul,.readiness-rules,.readiness-problems ul{margin:0;padding-left:1.2rem;line-height:1.55}.readiness-privacy{color:var(--text-muted);margin:.6rem 0 .9rem;font-size:.9rem}.readiness-question{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0 0 .9rem;padding:.9rem 1rem}.readiness-question legend{padding:0 .3rem;font-weight:700}.readiness-option{cursor:pointer;align-items:flex-start;gap:.5rem;padding:.35rem 0;display:flex}.readiness-option input{margin-top:.25rem}.readiness-right,.readiness-wrong{color:var(--text);margin:.4rem 0 0;font-size:.9375rem}.readiness-field{margin:.9rem 0;display:block}.readiness-field input,.readiness-field textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);margin-top:.35rem;padding:.6rem .75rem;display:block}.readiness-problems{border:1px solid var(--border-control);border-radius:var(--radius-sm);margin:.75rem 0;padding:.75rem 1rem}.readiness-advice-note{color:var(--text-muted);margin:.5rem 0}.readiness-nav{flex-wrap:wrap;gap:.6rem;margin:1rem 0;display:flex}.readiness-record{white-space:pre-wrap}.sup-workshops{flex-wrap:wrap;gap:.6rem;margin:1rem 0 1.5rem;padding:0;list-style:none;display:flex}.sup-workshop{text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border-control);border-radius:var(--radius-sm);cursor:pointer;font:inherit;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:44px;padding:.7rem 1rem;display:flex}.sup-workshop-open{border-color:var(--text);border-width:2px}.sup-workshop-title{font-weight:700}.sup-workshop-meta{color:var(--text-muted);font-size:.9rem}.sup-workshop-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.sup-row-follow td{font-weight:600}.sup-detail{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem 2rem;padding:.5rem 0;display:grid}.sup-detail-heading{margin:0 0 .4rem;font-size:1rem}.sup-list{margin:0 0 .6rem;padding-left:1.2rem;line-height:1.6}.sup-detail{text-align:left}.table-scroll{max-width:100%;overflow-x:auto}.sup-table td{white-space:nowrap}.sup-table th,.sup-table td[data-label=Name],.sup-table td[data-label=Follow\ up],.sup-table td[data-label=Opened],.sup-table td[data-label=Registers]{white-space:normal}@media (width<=760px){.sup-table td{white-space:normal}.sup-table td[data-label]{grid-column:1/-1}.sup-table td[data-label]:not([data-label=Name]):not([data-label=Supervisor]):before{content:attr(data-label) ": ";text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-size:.75rem}}.login-hint+.login-hint{margin-top:.75rem}.privacy-wrap{max-width:44rem}.privacy-card{text-align:left}.privacy-card ul{margin:0 0 1rem;padding-left:1.2rem;line-height:1.6}.privacy-heading{margin:1.2rem 0 .4rem;font-size:1.05rem}.privacy-back{margin-top:1.2rem}.login-hint a,.privacy-card a{color:inherit;text-underline-offset:2px;text-decoration:underline}.cert-covered{max-width:30rem;color:var(--text-muted);text-align:center;margin:.6rem auto .4rem;padding:0;font-size:.8rem;line-height:1.5;list-style:none}.cert-covered strong,.verify-covered strong{color:var(--text);font-weight:600}.verify-covered{text-align:left;margin:1rem 0;font-size:.9rem;line-height:1.55}.verify-covered ul{margin:.3rem 0 0;padding-left:1.2rem}.verify-covered-heading{margin:0;font-size:.95rem}.complete-view.cert-layout{text-align:left;align-items:stretch;width:100%;max-width:none;padding:0 0 2rem}.cert-layout .cert-held-notice{text-align:left;max-width:none;margin-bottom:0}.admin-nav.cert-tabs{flex-wrap:wrap;margin-bottom:0;overflow:visible}.cert-tabs .admin-tab{white-space:nowrap;min-height:44px;font-size:.95rem}.cert-tabs .admin-tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.cert-panel{width:100%;container-type:inline-size}.cert-panel:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.cert-panel .cert-explainer,.cert-panel .leaderboard,.cert-panel .what-next{max-width:none;margin:0}.cert-panel .cert-explainer-body{font-size:1rem;line-height:1.6}.cert-panel .cert-explainer-body+.cert-explainer-body{margin-top:.75rem}.cert-split{align-items:start;gap:1.5rem;display:grid}.cert-split .cert-card{text-align:center;max-width:none}.cert-side{flex-direction:column;gap:1rem;display:flex}.cert-side-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.cert-side-heading{margin:0 0 .5rem;font-size:1.05rem}.cert-side-text{color:var(--text-muted);margin:0 0 1rem;font-size:.9375rem;line-height:1.55}.cert-side .cert-actions{justify-content:flex-start}.cert-side .btn{white-space:normal}.cert-side .badge-strip{justify-content:flex-start}.cert-photos{gap:1.25rem;display:grid}.cert-photos .cert-grad-banner,.cert-photos .cert-community-strip{max-width:none;margin:0}@container (width>=820px){.cert-split{grid-template-columns:minmax(0,3fr) minmax(18rem,2fr)}}@container (width>=720px){.cert-photos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cert-photos .cert-grad-banner,.cert-photos .cert-community-img{height:360px}}.closed-text{color:var(--text);margin:0 0 1rem;font-size:1rem;line-height:1.6}.closed-actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.closed-heading:focus{outline:none}.closing-banner{z-index:50;background:var(--surface);border-top:3px solid var(--warning);color:var(--text);text-align:center;padding:.75rem clamp(1rem,2.5vw,2rem);font-size:.95rem;line-height:1.5;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #00000026}.closed-day-warning{border-left:3px solid var(--warning);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);margin:.25rem 0 0;padding:.6rem .85rem;font-size:.9375rem;line-height:1.5}.workshop-date-edit{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}
