.ai-tutor-bubble{align-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:0;border-radius:999px;bottom:1.5rem;box-shadow:0 6px 24px #4f46e566;color:#fff;cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:600;gap:.45rem;padding:.65rem 1.1rem;position:fixed;right:1.5rem;transition:transform .12s ease,box-shadow .12s ease;z-index:950}.ai-tutor-bubble:hover{box-shadow:0 10px 28px #4f46e58c;transform:translateY(-2px)}.ai-tutor-bubble:focus-visible{outline:3px solid #fff;outline-offset:2px}.ai-tutor-bubble-icon{font-size:1.15rem}.ai-tutor-bubble-label{letter-spacing:.01em}.ai-tutor-panel{animation:ai-tutor-pop .18s cubic-bezier(.2,.7,.2,1);background:#161628;background:var(--bg-secondary,#161628);border:1px solid var(--line-2);border-radius:12px;bottom:1rem;box-shadow:0 30px 60px #00000073;color:var(--text-primary);color:#e4e4e7;color:var(--text-primary,#e4e4e7);display:flex;flex-direction:column;height:min(85vh,720px);max-width:calc(100vw - 2rem);overflow:hidden;position:fixed;right:1rem;top:auto;width:420px;z-index:960}@keyframes ai-tutor-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:600px){.ai-tutor-panel{height:86vh;left:.5rem;right:.5rem;width:auto}}.ai-tutor-header{align-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;gap:.75rem;justify-content:space-between;padding:.75rem .9rem}.ai-tutor-title{font-size:1rem;font-weight:700}.ai-tutor-subtitle{font-size:.78rem;margin-top:.1rem;opacity:.85}.ai-tutor-header-actions{display:inline-flex;gap:.3rem}.ai-tutor-clear,.ai-tutor-close{background:var(--fill-4);border:0;border-radius:999px;color:var(--text-primary);cursor:pointer;font-size:.9rem;height:28px;line-height:1;width:28px}.ai-tutor-clear:hover,.ai-tutor-close:hover{background:var(--fill-5)}.ai-tutor-promise{background:#4f46e51f;border-bottom:1px solid var(--line-1);color:#c7d2fe;font-size:.78rem;line-height:1.5;padding:.55rem .9rem}.ai-tutor-body{background:#0f0f23;background:var(--bg-primary,#0f0f23);display:flex;flex:1 1;flex-direction:column;gap:.6rem;overflow-y:auto;padding:.85rem}.ai-tutor-empty{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.86rem;line-height:1.55}.ai-tutor-empty p{margin:0 0 .55rem}.ai-tutor-suggestions{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:0;padding:0}.ai-tutor-suggestions li{margin:0}.ai-tutor-suggestion{background:#4f46e51a;border:1px solid #4f46e54d;border-radius:8px;color:#c7d2fe;cursor:pointer;display:block;font-family:inherit;font-size:.86rem;line-height:1.4;padding:.5rem .7rem;text-align:left;transition:background .1s ease,border-color .1s ease,transform .1s ease;width:100%}.ai-tutor-suggestion:hover{background:#4f46e533;border-color:#4f46e580;transform:translateY(-1px)}.ai-tutor-suggestion:active{transform:translateY(0)}.ai-tutor-suggestion:focus-visible{outline:2px solid #a5b4fc;outline-offset:2px}.ai-tutor-msg{word-wrap:break-word;border-radius:8px;font-size:.9rem;line-height:1.5;max-width:92%;padding:.5rem .7rem}.ai-tutor-msg p{margin:0 0 .35rem}.ai-tutor-msg p:last-child{margin-bottom:0}.ai-tutor-msg code{background:var(--fill-3);border-radius:3px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.84em;padding:.05rem .3rem}.ai-tutor-msg-user{align-self:flex-end;background:#4f46e52e;border:1px solid #4f46e559}.ai-tutor-msg-assistant{align-self:flex-start;background:var(--fill-2);border:1px solid var(--line-1)}.tutor-code-fence{color:#9ca3af;color:var(--text-secondary,#9ca3af)}.tutor-code-block,.tutor-code-fence{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem}.tutor-code-block{background:#00000059;border:1px solid var(--line-1);border-radius:5px;line-height:1.45;margin:.4rem 0;overflow-x:auto;padding:.55rem .7rem;white-space:pre}.tutor-code-block code{background:#0000;padding:0}.tutor-list{list-style:disc;margin:.25rem 0;padding-left:1.2rem}.tutor-list li{line-height:1.5;margin:.15rem 0}.tutor-spacer{height:.45rem}.ai-tutor-thinking{align-items:center;display:inline-flex;gap:.25rem;min-width:60px;padding:.7rem}.ai-tutor-dot{animation:ai-tutor-bounce 1.2s ease-in-out infinite;background:#a5b4fc;border-radius:50%;height:7px;width:7px}.ai-tutor-dot:nth-child(2){animation-delay:.15s}.ai-tutor-dot:nth-child(3){animation-delay:.3s}@keyframes ai-tutor-bounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.ai-tutor-error{background:#ef44441a;border:1px solid #ef444459;border-radius:4px;color:#fca5a5;font-size:.84rem;padding:.45rem .65rem}.ai-tutor-footer{background:#161628;background:var(--bg-secondary,#161628);border-top:1px solid var(--line-1);padding:.65rem .85rem .85rem}.ai-tutor-input{background:#0f0f23;background:var(--bg-primary,#0f0f23);border:1px solid var(--line-2);border-radius:6px;color:inherit;font-family:inherit;font-size:.9rem;line-height:1.4;padding:.5rem .65rem;resize:none;width:100%}.ai-tutor-input:focus{border-color:#4f46e599;box-shadow:0 0 0 2px #4f46e540;outline:0}.ai-tutor-footer-row{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-top:.5rem}.ai-tutor-quota-label{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.76rem}.ai-tutor-send{background:linear-gradient(135deg,#4f46e5,#7c3aed);border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:.88rem;font-weight:600;padding:.4rem 1rem}.ai-tutor-send:disabled{cursor:not-allowed;opacity:.55}.ai-tutor-quota-block{background:#eab3081a;border:1px solid #eab30866;border-radius:6px;color:#fcd34d;font-size:.88rem;line-height:1.55;padding:.6rem .7rem}.ai-tutor-upgrade-cta{background:linear-gradient(135deg,#16a34a,#15803d);border-radius:8px;box-shadow:0 2px 8px #16a34a59;color:#fff;display:block;font-size:.85rem;font-weight:700;line-height:1.35;margin-top:.65rem;padding:.55rem .9rem;text-align:center;text-decoration:none;transition:transform .1s ease,box-shadow .1s ease}.ai-tutor-upgrade-cta:hover{box-shadow:0 4px 12px #16a34a80;filter:brightness(1.05);transform:translateY(-1px)}.ai-tutor-upgrade-cta-strong{display:block;font-size:.95rem;margin-bottom:.1rem}.ai-tutor-upgrade-cta-sub{display:block;font-size:.78rem;font-weight:600;opacity:.95}.ai-tutor-quota-note{display:block;margin-top:.5rem;opacity:.85}.ai-tutor-disabled-block{background:#fca5a514;border:1px solid #fca5a559;border-radius:6px;color:#fca5a5;display:flex;font-size:.88rem;gap:.6rem;line-height:1.5;padding:.6rem .7rem}.ai-tutor-disabled-icon{flex-shrink:0;font-size:1.4rem;line-height:1}.ai-tutor-disabled-text strong{display:block;font-size:.95rem;margin-bottom:.25rem}.ai-tutor-disabled-text p{color:#e8b5b5;font-weight:400;margin:0}.ai-tutor-inline-btn{align-items:center;background:#4f46e51f;border:1px solid #4f46e566;border-radius:999px;color:#c7d2fe;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:.3rem;padding:.32rem .85rem}.ai-tutor-inline-btn:hover{background:#4f46e538;filter:brightness(1.05)}:root[data-theme=light] .ai-tutor-inline-btn,:root[data-theme=light] .ai-tutor-promise,:root[data-theme=light] .ai-tutor-suggestion{color:var(--accent-indigo)}:root[data-theme=light] .ai-tutor-suggestion:focus-visible{outline-color:var(--accent-indigo)}:root[data-theme=light] .ai-tutor-clear,:root[data-theme=light] .ai-tutor-close{background:#ffffff2e;color:#fff}:root[data-theme=light] .ai-tutor-clear:hover,:root[data-theme=light] .ai-tutor-close:hover{background:#ffffff4d}:root[data-theme=light] .tutor-code-block{background:var(--code-bg);color:var(--text-primary)}:root[data-theme=light] .ai-tutor-disabled-block,:root[data-theme=light] .ai-tutor-disabled-text p,:root[data-theme=light] .ai-tutor-error{color:var(--error-text)}:root[data-theme=light] .ai-tutor-quota-block{color:var(--warning-text)}:root[data-theme=light] .ai-tutor-dot{background:var(--accent-indigo)}.navbar-notif-btn,.navbar-notifications{align-items:center;display:inline-flex;position:relative}.navbar-notif-btn{background:#0000;border:1px solid #0000;border-radius:8px;color:#9ca3af;color:var(--text-secondary,#9ca3af);cursor:pointer;height:34px;justify-content:center;padding:0;transition:all .15s;width:34px}.navbar-notif-btn:hover{background:var(--fill-2);border-color:#2a2f3a;border-color:var(--border-color,#2a2f3a);color:#fff;color:var(--text-primary,#fff)}.navbar-notif-icon{height:18px;width:18px}.navbar-notif-badge{background:#ef4444;border-radius:9px;box-shadow:0 0 0 2px #0f1117;box-shadow:0 0 0 2px var(--bg-color,#0f1117);color:#fff;font-size:.7rem;font-weight:700;height:18px;line-height:18px;min-width:18px;padding:0 5px;position:absolute;right:-2px;text-align:center;top:-2px}.navbar-notif-dropdown{background:#161922;background:var(--card-bg,#161922);border:1px solid #2a2f3a;border:1px solid var(--border-color,#2a2f3a);border-radius:10px;box-shadow:0 10px 30px #0006;max-height:480px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 8px);width:340px;z-index:1000}.navbar-notif-header{align-items:center;color:#fff;color:var(--text-primary,#fff);display:flex;font-size:.85rem;font-weight:700;justify-content:space-between;padding:.75rem 1rem}.navbar-notif-header,.navbar-notif-section{border-bottom:1px solid #2a2f3a;border-bottom:1px solid var(--border-color,#2a2f3a)}.navbar-notif-section{padding:.5rem 0}.navbar-notif-section:last-child{border-bottom:none}.navbar-notif-section-title{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.7rem;font-weight:700;letter-spacing:.06em;padding:.4rem 1rem;text-transform:uppercase}.navbar-notif-item{border-left:3px solid #0000;display:block;padding:.6rem 1rem;transition:background .15s,border-color .15s}.navbar-notif-item,.navbar-notif-item:hover{color:#fff;color:var(--text-primary,#fff);text-decoration:none}.navbar-notif-item:hover{background:var(--fill-2);border-left-color:var(--primary-color,var(--accent-cyan))}.navbar-notif-item-title{color:#fff;color:var(--text-primary,#fff);font-size:.875rem;font-weight:600;margin-bottom:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-notif-item-meta{align-items:center;color:#9ca3af;color:var(--text-secondary,#9ca3af);display:flex;font-size:.75rem;gap:.5rem;justify-content:space-between}.navbar-notif-item-class{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-notif-item-progress{color:#9ca3af;color:var(--text-secondary,#9ca3af);flex-shrink:0;font-weight:600}.navbar-notif-item-due{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.72rem;margin-top:.25rem}.navbar-notif-item-due.late{color:var(--warning-color);font-weight:600}@media (max-width:600px){.navbar-notif-dropdown{right:-40px;width:290px}}.navbar-notif-dismiss{background:none;border:none;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:1.1rem;line-height:1;margin-left:auto;opacity:.5;padding:0 .2rem;transition:opacity .15s,color .15s}.navbar-notif-dismiss:hover{color:var(--text-primary);opacity:1}.navbar-notif-item-title{align-items:center;display:flex;gap:.35rem}.navbar-notif-mark-read{background:none;border:none;color:#00b509;color:var(--primary-color,#00b509);cursor:pointer;font-size:.7rem;font-weight:600;margin-left:auto;padding:0;transition:opacity .15s}.navbar-notif-mark-read:hover{opacity:.7}.navbar-notif-item--invite,.navbar-notif-item--invite:hover{background:#0000;border-left-color:#0000;cursor:default}.navbar-notif-invite-actions{display:flex;gap:.5rem;margin-top:.5rem}.navbar-notif-invite-accept,.navbar-notif-invite-decline{border:1px solid #0000;border-radius:6px;cursor:pointer;flex:1 1;font-size:.75rem;font-weight:700;padding:.35rem .5rem;transition:opacity .15s,background .15s,color .15s,border-color .15s}.navbar-notif-invite-accept{background:#00b509;background:var(--primary-color,#00b509);color:#fff}.navbar-notif-invite-accept:hover{opacity:.85}.navbar-notif-invite-decline{background:#0000;border-color:#2a2f3a;border-color:var(--border-color,#2a2f3a);color:#9ca3af;color:var(--text-secondary,#9ca3af)}.navbar-notif-invite-decline:hover{border-color:#9ca3af;border-color:var(--text-secondary,#9ca3af);color:#fff;color:var(--text-primary,#fff)}.navbar-notif-btn.is-quiet{opacity:.6}.navbar-notif-btn.is-quiet:hover{opacity:1}.navbar-notif-section-title--action{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.navbar-notif-empty{padding:.9rem 1rem .75rem}.navbar-notif-empty-title{color:#fff;color:var(--text-primary,#fff);font-size:.9rem;font-weight:700;margin-bottom:.25rem}.navbar-notif-empty-note{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.78rem;line-height:1.45}.navbar-notif-item--done{align-items:flex-start;display:flex;gap:.25rem;padding:0 .6rem 0 0}.navbar-notif-done-main{display:block;flex:1 1;min-width:0;padding:.6rem 0 .6rem 1rem}.navbar-notif-done-main,.navbar-notif-done-main:hover{color:inherit;text-decoration:none}.navbar-notif-item--done .navbar-notif-item-title{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-weight:500}.navbar-notif-item--done:hover .navbar-notif-item-title{color:#fff;color:var(--text-primary,#fff)}.navbar-notif-check{color:#4ade80;color:var(--success-text,#4ade80);flex-shrink:0;font-weight:700}.navbar-notif-item--done .navbar-notif-dismiss{align-self:center;margin-left:0}.navbar-notif-item--suggest .navbar-notif-item-title{font-weight:600}.cspp-setpw-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000c7;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:10000}.cspp-setpw-modal{animation:cspp-setpw-fade-in .22s ease;background:#1e1e2e;background:var(--bg-secondary,#1e1e2e);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 12px 40px #00000080;box-sizing:border-box;max-width:440px;padding:1.75rem 2rem;width:100%}@keyframes cspp-setpw-fade-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cspp-setpw-title{color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-size:1.35rem;font-weight:700;margin:0 0 .4rem}.cspp-setpw-subtitle{color:#aaa;color:var(--text-secondary,#aaa);font-size:.9rem;line-height:1.5;margin:0 0 1.25rem}.cspp-setpw-subtitle strong{color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-weight:600}.cspp-setpw-form{display:flex;flex-direction:column;gap:.9rem}.cspp-setpw-field label{color:#aaa;color:var(--text-secondary,#aaa);display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;margin-bottom:.35rem;text-transform:uppercase}.cspp-setpw-input-row{align-items:stretch;display:flex;position:relative}.cspp-setpw-field input{background:#121212;background:var(--bg-color,#121212);border:1px solid var(--border-color,var(--line-2));border-radius:8px;box-sizing:border-box;color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-family:inherit;font-size:.95rem;outline:none;padding:.65rem .85rem;transition:border-color .15s,box-shadow .15s;width:100%}.cspp-setpw-field input:focus{border-color:#00b509;border-color:var(--primary-color,#00b509);box-shadow:0 0 0 3px #00b5092e}.cspp-setpw-field input[aria-invalid=true]{border-color:#e74c3c}.cspp-setpw-input-row input{padding-right:3.75rem}.cspp-setpw-toggle{background:#0000;border:0;border-radius:5px;color:#aaa;color:var(--text-secondary,#aaa);cursor:pointer;font-size:.78rem;font-weight:600;letter-spacing:.04em;line-height:1;padding:.35rem .5rem;position:absolute;right:.4rem;text-transform:uppercase;top:50%;transform:translateY(-50%)}.cspp-setpw-toggle:hover{background:var(--fill-3)}.cspp-setpw-hint{color:#aaa;color:var(--text-secondary,#aaa);font-size:.75rem;line-height:1.4;margin:.3rem 0 0}.cspp-setpw-hint.error{color:#e74c3c}.cspp-setpw-error{background:#e74c3c14;border:1px solid #e74c3c40;border-radius:6px;color:#e74c3c;font-size:.85rem;margin:0;padding:.55rem .75rem}.cspp-setpw-actions{display:flex;gap:.75rem;margin-top:.25rem}.cspp-setpw-submit{background:#00b509;background:var(--primary-color,#00b509);border:0;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:.7rem 1rem;transition:background .15s,transform .1s}.cspp-setpw-submit:hover:not(:disabled){background:#009808;background:var(--primary-hover,#009808)}.cspp-setpw-submit:active:not(:disabled){transform:translateY(1px)}.cspp-setpw-submit:disabled{cursor:not-allowed;opacity:.5}.cspp-setpw-footnote{color:#aaa;color:var(--text-secondary,#aaa);font-size:.75rem;margin:.5rem 0 0;opacity:.75;text-align:center}@media (max-width:480px){.cspp-setpw-modal{padding:1.4rem 1.25rem}.cspp-setpw-title{font-size:1.2rem}}.name-prompt-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.name-prompt-modal{animation:namePromptFadeIn .2s ease;background:#1e1e2e;background:var(--bg-secondary,#1e1e2e);border:1px solid var(--line-2);border-radius:12px;max-width:420px;padding:1.75rem 2rem;width:100%}@keyframes namePromptFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.name-prompt-title{color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.name-prompt-subtitle{color:#aaa;color:var(--text-secondary,#aaa);font-size:.85rem;line-height:1.5;margin:0 0 1.25rem}.name-prompt-form{display:flex;flex-direction:column;gap:1rem}.name-prompt-field label{color:#aaa;color:var(--text-secondary,#aaa);display:block;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.35rem;text-transform:uppercase}.name-prompt-field input{background:#121212;background:var(--bg-color,#121212);border:1px solid var(--border-color,var(--line-2));border-radius:8px;box-sizing:border-box;color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-size:.95rem;outline:none;padding:.6rem .75rem;transition:border-color .15s;width:100%}.name-prompt-field input:focus{border-color:var(--primary-color,var(--accent-purple))}.name-prompt-error{color:#e74c3c;font-size:.8rem;margin:0}.name-prompt-actions{display:flex;gap:.75rem;margin-top:.25rem}.name-prompt-actions .btn{flex:1 1}.name-prompt-checkbox-field label{align-items:flex-start;color:#e0e0e0;color:var(--text-primary,#e0e0e0);cursor:pointer;display:flex;font-size:.85rem;font-weight:400;gap:.55rem;letter-spacing:0;line-height:1.4;margin-bottom:0;text-transform:none}.name-prompt-checkbox-field input[type=checkbox]{accent-color:#a855f7;accent-color:var(--primary-color,#a855f7);cursor:pointer;flex:0 0 auto;margin:.2rem 0 0;padding:0;width:auto}.navbar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.navbar-container{align-items:center;display:flex;gap:.75rem;height:56px;margin:0 auto;max-width:1600px;min-width:0;padding:0 2rem}.navbar-brand{color:var(--primary-color)!important;flex-shrink:0;font-size:1.125rem;font-weight:700;letter-spacing:-.3px;text-decoration:none!important;white-space:nowrap}.navbar-brand:hover{color:var(--primary-hover)!important;text-decoration:none!important}.brand-cs{color:var(--primary-color)}.navbar-brand-short{display:none}.navbar-brand-full{display:inline}.navbar-spacer{flex:1 1;min-width:0}.navbar-links{flex-shrink:0;gap:.125rem}.navbar-link,.navbar-links{align-items:center;display:flex}.navbar-link{border-radius:6px;color:var(--text-secondary);font-size:.9rem;font-weight:500;gap:.375rem;padding:.4rem .75rem;text-decoration:none;transition:all .15s;white-space:nowrap}.navbar-link:hover{background-color:var(--fill-4);color:var(--text-primary);text-decoration:none}.navbar-link.active{background-color:#00b5091a;color:var(--primary-color)}.nav-icon{flex-shrink:0;font-size:1rem;line-height:1}.nav-icon-exit{display:inline-block;font-size:1.1rem;font-style:normal;font-weight:600;line-height:1;transform:rotate(-45deg)}.navbar-user{align-items:center;border-left:1px solid var(--border-color);display:flex;flex-shrink:0;gap:.625rem;margin-left:.25rem;padding-left:.75rem}.navbar-logout,.navbar-username{color:var(--text-secondary);font-size:.875rem;white-space:nowrap}.navbar-logout{align-items:center;background:#0000;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;gap:.375rem;padding:.35rem .75rem;transition:all .15s}.navbar-logout:hover{border-color:var(--text-secondary);color:var(--text-primary)}.navbar-game-btn{align-items:center;border-radius:6px;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:1.05rem;justify-content:center;line-height:1;padding:.3rem .4rem;position:relative;text-decoration:none!important;transition:all .15s}.navbar-game-btn:hover{background-color:var(--fill-4);color:var(--text-primary);text-decoration:none!important}.navbar-settings-btn{align-items:center;border-radius:6px;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:1.05rem;justify-content:center;line-height:1;padding:.3rem .4rem;position:relative;text-decoration:none;transition:all .15s}.navbar-settings-btn:hover{background-color:var(--fill-4);color:var(--text-primary);text-decoration:none}.navbar-settings-btn.active{background-color:#00b5091a;color:var(--primary-color)}.navbar-email-badge{background:#ef4444;border-radius:7px;color:#fff;font-size:.6rem;font-weight:700;height:14px;line-height:14px;min-width:14px;padding:0 3px;pointer-events:none;position:absolute;right:2px;text-align:center;top:2px}.navbar-game-btn:hover:after,.navbar-settings-btn:hover:after{background:var(--surface-1);border-radius:4px;box-shadow:0 2px 8px #0006;color:var(--text-primary);content:attr(title);font-size:.75rem;font-weight:500;left:50%;margin-top:4px;padding:.3rem .6rem;pointer-events:none;position:absolute;top:100%;transform:translateX(-50%);white-space:nowrap;z-index:1001}.navbar-contact-link{white-space:nowrap}.navbar-contact-btn{font-size:1rem}.navbar-drop-contact .navbar-contact-btn,.navbar-drop-contact .navbar-contact-link{display:none}@media (max-width:767px){.navbar-contact-btn,.navbar-contact-link{display:none}}.navbar-guest{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.navbar-btn-login{align-items:center;background:var(--primary-color);border-radius:6px;color:var(--primary-contrast)!important;display:inline-flex;font-size:.875rem;font-weight:600;padding:.4rem 1rem;text-decoration:none!important;transition:background .15s;white-space:nowrap}.navbar-btn-login:hover{background:var(--primary-hover);text-decoration:none!important}.navbar-hci{border-bottom-color:#6c3fc766}.navbar-foundations{border-bottom-color:#f59e0b66}.navbar-dsa{border-bottom-color:#dc262666}.navbar-csprep{border-bottom-color:#eab30866}.navbar-course-switcher{border-left:1px solid var(--border-color);margin-left:.25rem;padding-left:.25rem;position:relative}.navbar-course-toggle{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.375rem;padding:.35rem .6rem;transition:all .15s;white-space:nowrap}.navbar-course-toggle:hover{background:var(--fill-4);border-color:var(--border-color);color:var(--text-primary)}.navbar-course-chevron{font-size:.5rem;margin-left:-.1rem;opacity:.6}.navbar-course-toggle-text{align-items:flex-start;display:flex;flex-direction:column;line-height:1.05}.navbar-course-eyebrow{font-size:.55rem;opacity:.6}.navbar-course-dropdown-header,.navbar-course-eyebrow{font-weight:700;letter-spacing:.05em;text-transform:uppercase}.navbar-course-dropdown-header{color:var(--text-secondary);font-size:.66rem;opacity:.75;padding:.35rem .75rem .5rem}.navbar-course-dropdown{-webkit-overflow-scrolling:touch;background:var(--surface-1);border:1px solid var(--fill-4);border-radius:10px;box-shadow:var(--shadow-lg);max-height:calc(100vh - 72px);min-width:210px;overflow-y:auto;overscroll-behavior:contain;padding:.35rem;position:absolute;right:0;top:calc(100% + 6px);z-index:1002}.navbar-course-option{align-items:center;border-radius:7px;color:var(--text-secondary);display:flex;gap:.65rem;padding:.6rem .75rem;text-decoration:none!important;transition:all .12s}.navbar-course-option:hover{background:var(--fill-4);color:var(--text-primary);text-decoration:none!important}.navbar-course-option.active{background:#00b50914;color:var(--text-primary)}.navbar-course-option-icon{flex-shrink:0;font-size:1.15rem;line-height:1}.navbar-course-option-text{display:flex;flex:1 1;flex-direction:column;gap:.05rem;min-width:0}.navbar-course-option-label{color:inherit;font-size:.85rem;font-weight:600}.navbar-course-option-desc{color:var(--text-secondary);font-size:.7rem;opacity:.7}.navbar-course-check{color:var(--primary-color);flex-shrink:0;font-size:.75rem;font-weight:700}.navbar-course-divider{background:var(--fill-3);height:1px;margin:.25rem .5rem}.navbar-tools-hr{border:0;border-top:1px solid var(--fill-3);margin:.35rem .5rem}.navbar-tools-section{color:var(--text-faint);font-size:.66rem;font-weight:700;letter-spacing:.06em;padding:.5rem .75rem .2rem;text-transform:uppercase;-webkit-user-select:none;user-select:none}.navbar-tools-section:first-child{padding-top:.25rem}.navbar-tools-dropdown{display:none;position:relative}.navbar-tools-toggle{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.375rem;padding:.35rem .6rem;transition:all .15s;white-space:nowrap}.navbar-tools-label-text{display:inline}.navbar-tools-toggle:hover{background:var(--fill-4);border-color:var(--border-color);color:var(--text-primary)}.navbar-tools-toggle.has-active{background-color:#00b5091a;color:var(--primary-color)}.navbar-tools-chevron{font-size:.5rem;margin-left:-.1rem;opacity:.6}.navbar-tools-panel{-webkit-overflow-scrolling:touch;background:var(--surface-1);border:1px solid var(--fill-4);border-radius:10px;box-shadow:var(--shadow-lg);left:0;max-height:calc(100vh - 72px);min-width:200px;overflow-y:auto;overscroll-behavior:contain;padding:.35rem;position:absolute;top:calc(100% + 6px);z-index:1002}.navbar-tools-option{align-items:center;border-radius:7px;color:var(--text-secondary);display:flex;gap:.65rem;padding:.55rem .75rem;text-decoration:none!important;transition:all .12s;white-space:nowrap}.navbar-tools-option:hover{background:var(--fill-4);color:var(--text-primary);text-decoration:none!important}.navbar-tools-option.active{background:#00b50914;color:var(--primary-color)}.navbar-tools-option-icon{flex-shrink:0;font-size:1rem;line-height:1}.navbar-tools-option-label{font-size:.85rem;font-weight:500}.navbar-tools-option-text{display:flex;flex-direction:column;gap:.05rem;min-width:0}.navbar-tools-desc{color:var(--text-secondary);font-size:.72rem;opacity:.75}.navbar-course-option.navbar-course-option-featured,.navbar-tools-option.navbar-tools-option-featured{background:#00b5091f;border:1px solid #00b5094d;color:var(--text-primary);margin-bottom:.15rem}.navbar-course-option.navbar-course-option-featured:hover,.navbar-tools-option.navbar-tools-option-featured:hover{background:#00b50933;border-color:#00b50973;color:var(--text-primary)}.navbar-course-option-featured .navbar-course-option-label,.navbar-tools-option-featured .navbar-tools-option-label{color:var(--text-primary);font-weight:700}.navbar-course-featured-arrow,.navbar-tools-featured-arrow{color:var(--primary-color);flex-shrink:0;font-size:.95rem;font-weight:700;margin-left:auto;padding-left:.5rem}.navbar-teachers-dropdown{position:relative}.navbar-teachers-toggle{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.375rem;padding:.35rem .6rem;transition:all .15s;white-space:nowrap}.navbar-teachers-toggle:hover{background:var(--fill-4);border-color:var(--border-color);color:var(--text-primary)}.navbar-teachers-toggle.has-active{background-color:#00b5091a;color:var(--primary-color)}.navbar-ides-dropdown{position:relative}.navbar-compact .navbar-brand-full{display:none}.navbar-compact .navbar-brand-short{display:inline}.navbar-tools-collapsed .navbar-tool-link{display:none}.navbar-tools-collapsed .navbar-tools-dropdown{display:flex}.navbar-hci .navbar-tool-link{display:none}.navbar-hci .navbar-tools-dropdown{display:flex}.navbar-all-collapsed .navbar-guest-course-link,.navbar-all-collapsed .navbar-keepvisible-link,.navbar-all-collapsed .navbar-teachers-dropdown .nav-label,.navbar-all-collapsed .navbar-tools-label-text,.navbar-minimal .navbar-course-toggle .navbar-course-toggle-text{display:none}@media (max-width:900px){.navbar-tool-link{display:none}.navbar-tools-dropdown{display:flex}}@media (max-width:700px){.navbar-brand-full{display:none}.navbar-brand-short{display:inline}}@media (min-width:641px) and (max-width:767px){.navbar-ides-dropdown,.navbar-username{display:none}}@media (max-width:640px){.navbar-guest-course-link,.navbar-ides-dropdown,.navbar-keepvisible-link,.navbar-teachers-dropdown .nav-label,.navbar-tools-label-text{display:none}.navbar-container{gap:.25rem;padding:0 .75rem}.navbar-username{display:none}.navbar-link{padding:.4rem .5rem}.navbar-link .nav-icon{display:none}.navbar-authed .navbar-links .navbar-link .nav-icon{display:inline-block}.navbar-authed .navbar-links .navbar-link .nav-label{display:none}.navbar-user{gap:0;padding-left:.5rem}.navbar-game-btn{display:none}.navbar-user{padding-left:.15rem}.navbar-settings-btn,.theme-toggle-btn{padding:.3rem .15rem}}@media (max-width:480px){.navbar-course-toggle,.navbar-teachers-toggle,.navbar-tools-toggle{gap:.2rem;padding:.35rem .3rem}.navbar-course-switcher{margin-left:.1rem;padding-left:.15rem}.navbar-guest{gap:.35rem}.navbar-guest .navbar-link{padding:.4rem .35rem}.navbar-btn-login{padding:.4rem .6rem}.navbar-course-dropdown,.navbar-tools-panel{left:auto;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);max-width:calc(100vw - 1rem);min-width:0;position:fixed;right:.5rem;top:56px;width:-webkit-max-content;width:max-content}}@media (max-width:414px){.navbar-course-toggle,.navbar-teachers-toggle,.navbar-tools-toggle{gap:.15rem;padding:.3rem .2rem}.navbar-guest{gap:.15rem}.navbar-guest .navbar-link{padding:.35rem .25rem}.navbar-btn-login{padding:.4rem .35rem}}@media (max-width:374px){.navbar-user a[href="/admin/email"]{display:none}}@media (max-width:360px){.navbar-container{gap:.1rem;padding:0 .2rem}.navbar-link{padding:.35rem}.navbar-user{padding-left:.35rem}.navbar-course-toggle,.navbar-teachers-toggle,.navbar-tools-toggle{gap:.15rem;padding:.3rem .2rem}.navbar-guest{gap:.1rem}.navbar-guest .navbar-link{padding:.35rem .2rem}.navbar-btn-login{padding:.4rem .3rem}.navbar-guest .theme-toggle{display:none}.navbar-user{gap:0;padding-left:.15rem}.navbar-notif-btn{height:28px;width:28px}.navbar-notif-icon{height:16px;width:16px}.navbar-settings-btn,.theme-toggle-btn{padding:.3rem .05rem}}.theme-toggle{position:relative}.theme-toggle,.theme-toggle-btn{align-items:center;display:flex;flex-shrink:0}.theme-toggle-btn{background:#0000;border:1px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;justify-content:center;padding:.3rem .4rem;transition:all .15s}.theme-toggle-btn:hover{background-color:var(--fill-4);color:var(--text-primary)}.theme-toggle-btn svg{display:block}.theme-toggle-menu{-webkit-overflow-scrolling:touch;background:var(--surface-1);border:1px solid var(--fill-4);border-radius:12px;box-shadow:var(--shadow-lg);max-height:calc(100vh - 72px);min-width:190px;overflow-y:auto;overscroll-behavior:contain;padding:.4rem;position:absolute;right:0;top:calc(100% + 8px);z-index:1002}.theme-toggle-menu-title{color:var(--text-faint);font-size:.7rem;font-weight:700;letter-spacing:.06em;padding:.4rem .6rem .5rem;text-transform:uppercase}.theme-toggle-option{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.65rem;padding:.55rem .6rem;text-align:left;transition:all .12s;width:100%}.theme-toggle-option:hover{background:var(--fill-4);color:var(--text-primary)}.theme-toggle-option.active{color:var(--text-primary)}.theme-toggle-option-icon{align-items:center;color:var(--text-muted);display:flex;flex-shrink:0}.theme-toggle-option.active .theme-toggle-option-icon{color:var(--primary-color)}.theme-toggle-option-label{flex:1 1}.theme-toggle-option-check{align-items:center;color:var(--primary-color);display:flex;flex-shrink:0}.ad-slot{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;margin:0 auto 1.75rem;max-width:760px;padding:.85rem 1rem;text-align:center}.ad-house{align-items:center;display:flex;flex-direction:column;gap:.65rem}.ad-house-copy{color:var(--text-secondary);font-size:.85rem;line-height:1.45;margin:0;max-width:62ch}.ad-house-copy strong{color:var(--text-primary)}.ad-house-cta{white-space:nowrap}.ad-caption{color:var(--text-muted);font-size:.72rem;line-height:1.4;margin:.55rem 0 0}.ad-caption-link{color:var(--primary-color);font-weight:600;text-decoration:none}.ad-caption-link:hover{text-decoration:underline}.ad-ethical{display:flex;justify-content:center}.ad-corner{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;bottom:1rem;bottom:calc(1rem + env(safe-area-inset-bottom, 0px));box-shadow:0 6px 20px #0000004d;padding:.4rem .55rem;position:fixed;right:1rem;width:min(300px,calc(100vw - 2rem));z-index:900}.ad-corner-ad{display:flex;justify-content:center;min-width:0}.ad-corner-note{color:var(--text-muted);font-size:.68rem;line-height:1.35;margin:.3rem 0 0;text-align:center}.ad-bar-remove{color:var(--primary-color);font-weight:600;text-decoration:none;white-space:nowrap}.ad-bar-remove:hover{text-decoration:underline}@media (min-width:561px){body.cspp-ad-corner-visible .ai-tutor-bubble{bottom:1.5rem;bottom:calc(1.5rem + var(--cspp-ad-corner-height, 0px))}body.cspp-ad-corner-visible .back-to-top{bottom:5.5rem;bottom:calc(5.5rem + var(--cspp-ad-corner-height, 0px))}}body:has(.ai-tutor-panel) .ad-corner{display:none}@media (max-width:560px){.ad-corner{bottom:auto;box-shadow:none;margin:1.5rem 0 0;padding:.65rem .85rem;position:static;right:auto;width:auto}}.site-footer{border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.85rem;margin-top:auto;padding:2.5rem 2rem 1.5rem}.footer-ap-disclaimer{opacity:.75}.footer-ap-disclaimer,.footer-trademark-notice{color:var(--text-secondary);font-size:.75rem;line-height:1.4;margin-left:auto;margin-right:auto;margin-top:.75rem;max-width:720px;padding:0 1rem;text-align:center}.footer-trademark-notice{opacity:.85}.footer-brand{color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:1.75rem;text-align:center}.footer-columns{grid-gap:1.5rem 2rem;display:grid;gap:1.5rem 2rem;grid-template-columns:repeat(4,1fr);margin:0 auto 1.75rem;max-width:1100px}.footer-col{display:flex;flex-direction:column;gap:.4rem}.footer-col-heading{border-bottom:1px solid #00b50933;color:#00b509;color:var(--primary-color,#00b509);font-size:.72rem;font-weight:700;letter-spacing:.1em;margin:0 0 .5rem;padding-bottom:.4rem;text-transform:uppercase}.footer-col a{color:var(--text-secondary);font-size:.82rem;line-height:1.6;text-decoration:none;transition:color .2s}.footer-col a:hover{color:var(--primary-color)}.footer-col a.footer-col-cta{color:var(--primary-color);font-size:.86rem;font-weight:700}.footer-col a.footer-col-cta:hover{color:var(--text-primary);text-decoration:underline}.footer-apps{border-top:1px solid var(--border-color);margin:0 auto 1.5rem;max-width:900px;padding-top:1.25rem;text-align:center}.footer-apps-heading{color:#00b509;color:var(--primary-color,#00b509);display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.1em;margin:0 0 .85rem;text-decoration:none;text-transform:uppercase}.footer-apps-heading:hover{text-decoration:underline}.footer-apps-badges{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem 1.25rem;justify-content:center}.footer-apps-app{border-radius:8px;gap:.4rem;padding:.35rem .5rem}.footer-apps-app,.footer-apps-badge{align-items:center;display:inline-flex}.footer-apps-badge{text-decoration:none;transition:opacity .15s ease}.footer-apps-badge:hover{opacity:.85}.footer-apps-icon{border-radius:7px;display:block;flex-shrink:0;height:32px;width:32px}.footer-apps-store-badge{display:block;height:40px;width:auto}.footer-connect{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:center;margin:0 auto 1.5rem;max-width:900px;padding-top:1.25rem}.footer-contact-cta{align-items:center;background:var(--primary-color);border-radius:999px;color:var(--primary-contrast);display:inline-flex;flex-shrink:0;font-size:.85rem;font-weight:700;gap:.5rem;padding:.5rem 1.1rem;text-decoration:none;transition:background .15s ease,transform .15s ease}.footer-contact-cta:hover{background:var(--primary-hover);color:var(--primary-contrast);transform:translateY(-1px)}.footer-connect-note{color:var(--text-secondary);font-size:.8rem}.footer-social{align-items:center;display:flex;gap:1.25rem;justify-content:center}.footer-social-link{color:var(--text-secondary);display:inline-flex;opacity:.75;transition:opacity .15s ease,color .15s ease}.footer-social-link:hover{color:var(--primary-color);opacity:1}.footer-bottom{align-items:center;border-top:1px solid var(--border-color);color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:.75rem;gap:.5rem 1.25rem;justify-content:center;opacity:.6;padding-top:1.25rem;text-align:center}.footer-legal-links{align-items:center;display:inline-flex;flex-wrap:wrap;gap:.25rem}.footer-legal-links a{color:inherit;text-decoration:none}.footer-legal-links a:hover{text-decoration:underline}@media (max-width:1000px){.footer-columns{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.site-footer{padding:2rem 1.25rem 1.25rem}.footer-columns{gap:1.25rem 1.5rem;grid-template-columns:repeat(2,1fr)}.footer-connect{flex-direction:column;gap:.75rem}.footer-connect-note{text-align:center}}@media (max-width:380px){.footer-columns{gap:1.25rem;grid-template-columns:1fr}}.cspp-external-footer-wrapper .footer-apps-store-badge{display:block!important;height:40px!important;max-height:40px!important;max-width:140px!important;width:auto!important}.cspp-external-footer-wrapper .footer-apps-badge,.cspp-external-footer-wrapper .footer-apps-badge img{max-width:140px!important}.home{min-height:calc(100vh - 80px)}.home-csp{--primary-color:#a855f7;--primary-hover:#9333ea}.home-csp .maven-hero{background:linear-gradient(135deg,#2d1854,#120a24)}.home-csp .maven-hero-label{background:#a855f726;border:1px solid #a855f74d;color:#a855f7}.home-csp .maven-hero .hero-brand-pp{color:#00b509}.hero-pricing{align-items:center;display:flex;flex-wrap:wrap;font-size:1rem;gap:.5rem;justify-content:center;margin-bottom:2rem;opacity:.92}.hero-pricing-trial{color:var(--primary-color);font-weight:600}.hero-pricing-divider{opacity:.5}.hero-pricing-full{color:var(--text-primary)}.hero-pricing-full strong{color:var(--text-primary);font-weight:700}.hero-playground-cta{display:flex;justify-content:center;margin-top:1.5rem}.hero-playground-link{align-items:center;background:var(--fill-3);border:1px solid #38bdf873;border-radius:12px;color:var(--text-primary);display:inline-flex;gap:.85rem;padding:.85rem 1.4rem;text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .15s ease}.hero-playground-link:hover{background:#38bdf826;border-color:#38bdf8d9;color:#fff;text-decoration:none;transform:translateY(-1px)}.hero-playground-icon{font-size:1.6rem;line-height:1}.hero-playground-text{display:flex;flex-direction:column;text-align:left}.hero-playground-text strong{color:#38bdf8;font-size:1rem;font-weight:700}.hero-playground-text small{color:var(--text-secondary);font-size:.82rem;margin-top:.15rem}.stats-bar{background:linear-gradient(180deg,#004d040f 0,var(--bg-color) 100%);border-bottom:1px solid var(--border-color);padding:3rem 2rem}.home-csp .stats-bar{background:linear-gradient(180deg,#a855f70f 0,var(--bg-color) 100%)}.stats-bar-inner{flex-wrap:wrap;gap:2rem;justify-content:center;margin:0 auto;max-width:1100px}.stat-item,.stats-bar-inner{align-items:center;display:flex}.stat-item{flex-direction:column;gap:.35rem;min-width:80px}.stat-number{color:var(--primary-color);font-size:2.25rem;font-weight:800;line-height:1}.stat-label{color:var(--text-secondary);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.stat-divider{background:var(--border-color);flex-shrink:0;height:2.5rem;width:1px}.course-preview{margin:0 auto;max-width:1200px;padding:5rem 2rem}.course-preview h2{color:var(--text-primary);font-size:2.5rem;margin-bottom:.75rem;text-align:center}.section-subtitle{color:var(--text-secondary);font-size:1.125rem;margin-bottom:3rem;margin-left:auto;margin-right:auto;max-width:600px;text-align:center}.units-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.unit-preview-card{align-items:flex-start;background:var(--bg-color);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:1rem;padding:1.25rem 1.5rem;transition:all .2s}.unit-preview-card:hover{border-color:var(--primary-color);transform:translateX(4px)}.unit-icon{flex-shrink:0;font-size:1.75rem;margin-top:.125rem}.unit-info{flex:1 1;min-width:0}.unit-number{color:var(--primary-color);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.unit-info h3{color:var(--text-primary);font-size:1.125rem;line-height:1.3;margin-bottom:.25rem}.unit-info p{color:var(--text-secondary);font-size:.875rem;line-height:1.5;margin:0}.features{margin:0 auto;max-width:1400px;padding:5rem 2rem}.features h2{color:var(--text-primary);font-size:2.5rem;margin-bottom:.75rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:var(--bg-color);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow);padding:2rem;text-align:center;transition:all .3s}.feature-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card,.feature-card h3{color:var(--text-primary)}.feature-card h3{font-size:1.25rem;margin-bottom:1rem}.feature-card p{color:var(--text-secondary);line-height:1.6}.feature-preview{margin-top:1.5rem;text-align:left}.mock-video{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:.75rem;padding:2rem 1.5rem}.mock-play-btn,.mock-video{align-items:center;display:flex}.mock-play-btn{background:var(--primary-color);border-radius:50%;color:#fff;font-size:1.25rem;height:48px;justify-content:center;width:48px}.mock-video span{color:var(--text-secondary);font-size:.875rem}.mock-quiz{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem}.mock-question{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin-bottom:.75rem}.mock-options{display:flex;flex-direction:column;gap:.375rem}.mock-option{background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.8125rem;padding:.5rem .75rem}.mock-option.correct{background:var(--success-bg);border-color:var(--success-color);color:var(--success-color);font-weight:600}.mock-flashcard{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;justify-content:center;min-height:120px;padding:1.75rem 1.25rem;position:relative;text-align:center}.mock-fc-label{color:var(--text-secondary);font-size:.625rem;font-weight:600;left:1rem;letter-spacing:.15em;position:absolute;text-transform:uppercase;top:.75rem}.mock-fc-text{color:var(--text-primary);font-size:.9375rem;line-height:1.5;max-width:250px}.mock-fc-hint{bottom:.75rem;color:var(--text-secondary);font-size:.75rem;opacity:.6;position:absolute}.mock-exam{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;gap:.625rem;padding:1.25rem}.mock-exam-timer{font-feature-settings:"tnum";color:var(--primary-color);font-size:1.1rem;font-variant-numeric:tabular-nums;font-weight:700}.mock-exam-progress{color:var(--text-secondary);font-size:.875rem}.ap-exam-cta{align-items:center;background:linear-gradient(135deg,#00b5090f,#004d041f);border-bottom:1px solid var(--border-color);border-top:1px solid #00b50933;display:flex;flex-wrap:wrap;gap:2.5rem;justify-content:center;max-width:100%;padding:2.5rem 2rem;text-align:left}.home-csp .ap-exam-cta{background:linear-gradient(135deg,#a855f70f,#581c871f);border-top:1px solid #a855f733}.ap-cta-content{display:flex;flex-direction:column;gap:.5rem;max-width:580px}.ap-cta-badge{background:var(--primary-color);border-radius:4px;color:#000;display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.25rem .65rem;text-transform:uppercase;white-space:nowrap;width:-webkit-fit-content;width:fit-content}.ap-cta-title{color:var(--text-primary);font-size:1.25rem;font-weight:700;line-height:1.3;margin:0}.ap-exam-cta p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0}.ap-exam-cta p strong{color:var(--primary-color);font-weight:700}.btn-cta-register{flex-shrink:0;font-size:1rem!important;font-weight:600!important;padding:.85rem 2rem!important;white-space:nowrap}.mock-blocks{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;gap:.375rem;padding:1rem}.mock-block{background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8125rem;padding:.5rem .75rem}.mock-block.mock-nested{margin-left:1.25rem}.unit-final:hover{border-color:var(--primary-color)!important}.dashboard-mockup-section{background:linear-gradient(180deg,var(--bg-secondary) 0,var(--bg-color) 100%);padding:4.5rem 2rem;text-align:center}.dashboard-mockup-section h2{color:var(--text-primary);font-size:2.25rem;font-weight:800;margin-bottom:.75rem}.dashboard-mockup-section .section-subtitle{color:var(--text-secondary);margin-bottom:2.5rem}.dashboard-mockup-frame{background:var(--bg-color);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 25px 50px -12px #00000073,0 0 0 1px #ffffff0a;margin:0 auto;max-width:880px;overflow:hidden;text-align:left}.dashboard-mockup-chrome{align-items:center;background:#00000059;border-bottom:1px solid var(--border-color);display:flex;gap:.5rem;padding:.65rem 1rem}.dashboard-mockup-chrome-dot{border-radius:50%;display:inline-block;height:11px;width:11px}.dashboard-mockup-chrome-dot.red{background:#ff5f57}.dashboard-mockup-chrome-dot.yellow{background:#febc2e}.dashboard-mockup-chrome-dot.green{background:#28c840}.dashboard-mockup-url{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.75rem;margin-left:.75rem}.dashboard-mockup-body{padding:1.5rem 1.75rem 1.75rem}.dashboard-mockup-hero{background:linear-gradient(135deg,#a855f71f,#a855f705);border:1px solid #a855f740;border-radius:12px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;padding:1.25rem 1.5rem}.dashboard-mockup-hero.mockup-hero-csa{background:linear-gradient(135deg,#22c55e1f,#22c55e05);border-color:#22c55e40}.dashboard-mockup-hero.mockup-hero-hci{background:linear-gradient(135deg,#06b6d41f,#06b6d405);border-color:#06b6d440}.dashboard-mockup-badge{align-self:flex-start;background:#a855f733;border-radius:999px;color:#d8b4fe;color:var(--accent-purple,#d8b4fe);display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.25rem .65rem;text-transform:uppercase}.dashboard-mockup-hero.mockup-hero-csa .dashboard-mockup-badge{background:#22c55e33;color:#86efac;color:var(--success-text,#86efac)}.dashboard-mockup-hero.mockup-hero-hci .dashboard-mockup-badge{background:#06b6d433;color:#67e8f9;color:var(--accent-cyan,#67e8f9)}.dashboard-mockup-greeting{color:var(--text-primary);font-size:1.15rem;font-weight:700;margin:0}.dashboard-mockup-progress-row{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;justify-content:space-between}.dashboard-mockup-progress-percent{color:var(--text-primary);font-size:1.5rem;font-weight:800}.dashboard-mockup-progress-bar{background:var(--fill-3);border-radius:999px;height:8px;overflow:hidden}.dashboard-mockup-progress-fill{background:linear-gradient(90deg,#a855f7,#c084fc);border-radius:999px;height:100%}.mockup-hero-csa .dashboard-mockup-progress-fill{background:linear-gradient(90deg,#16a34a,#22c55e)}.mockup-hero-hci .dashboard-mockup-progress-fill{background:linear-gradient(90deg,#0891b2,#06b6d4)}.dashboard-mockup-continue{align-self:flex-start;color:#d8b4fe;color:var(--accent-purple,#d8b4fe);font-size:.85rem;font-weight:600}.mockup-hero-csa .dashboard-mockup-continue{color:#86efac;color:var(--success-text,#86efac)}.mockup-hero-hci .dashboard-mockup-continue{color:#67e8f9;color:var(--accent-cyan,#67e8f9)}.dashboard-mockup-units{display:flex;flex-direction:column;gap:.45rem}.dashboard-mockup-unit{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.dashboard-mockup-unit-header{align-items:center;display:flex;gap:.7rem;padding:.65rem .85rem}.dashboard-mockup-chevron{color:var(--text-secondary);font-size:.7rem;text-align:center;transition:transform .15s;width:10px}.dashboard-mockup-unit.expanded .dashboard-mockup-chevron{transform:rotate(90deg)}.dashboard-mockup-unit-icon{font-size:1.05rem}.dashboard-mockup-unit-title{color:var(--text-primary);flex:1 1;font-size:.88rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-mockup-unit-meta{color:var(--text-secondary);font-size:.75rem;white-space:nowrap}.dashboard-mockup-unit-bar{background:var(--fill-3);border-radius:999px;flex-shrink:0;height:5px;overflow:hidden;width:60px}.dashboard-mockup-unit-fill{background:#a855f7;height:100%;transition:width .2s}.dashboard-mockup-unit.theme-csa .dashboard-mockup-lesson-overview,.dashboard-mockup-unit.theme-csa .dashboard-mockup-lesson.completed .dashboard-mockup-lesson-status,.dashboard-mockup-unit.theme-csa .dashboard-mockup-unit-fill{color:#22c55e}.dashboard-mockup-unit.theme-csa .dashboard-mockup-unit-fill{background:#22c55e}.dashboard-mockup-unit.theme-csa .dashboard-mockup-lesson-overview{background:#22c55e14;border-left-color:#22c55e}.dashboard-mockup-unit.theme-hci .dashboard-mockup-unit-fill{background:#06b6d4}.dashboard-mockup-unit.theme-hci .dashboard-mockup-lesson-overview,.dashboard-mockup-unit.theme-hci .dashboard-mockup-lesson.completed .dashboard-mockup-lesson-status{color:#06b6d4}.dashboard-mockup-unit.theme-hci .dashboard-mockup-lesson-overview{background:#06b6d414;border-left-color:#06b6d4}.dashboard-mockup-unit.theme-csp .dashboard-mockup-lesson-overview,.dashboard-mockup-unit.theme-csp .dashboard-mockup-lesson.completed .dashboard-mockup-lesson-status{color:var(--accent-purple)}.dashboard-mockup-unit.theme-csp .dashboard-mockup-lesson-overview{background:#a855f714;border-left-color:#a855f7}.dashboard-mockup-unit-check{color:var(--success-color);font-size:.85rem;font-weight:800}.dashboard-mockup-unit-lessons{border-top:1px dashed var(--line-1);display:flex;flex-direction:column;gap:.15rem;padding:.5rem .85rem .65rem 1.75rem}.dashboard-mockup-lesson{align-items:center;border-radius:6px;color:var(--text-primary);display:flex;font-size:.82rem;gap:.55rem;padding:.4rem .55rem}.dashboard-mockup-lesson-status{color:var(--text-secondary);font-size:.72rem;font-weight:700;min-width:16px;text-align:center;width:16px}.dashboard-mockup-lesson-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-mockup-lesson.completed .dashboard-mockup-lesson-title{color:var(--text-secondary)}.dashboard-mockup-lesson.in-progress{background:#f59e0b24;border-left:3px solid #f59e0b;padding-left:calc(.55rem - 3px)}.dashboard-mockup-lesson.in-progress .dashboard-mockup-lesson-status{color:#f59e0b;color:var(--warning-color,#f59e0b)}.dashboard-mockup-lesson.in-progress .dashboard-mockup-lesson-title{color:var(--text-primary);font-weight:600}.dashboard-mockup-lesson-overview{background:#a855f714;border-left:3px solid #a855f7;font-weight:600;margin-bottom:.2rem;padding-left:calc(.55rem - 3px)}.dashboard-mockup-lesson-pill{background:#f59e0b2e;border-radius:999px;color:#f59e0b;color:var(--warning-color,#f59e0b);font-size:.65rem;font-weight:700;letter-spacing:.08em;padding:.12rem .45rem;text-transform:uppercase}.dashboard-mockup-lesson-cta{background:var(--fill-3);border:1px solid var(--border-color);border-radius:999px;color:var(--text-primary);flex-shrink:0;font-size:.62rem;font-weight:700;padding:.1rem .45rem;white-space:nowrap}@media (max-width:600px){.dashboard-mockup-body{padding:1rem}.dashboard-mockup-unit-meta{display:none}.dashboard-mockup-unit-bar{width:40px}.dashboard-mockup-unit-lessons{padding-left:1rem}.dashboard-mockup-lesson-cta,.dashboard-mockup-lesson-pill{display:none}}.pricing-section{background:var(--bg-color);padding:5rem 2rem;text-align:center}.pricing-section h2{color:var(--text-primary);font-size:2.25rem;font-weight:800;margin-bottom:.75rem}.pricing-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:3rem auto 0;max-width:800px}.pricing-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;display:flex;flex-direction:column;gap:1rem;padding:2rem 1.75rem;text-align:left}.pricing-card.pricing-featured{background:#00b5090a;border-color:var(--primary-color);position:relative}.home-csp .pricing-card.pricing-featured{background:#a855f70a}.pricing-badge{color:var(--primary-color);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.pricing-price{align-items:baseline;display:flex;gap:.5rem}.price-amount{color:var(--text-primary);font-size:2.5rem;font-weight:800}.price-period{color:var(--text-secondary);font-size:.875rem}.pricing-desc{color:var(--text-secondary);font-size:.925rem;line-height:1.5}.pricing-features{display:flex;flex:1 1;flex-direction:column;gap:.5rem;list-style:none}.pricing-features li{color:var(--text-primary);font-size:.9rem}.cta{background:linear-gradient(135deg,#004d04,#001a01);color:#fff;padding:5rem 2rem;text-align:center}.home-csp .cta{background:linear-gradient(135deg,#2d1854,#120a24)}.cta h2{font-size:2.5rem;margin-bottom:1rem}.cta p{font-size:1.25rem;margin-bottom:2rem;opacity:.9}.cta .btn-primary{background-color:var(--primary-color);color:var(--primary-contrast)}.cta .btn-primary:hover{background-color:var(--primary-hover);color:var(--primary-contrast)}.hci-hero{background:linear-gradient(135deg,#0a1e2e,#081520 60%,#0d1a24)!important}.hci-hero-label{background:#06b6d426!important;border-color:#06b6d44d!important}.hci-hero-label,.hci-unit-number{color:#06b6d4!important}.hci-course-switch{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem;justify-content:center;margin-top:1.75rem;opacity:.75}.hci-course-switch a{color:var(--accent-cyan);font-weight:600;text-decoration:none}.hci-course-switch a:hover{color:var(--accent-cyan);text-decoration:underline}.also-btn-green{background:#0000!important;border-color:var(--success-color)!important;color:var(--success-color)!important}.also-btn-green:hover{background:#22c55e1f!important;border-color:var(--success-text)!important;color:var(--success-text)!important;text-decoration:none!important}.also-btn-purple{background:#0000!important;border-color:#a78bfa!important;color:#a78bfa!important}.also-btn-purple:hover{background:#a78bfa1f!important;border-color:var(--accent-purple)!important;color:var(--accent-purple)!important;text-decoration:none!important}.also-btn-cyan{background:#0000!important;border-color:#06b6d4!important;color:#06b6d4!important}.also-btn-cyan:hover{background:#06b6d41f!important;border-color:var(--accent-cyan)!important;color:var(--accent-cyan)!important;text-decoration:none!important}.hci-pricing-featured{background:#06b6d40a!important;border-color:#06b6d466!important;box-shadow:0 0 30px #06b6d414!important}.hci-pricing-badge{color:#06b6d4!important}.hci-btn-primary{background-color:#06b6d4!important;border-color:#06b6d4!important;color:#0f172a!important}.hci-btn-primary:hover{background-color:#0891b2!important;border-color:#0891b2!important;color:#0f172a!important}.hci-hero .hero-pricing-trial{color:#22d3ee}.hci-cta{background:linear-gradient(135deg,#0a1e2e,#081520 60%,#0d1a24)}.hci-cta-switch{font-size:.9rem;margin-top:1.5rem;opacity:.75}.hci-cta-switch a{color:var(--text-primary);text-decoration:none}.hci-cta-switch a:hover{color:var(--text-primary);text-decoration:underline}.cyber-hero{background:linear-gradient(135deg,#1a1060,#0d0a2e 60%,#0f0d35)!important}.cyber-hero-label{background:#4f46e526!important;border-color:#4f46e54d!important;color:#a5b4fc!important}.cyber-hero .hero-brand-pp{color:#00b509}.cyber-hero .hero-pricing-trial,.cyber-pricing-trial{color:#a5b4fc;font-weight:600}.cyber-playground-link{border-color:#4f46e573!important}.cyber-playground-link:hover{background:#4f46e526!important;border-color:#4f46e5d9!important}.cyber-playground-strong{color:#a5b4fc!important}.cyber-stats-bar{background:linear-gradient(180deg,#4f46e50f 0,var(--bg-color) 100%)}.cyber-stat-number{color:#6366f1!important}.dashboard-mockup-hero.mockup-hero-cyber{background:linear-gradient(135deg,#4f46e51f,#4f46e505);border-color:#4f46e540}.dashboard-mockup-hero.mockup-hero-cyber .dashboard-mockup-badge{background:#4f46e533;color:#a5b4fc;color:var(--accent-indigo,#a5b4fc)}.mockup-fill-cyber{background:linear-gradient(90deg,#4f46e5,#818cf8)!important}.mockup-continue-cyber{color:#a5b4fc!important;color:var(--accent-indigo,#a5b4fc)!important}.dashboard-mockup-unit.theme-cyber .dashboard-mockup-unit-fill,.theme-cyber-fill{background:#6366f1!important}.dashboard-mockup-unit.theme-cyber .dashboard-mockup-lesson.completed .dashboard-mockup-lesson-status,.theme-cyber-check{color:#818cf8!important;color:var(--accent-indigo,#818cf8)!important}.dashboard-mockup-unit.theme-cyber .dashboard-mockup-lesson-overview,.theme-cyber-overview{background:#6366f114!important;border-left-color:#6366f1!important;color:#a5b4fc!important;color:var(--accent-indigo,#a5b4fc)!important}.cyber-unit-number{color:#6366f1!important}.cyber-btn-primary{background-color:#4f46e5!important;border-color:#4f46e5!important;color:#fff!important}.cyber-btn-primary:hover{background-color:#4338ca!important;border-color:#4338ca!important;color:#fff!important}.cyber-pricing-featured{background:#4f46e50a!important;border-color:#4f46e566!important;box-shadow:0 0 30px #4f46e514!important}.cyber-pricing-badge{color:#6366f1!important}.cyber-exam-cta{background:linear-gradient(135deg,#4f46e50f,#312e811f)!important;border-top:1px solid #4f46e533!important}.cyber-cta-badge{background:#6366f1!important;color:#fff!important}.cyber-cta{background:linear-gradient(135deg,#1a1060,#0d0a2e 60%,#0f0d35)}.csa-hero{background:linear-gradient(135deg,#062a06,#0a130a 60%,#0d1a0d)!important}.csa-hero-label{background:#00b50926!important;border-color:#00b5094d!important}.csa-hero-label,.csa-unit-number{color:#00b509!important}.csa-btn-primary{background-color:#00b509!important;border-color:#00b509!important;color:#fff!important}.csa-btn-primary:hover{background-color:#00a008!important;border-color:#00a008!important;color:#fff!important}.csa-pricing-featured{border-color:#00b50966!important;box-shadow:0 0 30px #00b50914!important}.csa-pricing-badge{background:#00b50926!important;border:1px solid #00b5094d!important;color:#00b509!important}.csa-cta{background:linear-gradient(135deg,#062a06,#0a130a 60%,#0d1a0d)}@media (max-width:768px){.stats-bar{padding:2rem 1rem}.stats-bar-inner{gap:1.25rem}.stat-number{font-size:1.75rem}.stat-label{font-size:.7rem}.stat-divider{display:none}.ap-exam-cta{gap:1.25rem;padding:2rem 1.5rem;text-align:center}.ap-cta-content{align-items:center}.btn-cta-register{width:100%}.course-preview{padding:3rem 1rem}.course-preview h2{font-size:2rem}.units-grid{grid-template-columns:1fr}.features{padding:3rem 1rem}.features h2{font-size:2rem}.features-grid{grid-template-columns:1fr}.ap-exam-cta{flex-direction:column;gap:.75rem;padding:1.25rem 1rem}.cta{padding:3rem 1rem}.cta h2{font-size:2rem}}.newsletter-signup{margin:1.75rem auto 0;max-width:560px;text-align:center}.newsletter-label{color:#94a3b8;color:var(--text-secondary,#94a3b8);display:block;font-size:.9rem;margin-bottom:.6rem}.newsletter-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.newsletter-input{background:#0f1a3099;border:1px solid #94a3b859;border-radius:10px;color:#f1f5f9;flex:1 1 260px;font-size:.95rem;max-width:320px;padding:.65rem .9rem}.newsletter-input:focus{border-color:#00b509;outline:none}.newsletter-hp{height:1px;left:-9999px;opacity:0;position:absolute;width:1px}.newsletter-btn{background:#00b509;border:none;border-radius:10px;color:#04210b;cursor:pointer;flex:0 0 auto;font-size:.95rem;font-weight:700;padding:.65rem 1.2rem}.newsletter-btn:hover:not(:disabled){background:#00d40b}.newsletter-btn:disabled{cursor:wait;opacity:.6}.newsletter-signup-done{color:#4ade80;color:var(--success-text,#4ade80);font-size:.95rem;margin-top:1.5rem}[data-theme=light] .newsletter-input{background:#fff;color:#0f172a}[data-theme=light] .newsletter-label{color:#475569}.newsletter-privacy{color:#94a3b8;display:block;font-size:.78rem;line-height:1.4;margin-top:.5rem}.newsletter-privacy a{color:inherit;text-decoration:underline}[data-theme=light] .newsletter-privacy{color:#64748b}.mh{--mh-grad:linear-gradient(120deg,#a855f7,#06b6d4 45%,#14b8a6 75%,#ec4899)}.mh-hero{grid-gap:3rem;align-items:center;display:grid;gap:3rem;grid-template-columns:1.05fr .95fr;margin:0 auto;max-width:1200px;padding:clamp(2.5rem,6vw,5rem) 1.5rem 3rem}.mh-brand{color:#00b509;color:var(--primary-color,#00b509);cursor:default;display:table;font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:700;letter-spacing:-.02em;line-height:1;margin-bottom:1rem;transition:color .18s ease,text-shadow .18s ease}.mh-brand:hover{color:#39ff14;text-shadow:0 0 4px #39ff14e6,0 0 12px #39ff14b3,0 0 28px #39ff1480,0 0 56px #39ff1459}:root[data-theme=light] .mh-brand:hover{color:#0a9a10;text-shadow:0 0 4px #39ff148c,0 0 12px #39ff1473,0 0 26px #39ff1459}.mh-eyebrow{color:#9ca3af;color:var(--text-secondary,#9ca3af);display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.08em;margin-bottom:1rem;text-transform:uppercase}.mh-title{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:clamp(2.4rem,5.2vw,4rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:0 0 1.25rem}.mh-title-grad{-webkit-text-fill-color:#0000;background:var(--mh-grad);-webkit-background-clip:text;background-clip:text;color:#0000}.mh-lede{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.6;margin:0 0 1.75rem;max-width:36rem}.mh-cta-row{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:1.5rem}.mh-cta-center{justify-content:center}.mh-hero-trust{color:#9ca3af;color:var(--text-secondary,#9ca3af);display:flex;flex-wrap:wrap;font-size:.875rem;gap:1.25rem}.mh-hero-trust span{white-space:nowrap}.mh-window{background:#0f1117;border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:12px;box-shadow:0 24px 60px -20px #0000008c;overflow:hidden}.mh-window-bar{align-items:center;background:#1a1d27;border-bottom:1px solid #ffffff0f;display:flex;gap:.4rem;padding:.55rem .8rem}.mh-dot{border-radius:50%;display:inline-block;height:11px;width:11px}.mh-dot.red{background:#ff5f57}.mh-dot.yellow{background:#febc2e}.mh-dot.green{background:#28c840}.mh-window-url{color:#8b93a7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;margin-left:.6rem}.mh-window-body{padding:1rem 1.1rem 1.2rem}.mh-hero-visual{min-width:0}.mh-lesson-chip{background:#14b8a624;border:1px solid #14b8a659;border-radius:999px;color:#5eead4;display:inline-block;font-size:.72rem;font-weight:700;margin-bottom:.6rem;padding:.2rem .6rem}.mh-lesson-h{color:#e8eaf0;font-size:1.05rem;font-weight:700;margin-bottom:.7rem}.mh-editor{background:#0b0d12;border:1px solid #ffffff12;border-radius:8px;overflow-x:auto;padding:.7rem .85rem}.mh-editor pre{background:#0000;color:#c9d3e8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.5;margin:0;padding:0;white-space:pre}.mh-result-row{border-radius:7px;font-size:.85rem;font-weight:600;margin-top:.7rem;padding:.5rem .7rem}.mh-pass{background:#28c84021;color:#4ade80}.mh-pass span{font-weight:800;margin-right:.3rem}.mh-section{margin:0 auto;max-width:1200px;padding:clamp(2.5rem,5vw,4rem) 1.5rem}.mh-section-alt{background:#12131c;background:var(--bg-secondary,#12131c);max-width:none}.mh-section-alt>*{margin-left:auto;margin-right:auto;max-width:1200px}.mh-h2{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:clamp(1.6rem,3vw,2.3rem);font-weight:800;letter-spacing:-.01em;margin:0 auto .5rem}.mh-h2,.mh-sub{text-align:center}.mh-sub{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:1.05rem;margin:0 auto 2.25rem;max-width:40rem}.mh-course-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.mh-course-card{background:#16161f;background:var(--bg-secondary,#16161f);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;padding:1.25rem 1.25rem 1.4rem;position:relative;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.mh-course-card:before{background:#a855f7;background:var(--c,#a855f7);content:"";height:3px;inset:0 0 auto 0;opacity:.9;position:absolute}.mh-course-card:hover{border-color:#a855f7;border-color:var(--c,#a855f7);box-shadow:0 16px 40px -22px #a855f7;box-shadow:0 16px 40px -22px var(--c,#a855f7);text-decoration:none;transform:translateY(-4px)}.mh-course-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:.6rem}.mh-course-icon{font-size:2rem}.mh-course-free{background:#4ade801f;border:1px solid #4ade8059;border-radius:999px;color:#4ade80;font-size:.7rem;font-weight:800;letter-spacing:.05em;padding:.2rem .55rem;text-transform:uppercase}.mh-course-tag{color:#a855f7;color:var(--c,#a855f7);font-size:.72rem;font-weight:700;letter-spacing:.04em;margin-bottom:.2rem;text-transform:uppercase}.mh-course-name{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:1.1rem;font-weight:700;line-height:1.25;margin:0 0 .45rem}.mh-course-blurb{color:#9ca3af;color:var(--text-secondary,#9ca3af);flex:1 1;font-size:.9rem;line-height:1.5;margin:0 0 .9rem}.mh-course-go{color:#a855f7;color:var(--c,#a855f7);font-size:.88rem;font-weight:700}.mh-course-card-cta{--c:#14b8a6;align-items:flex-start;background:linear-gradient(135deg,#a855f71a,#14b8a61a);justify-content:center}.mh-course-card-cta:before{background:var(--mh-grad)}.mh-highlights{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.mh-highlight{padding:1.25rem 1rem;text-align:center}.mh-highlight-icon{display:block;font-size:2.2rem;margin-bottom:.6rem}.mh-highlight h3{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:1.1rem;margin:0 0 .4rem}.mh-highlight p{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.92rem;line-height:1.55;margin:0}.mh-shots{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.mh-shot-label{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:.9rem;font-weight:600;margin-top:.7rem;text-align:center}.mh-split{display:grid;grid-template-columns:1fr 1fr}.mh-code-css{background:#0b0d12;color:#c9d3e8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.5;margin:0;overflow-x:auto;padding:.85rem;white-space:pre}.mh-preview{align-items:center;background:#fff;display:flex;justify-content:center;padding:.85rem}.mh-preview-card{background:#ec4899;border-radius:12px;box-shadow:0 8px 20px -8px #ec4899b3;color:#fff;font-size:.85rem;font-weight:700;padding:1rem 1.1rem}.mh-prog{grid-gap:.6rem;align-items:center;color:#c9d3e8;display:grid;font-size:.82rem;gap:.6rem;grid-template-columns:150px 1fr 38px;margin-bottom:.7rem}.mh-prog b{color:#e8eaf0;font-size:.8rem;text-align:right}.mh-bar{background:#ffffff14;height:8px;overflow:hidden}.mh-bar,.mh-bar i{border-radius:999px}.mh-bar i{background:#00b509;display:block;height:100%}.mh-q{color:#e8eaf0;font-size:.92rem;font-weight:600;margin-bottom:.7rem}.mh-q code{background:#ffffff14;border-radius:4px;font-size:.85em;padding:.05rem .3rem}.mh-opt{border:1px solid #ffffff14;border-radius:7px;color:#c9d3e8;font-size:.85rem;margin-bottom:.4rem;padding:.45rem .7rem}.mh-opt-ok{color:#4ade80;font-weight:800}.mh-opt:first-of-type{background:#4ade801a;border-color:#4ade8080}.mh-opt-dim{opacity:.55}.mh-explain{color:#9aa6bd;font-size:.82rem;line-height:1.45;margin-top:.5rem}.mh-author{grid-gap:2.5rem;align-items:center;display:grid;gap:2.5rem;grid-template-columns:1.3fr .7fr}.mh-author-bio p{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:1.05rem;line-height:1.65;margin:0 0 1rem}.mh-author-bio strong{color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.mh-author-sub{font-size:.95rem!important}.mh-author-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.mh-book{align-items:center;gap:1rem}.mh-book,.mh-book-cover{display:flex;flex-direction:column}.mh-book-cover{background:linear-gradient(150deg,#1e293b,#0f172a);border-left:7px solid #a855f7;border-radius:6px 10px 10px 6px;box-shadow:0 22px 50px -18px #000000a6;height:280px;justify-content:space-between;padding:1.4rem 1.2rem;text-decoration:none;transition:transform .15s;width:210px}.mh-book-cover:hover{text-decoration:none;transform:translateY(-4px) rotate(-.5deg)}.mh-book-kicker{color:#c084fc;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mh-book-title{color:#f8fafc;font-size:1.5rem;font-weight:800;line-height:1.1;margin-top:.4rem}.mh-book-foundational{color:#94a3b8;flex:1 1;font-size:.8rem;line-height:1.35;margin-top:.5rem}.mh-book-author{color:#e2e8f0;font-size:.85rem;font-weight:600}.mh-book-meta{text-align:center}.mh-book-cite{font-size:.82rem;line-height:1.5;margin:0 0 .25rem}.mh-book-cite,.mh-book-isbn{color:#9ca3af;color:var(--text-secondary,#9ca3af)}.mh-book-isbn{font-size:.78rem;margin:0 0 .85rem;opacity:.85}.mh-final{background:radial-gradient(60% 120% at 50% 0,#a855f724,#0000 70%),#12131c;background:radial-gradient(60% 120% at 50% 0,#a855f724,#0000 70%),var(--bg-secondary,#12131c);padding:clamp(3rem,6vw,5rem) 1.5rem;text-align:center}.mh-final h2{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;margin:0 0 .6rem}.mh-final p{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:1.1rem;margin:0 0 1.5rem}.mh-ghc{grid-gap:clamp(1.5rem,4vw,3rem);align-items:center;background:radial-gradient(120% 140% at 100% 0,#4f46e529,#0000 60%),#12131c;background:radial-gradient(120% 140% at 100% 0,#4f46e529,#0000 60%),var(--bg-secondary,#12131c);border:1px solid #ffffff1a;border:1px solid var(--border-color,#ffffff1a);border-radius:18px;display:grid;gap:clamp(1.5rem,4vw,3rem);grid-template-columns:1.05fr .95fr;padding:clamp(1.5rem,3vw,2.5rem)}.mh-ghc-h2{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:800;letter-spacing:-.01em;margin:.4rem 0 .6rem}.mh-ghc-lede{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:1.02rem;line-height:1.6;margin:0 0 1.1rem}.mh-ghc-list{grid-gap:.55rem;display:grid;gap:.55rem;list-style:none;margin:0 0 1.4rem;padding:0}.mh-ghc-list li{align-items:flex-start;color:#e8eaf0;color:var(--text-primary,#e8eaf0);display:flex;font-size:.94rem;gap:.6rem;line-height:1.45}.mh-ghc-ic{flex:0 0 auto;font-size:1.05rem;line-height:1.4}.mh-ghc-cta{display:flex;flex-wrap:wrap;gap:.7rem}.mh-ghc-text,.mh-ghc-visual{min-width:0}.mh-ghc-repo{align-items:center;background:#ffffff0a;border-radius:8px;color:#c9d3e8;display:flex;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;gap:.5rem;margin-bottom:.45rem;overflow-wrap:anywhere;padding:.5rem .6rem}.mh-ghc-repo b{color:#f3f4f6;font-weight:600}.mh-ghc-badge{background:#5eead41f;border-radius:999px;color:#5eead4;font-family:inherit;font-size:.68rem;font-weight:700;margin-left:auto;padding:.12rem .45rem}.mh-ghc-grade{align-items:center;background:#00b5091f;border-radius:8px;color:#d1fae5;display:flex;font-size:.84rem;font-weight:600;gap:.5rem;margin-top:.7rem;padding:.55rem .6rem}.mh-ghc-grade span{color:#22c55e;font-weight:800}@media (max-width:880px){.mh-hero{gap:2rem;grid-template-columns:1fr}.mh-hero-visual{order:2}.mh-author{gap:1.75rem;grid-template-columns:1fr}.mh-book{order:-1}.mh-ghc{gap:1.75rem;grid-template-columns:1fr}.mh-ghc-visual{order:-1}}:root[data-theme=light] .mh-tool-ide .mh-tool-go{color:#7e22ce}:root[data-theme=light] .mh-tool-game .mh-tool-go{color:#0f766e}:root[data-theme=light] .mh-course-free{background:#0596691a;border-color:#05966966;color:#047857}:root[data-theme=light] .mh-course-go,:root[data-theme=light] .mh-course-tag{color:#9333ea;color:var(--c,#9333ea);color:color-mix(in srgb,#9333ea 60%,#1a1d21);color:color-mix(in srgb,var(--c,#9333ea) 60%,#1a1d21)}:root[data-theme=light] .mh-window{background:#0f1117}:root[data-theme=light] .mh-section-alt{background:#f6f7fb}:root[data-theme=light] .mh-final{background:radial-gradient(60% 120% at 50% 0,#a855f71a,#0000 70%),#f6f7fb}:root[data-theme=light] .mh-ghc{background:radial-gradient(120% 140% at 100% 0,#4f46e51a,#0000 60%),#f6f7fb;border-color:#00000014}:root[data-theme=light] .mh-ghc-repo{background:#ffffff0f}.mh-book-cover-link{display:inline-block;text-decoration:none;transition:transform .15s}.mh-book-cover-link:hover{text-decoration:none;transform:translateY(-4px) rotate(-.5deg)}.mh-book-img{border-radius:5px;box-shadow:0 22px 50px -18px #000000a6;display:block;height:auto;max-width:62vw;width:220px}.mh-tools-label{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.76rem;font-weight:800;letter-spacing:.09em;margin:1.5rem 0 .8rem;text-align:center;text-transform:uppercase}.mh-tools-grid{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}.mh-tool{align-items:center;background:#16161f;background:var(--bg-secondary,#16161f);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:12px;display:flex;gap:.85rem;padding:.9rem 1rem;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.mh-tool:hover{text-decoration:none;transform:translateY(-3px)}.mh-tool-ide:hover{border-color:#a855f7;box-shadow:0 14px 30px -20px #a855f7}.mh-tool-game:hover{border-color:#14b8a6;box-shadow:0 14px 30px -20px #14b8a6}.mh-tool-icon{flex:0 0 auto;font-size:1.9rem;line-height:1}.mh-tool-text{flex:1 1;min-width:0}.mh-tool-text h3{color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-size:1rem;margin:0 0 .15rem}.mh-tool-text p{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.84rem;line-height:1.4;margin:0}.mh-tool-go{flex:0 0 auto;font-size:.82rem;font-weight:700}.mh-tool-ide .mh-tool-go{color:#c084fc}.mh-tool-game .mh-tool-go{color:#5eead4}.mh .mh-h2,.mh .mh-sub{text-align:center;width:100%}.seo-content{border-top:1px solid #7f7f7f33;border-top:1px solid var(--border-color,var(--line-2,#7f7f7f33));margin:44px auto 0;max-width:1120px;padding:30px 20px 8px}.seo-content-title{color:var(--text-primary);font-size:1.25rem;font-weight:800;letter-spacing:-.01em;margin:0 0 12px}.seo-content-title~.seo-content-title{margin-top:30px}.seo-content-lead{color:var(--text-secondary);font-size:.96rem;line-height:1.65;margin:0 0 14px;max-width:74ch}.seo-content-pills{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 14px;padding:0}.seo-content-pills li{background:#7f7f7f14;background:var(--surface-2,#7f7f7f14);border:1px solid #7f7f7f33;border:1px solid var(--border-color,var(--line-2,#7f7f7f33));border-radius:999px;color:var(--text-primary);font-size:.82rem;font-weight:700;padding:5px 12px}.seo-content-related{color:var(--text-secondary);font-size:.9rem;margin:0 0 14px}.seo-content-related a{color:#22c55e;color:var(--link-color,var(--primary-color,#22c55e))}.seo-content-faq{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.seo-content-faq-item{background:#7f7f7f0f;background:var(--surface-1,#7f7f7f0f);border:1px solid #7f7f7f33;border:1px solid var(--border-color,var(--line-2,#7f7f7f33));border-radius:12px;padding:14px 16px}.seo-content-faq-q{color:var(--text-primary);font-size:.95rem;font-weight:700;margin:0 0 6px}.seo-content-faq-a{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0}@media (max-width:760px){.seo-content-faq{grid-template-columns:1fr}}.auth-page{align-items:flex-start;background:radial-gradient(ellipse at top,#00b5090f 0,#0000 60%);display:flex;justify-content:center;min-height:calc(100vh - 200px);padding:3rem 1.25rem 4rem}.auth-page__container{background:var(--bg-color);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:12px;box-shadow:var(--shadow-lg);max-width:460px;padding:2.5rem 2rem;width:100%}.auth-page--wide .auth-page__container{display:grid;grid-template-columns:1fr;max-width:980px;overflow:hidden;padding:0}@media (min-width:880px){.auth-page--wide .auth-page__container{grid-template-columns:1.05fr 1fr}}.auth-hero{background:linear-gradient(155deg,#00b50929 0,#00b50905 60%),var(--bg-color);border-bottom:1px solid #2e2e2e;border-bottom:1px solid var(--border-color,#2e2e2e);display:flex;flex-direction:column;gap:1.25rem;justify-content:center;padding:2.75rem 2.25rem}@media (min-width:880px){.auth-hero{border-bottom:none;border-right:1px solid #2e2e2e;border-right:1px solid var(--border-color,#2e2e2e)}}.auth-hero h1{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:2rem;line-height:1.15;margin:0}.auth-hero p{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:1rem;line-height:1.55;margin:0}.auth-hero__bullets{display:flex;flex-direction:column;gap:.65rem;list-style:none;margin:.25rem 0 0;padding:0}.auth-hero__bullets li{align-items:flex-start;color:#e4e4e7;color:var(--text-primary,#e4e4e7);display:flex;font-size:.95rem;gap:.65rem}.auth-hero__bullets li:before{color:#00b509;color:var(--primary-color,#00b509);content:"✓";flex-shrink:0;font-weight:700;margin-top:.05rem}.auth-form-pane{padding:2.5rem 2rem}.auth-page__title{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:1.65rem;letter-spacing:-.01em;margin:0 0 .4rem}.auth-page__lede{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}.auth-form{gap:1rem}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:.4rem}.auth-field__label{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.875rem;font-weight:500}.auth-field__input{background:var(--fill-3);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:8px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:inherit;font-size:1rem;padding:.7rem .85rem;transition:border-color .15s ease,background-color .15s ease;width:100%}.auth-field__input:focus{background:var(--fill-3);border-color:#00b509;border-color:var(--primary-color,#00b509);outline:none}.auth-field__input:disabled{cursor:not-allowed;opacity:.6}.auth-field__row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.auth-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.85rem 1rem;transition:background-color .15s ease,transform .05s ease;width:100%}.auth-button:active:not(:disabled){transform:translateY(1px)}.auth-button:disabled{cursor:not-allowed;opacity:.55}.auth-button--primary{background:#00b509;background:var(--primary-color,#00b509);color:#fff}.auth-button--primary:hover:not(:disabled){background:#009a07;background:var(--primary-hover,#009a07)}.auth-button--secondary{border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.auth-button--secondary,.auth-button--secondary:hover:not(:disabled){background:var(--fill-3)}.auth-divider{align-items:center;color:#a1a1aa;color:var(--text-secondary,#a1a1aa);display:flex;font-size:.8125rem;gap:.75rem;letter-spacing:.05em;margin:.25rem 0;text-transform:uppercase}.auth-divider:after,.auth-divider:before{background:#2e2e2e;background:var(--border-color,#2e2e2e);content:"";flex:1 1;height:1px}.auth-google-wrap{color-scheme:light;display:flex;justify-content:center}.auth-google-wrap iframe{background-color:var(--bg-color)!important}.auth-oauth-stack{align-items:center;display:flex;flex-direction:column;gap:.6rem}.auth-ms-button{align-items:center;background:var(--surface-2);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:.95rem;font-weight:600;gap:.6rem;height:40px;justify-content:center;max-width:100%;padding:0 1rem;transition:background-color .15s ease,transform .05s ease;width:380px}:root[data-theme=light] .auth-ms-button{background:#fff;border-color:#d8dce0}:root[data-theme=light] .auth-ms-button:hover:not(:disabled){background:#f3f4f6}.auth-ms-button:hover:not(:disabled){background:var(--surface-2)}.auth-ms-button:active:not(:disabled){transform:translateY(1px)}.auth-ms-button:disabled{cursor:not-allowed;opacity:.55}.auth-ms-button__logo{display:block;flex:0 0 auto}.auth-clever-button{align-items:center;background:#436cf4;border:1px solid #436cf4;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-family:system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-size:.95rem;font-weight:600;gap:.6rem;height:40px;justify-content:center;max-width:100%;padding:0 1rem;transition:background-color .15s ease,transform .05s ease;width:380px}.auth-clever-button:hover:not(:disabled){background:#3a5fd9;border-color:#3a5fd9}.auth-clever-button:active:not(:disabled){transform:translateY(1px)}.auth-clever-button:disabled{cursor:not-allowed;opacity:.55}.auth-clever-button__logo{display:block;flex:0 0 auto}.auth-error{background:#e74c3c1f;border:1px solid #e74c3c66;border-radius:8px;color:var(--error-text);font-size:.9rem;margin-bottom:.5rem;padding:.7rem .85rem}.auth-success{background:#00b5091a;border:1px solid #00b50959;border-radius:8px;color:#a7e0ad;color:var(--success-text,#a7e0ad);font-size:.95rem;line-height:1.5;margin-bottom:1rem;padding:.85rem .95rem}.auth-footer{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.9rem;margin-top:1.5rem;text-align:center}.auth-footer a,.auth-link{color:#00b509;color:var(--primary-color,#00b509);font-weight:500;text-decoration:none}.auth-footer a:hover,.auth-link:hover{text-decoration:underline}.auth-link--muted{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.85rem;text-decoration:none}.auth-link--muted:hover{color:#e4e4e7;color:var(--text-primary,#e4e4e7);text-decoration:underline}.auth-meta-row{display:flex;justify-content:flex-end;margin-top:-.5rem}.auth-checkbox-field{align-items:flex-start;color:#a1a1aa;color:var(--text-secondary,#a1a1aa);cursor:pointer;display:flex;font-size:.875rem;gap:.6rem;line-height:1.45}.auth-checkbox-field input[type=checkbox]{accent-color:#00b509;accent-color:var(--primary-color,#00b509);cursor:pointer;flex-shrink:0;height:1rem;margin-top:.2rem;width:1rem}.auth-checkbox-field input[type=checkbox]:disabled{cursor:not-allowed}.auth-field__input--code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);letter-spacing:.22em;text-transform:uppercase}.auth-code-status{font-size:.8125rem;line-height:1.45;margin-top:-.35rem;min-height:1.2em}.auth-code-status__hint{color:#a1a1aa;color:var(--text-tertiary,var(--text-secondary,#a1a1aa))}.auth-code-status__ok{color:#00b509;color:var(--primary-color,#00b509)}.auth-code-status__bad{color:#ef4444;color:var(--error-color,#ef4444);display:block;font-size:.8125rem;line-height:1.45}.auth-code-status__warn{color:#f59e0b;color:var(--warning-color,#f59e0b);font-style:normal}.auth-consent-note{color:#a1a1aa;color:var(--text-tertiary,var(--text-secondary,#a1a1aa));font-size:.8125rem;line-height:1.5;margin:-.35rem 0 0}@media (max-width:480px){.auth-page{padding:1.5rem 1rem 3rem}.auth-page__container{padding:2rem 1.5rem}.auth-page__title{font-size:1.4rem}.auth-field__row{grid-template-columns:1fr}}.app-update-toast{align-items:flex-start;animation:app-update-toast-in .22s ease-out;background:var(--tooltip-bg);border:1px solid var(--border-color);border-radius:10px;bottom:5.25rem;box-shadow:var(--shadow-lg);color:var(--tooltip-text);display:flex;font-size:.9rem;gap:.75rem;left:1.5rem;line-height:1.35;max-width:min(26rem,calc(100vw - 7rem));padding:.85rem 1rem;position:fixed;z-index:940}@keyframes app-update-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.app-update-toast{animation:none}}.app-update-toast__icon{flex:0 0 auto;font-size:1.1rem;line-height:1.2}.app-update-toast__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.app-update-toast__title{font-size:.92rem;font-weight:600}.app-update-toast__text{font-size:.84rem;opacity:.85}.app-update-toast__actions{align-items:center;display:flex;flex:0 0 auto;gap:.4rem;margin-left:auto}.app-update-toast__later,.app-update-toast__reload{border-radius:6px;cursor:pointer;font:inherit;font-size:.84rem;font-weight:600;padding:.4rem .8rem;white-space:nowrap}.app-update-toast__reload{background:var(--primary-color);border:1px solid var(--primary-color);color:var(--primary-contrast)}.app-update-toast__reload:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.app-update-toast__later{background:#0000;border:1px solid var(--border-color);color:var(--tooltip-text)}.app-update-toast__later:hover{background:var(--tooltip-bg-2)}.app-update-toast__later:focus-visible,.app-update-toast__reload:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (max-width:600px){.app-update-toast{bottom:4.25rem;flex-wrap:wrap;left:1rem;max-width:calc(100vw - 6.5rem)}.app-update-toast__actions{justify-content:flex-end;margin-left:0;width:100%}}.gpg-page{color:#e4e4e7;color:var(--text-primary,#e4e4e7);margin:0 auto;max-width:1080px;padding:32px 24px 96px}.gpg-header{margin-bottom:24px;text-align:center}.gpg-context{background:#00b5091a;border-radius:999px;color:#00b509;color:var(--primary-color,#00b509);display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:12px;padding:4px 12px;text-transform:uppercase}.gpg-title{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:32px;line-height:1.2;margin:0}.gpg-teaser{background:#1a1a2e;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,var(--line-2));border-radius:12px;margin-bottom:24px;max-height:360px;overflow:hidden;padding:24px 28px;position:relative}.gpg-teaser-body{font-size:15px;line-height:1.6}.gpg-teaser-body p{margin:0 0 12px}.gpg-teaser-body p:last-child{margin-bottom:0}.gpg-teaser-body ul{margin:8px 0 12px 24px;padding-left:0}.gpg-teaser-body li{margin-bottom:4px}.gpg-teaser-fade:after{background:linear-gradient(180deg,#1a1a2e00 0,#1a1a2ee6 60%,#1a1a2e);content:"";height:220px;inset:auto 0 0 0;pointer-events:none;position:absolute}.gpg-teaser-lock{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:1px solid var(--line-2);border-radius:999px;bottom:16px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);display:flex;font-size:13px;font-weight:600;gap:8px;left:50%;padding:8px 16px;position:absolute;transform:translateX(-50%);z-index:1}.gpg-teaser-lock-icon{font-size:14px}.gpg-cta-block{margin-bottom:48px}.gpg-cta-card{background:linear-gradient(135deg,#00b50914,#00b50905);border:1px solid #00b50940;border-radius:16px;padding:32px 28px;text-align:center}.gpg-cta-headline{align-items:center;display:flex;gap:12px;justify-content:center;margin-bottom:12px}.gpg-cta-icon{font-size:32px}.gpg-cta-headline h2{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:22px;margin:0}.gpg-cta-sub{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:15px;line-height:1.55;margin:0 auto 20px;max-width:640px}.gpg-cta-sub strong{color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.gpg-cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:24px}.gpg-locked-features{grid-gap:8px 24px;display:grid;gap:8px 24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));list-style:none;margin:0 auto;max-width:760px;padding:0;text-align:left}.gpg-locked-features li{align-items:center;color:#a1a1aa;color:var(--text-secondary,#a1a1aa);display:flex;font-size:14px;gap:10px;padding:6px 0}.gpg-locked-icon{flex-shrink:0;font-size:16px;text-align:center;width:24px}.gpg-try-heading{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:22px;margin:0 0 4px;text-align:center}.gpg-try-heading-em{color:#00b509;color:var(--primary-color,#00b509)}.gpg-try-sub{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:14px;line-height:1.5;margin:0 auto 24px;max-width:640px;text-align:center}.gpg-try-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.gpg-try-card{align-items:flex-start;background:#1a1a2e;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,var(--line-2));border-radius:10px;color:inherit;display:flex;gap:14px;padding:16px;text-decoration:none!important;transition:border-color .12s,box-shadow .12s,transform .12s,background .12s}.gpg-try-card:hover{background:#00b5090d;border-color:#00b509;border-color:var(--primary-color,#00b509);box-shadow:0 2px 12px #00b5091a;transform:translateY(-1px)}.gpg-try-card-icon{align-items:center;background:var(--fill-2);border-radius:8px;display:flex;flex-shrink:0;font-size:28px;height:40px;justify-content:center;line-height:1;width:40px}.gpg-try-card-body{flex:1 1;min-width:0}.gpg-try-card-title{align-items:center;color:#e4e4e7;color:var(--text-primary,#e4e4e7);display:flex;flex-wrap:wrap;font-size:15px;font-weight:600;gap:8px;margin-bottom:4px}.gpg-try-card-tag{background:#00b5091f;border:1px solid #00b5094d;border-radius:999px;color:#00b509;color:var(--primary-color,#00b509);font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.gpg-try-card-blurb{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:13px;line-height:1.45;margin:0}@media (max-width:640px){.gpg-title{font-size:24px}.gpg-cta-headline{flex-direction:column;gap:4px}.gpg-cta-headline h2{font-size:18px}.gpg-locked-features{grid-template-columns:1fr}}.app-tour-tooltip{background:#0f172a;border:1px solid #a855f773;border-radius:14px;box-shadow:0 18px 50px #00000080,0 0 0 1px #0006;color:#e2e8f0;max-width:calc(100vw - 28px);padding:1.1rem 1.15rem .85rem;position:relative;text-align:left;width:384px}:root[data-theme=light] .app-tour-tooltip{background:#fff;border-color:#9333ea4d;box-shadow:0 18px 50px #0f172a38;color:#1f2328}.app-tour-close{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:1.25rem;line-height:1;padding:.2rem .35rem;position:absolute;right:.55rem;top:.45rem}.app-tour-close:hover{background:#94a3b826;color:#e2e8f0}:root[data-theme=light] .app-tour-close:hover{color:#1f2328}.app-tour-step-head{align-items:center;display:flex;gap:.55rem;margin-bottom:.5rem;padding-right:1.25rem}.app-tour-step-icon{font-size:1.35rem;line-height:1}.app-tour-step-title{color:inherit;font-size:1.08rem;font-weight:700;margin:0}.app-tour-step-body{color:#cbd5e1;font-size:.92rem;line-height:1.5;margin:0}:root[data-theme=light] .app-tour-step-body{color:#374151}.app-tour-chips{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:.65rem 0 0;padding:0}.app-tour-chip{background:#a855f729;border:1px solid #a855f759;border-radius:999px;color:#d8b4fe;font-size:.75rem;font-weight:600;padding:.22rem .55rem;white-space:nowrap}:root[data-theme=light] .app-tour-chip{background:#9333ea14;border-color:#9333ea47;color:#7c3aed}.app-tour-tip{background:#94a3b814;border-left:3px solid #a855f799;border-radius:0 8px 8px 0;color:#94a3b8;font-size:.8rem;line-height:1.45;margin:.7rem 0 0;padding:.45rem .6rem}:root[data-theme=light] .app-tour-tip{background:#0f172a0a;color:#6b7280}.app-tour-demo-label{color:#8b98ab;font-size:.68rem;font-weight:700;letter-spacing:.05em;margin:.75rem 0 .3rem;text-transform:uppercase}:root[data-theme=light] .app-tour-demo-label{color:#5f6675}.app-tour-demo{background:#94a3b812;border:1px solid #94a3b847;border-radius:9px;color:#cbd5e1;font-size:.7rem;line-height:1.3;overflow:hidden;padding:.4rem .45rem}:root[data-theme=light] .app-tour-demo{background:#0f172a08;border-color:#0f172a1f;color:#3f4652}.atd-head,.atd-row{align-items:center;display:flex;gap:.3rem;padding:.24rem .15rem}.atd-head{border-bottom:1px solid #94a3b838;color:#94a3b8;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.atd-row+.atd-row{border-top:1px solid #94a3b824}.atd-col{flex:0 0 2.9rem;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.atd-col-name{flex:1 1 auto;text-align:left}.atd-col-end{flex:0 0 3.4rem}.atd-pill{border-radius:999px;display:inline-block;font-size:.65rem;font-style:normal;font-weight:700;padding:.05rem .36rem}.atd-done{background:#10b9812e;color:#34d399}.atd-partial{background:#f59e0b2e;color:#fbbf24}.atd-empty{background:#ef444429;color:#f87171}:root[data-theme=light] .atd-done{background:#d5eeda;color:#036148}:root[data-theme=light] .atd-partial{background:#f7ebd7;color:#92600a}:root[data-theme=light] .atd-empty{background:#fdecec;color:#b91c1c}.atd-chevron{color:#94a3b8}.atd-row-open{border-bottom:1px solid #94a3b838}.atd-detail{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem;padding:.35rem .2rem .15rem}.atd-label{color:#94a3b8}:root[data-theme=light] .atd-label{color:#5b6270}.atd-btn,.atd-value{font-weight:700}.atd-btn{background:#60a5fa2e;border-radius:5px;color:#93c5fd;font-size:.63rem;padding:.05rem .4rem}:root[data-theme=light] .atd-btn{background:#e2ecfe;color:#1d4ed8}.atd-folder{color:#94a3b8;font-weight:700;padding:.1rem .15rem .3rem}:root[data-theme=light] .atd-folder{color:#5b6270}.atd-card{align-items:center;background:#94a3b812;border:1px solid #94a3b833;border-radius:7px;display:flex;gap:.32rem;padding:.3rem .35rem}:root[data-theme=light] .atd-card{background:#fff;border-color:#0f172a1a}.atd-card+.atd-card{margin-top:.28rem}.atd-grip{color:#94a3b8;letter-spacing:-1px}.atd-card-title{flex:1 1 auto;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atd-tag{background:#94a3b82e;border-radius:999px;color:#b6c2d1;font-size:.6rem;font-style:normal;font-weight:700;padding:.05rem .34rem;white-space:nowrap}:root[data-theme=light] .atd-tag{background:#eceef1;color:#5b6270}.atd-tag-live{background:#10b9812e;color:#34d399}:root[data-theme=light] .atd-tag-live{background:#d5eeda;color:#036148}.atd-stats{display:flex;gap:.3rem}.atd-stat{align-items:center;background:#94a3b812;border:1px solid #94a3b833;border-radius:7px;display:flex;flex:1 1;flex-direction:column;gap:.1rem;min-width:0;padding:.35rem .2rem}:root[data-theme=light] .atd-stat{background:#fff;border-color:#0f172a1a}.atd-stat-label{color:#94a3b8;font-size:.58rem;letter-spacing:.03em;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.atd-stat-value{font-size:.95rem;font-weight:700}.atd-matrix .atd-col:not(.atd-col-name){flex:0 0 3.05rem}.atd-mcell{border-radius:5px;line-height:1.15;padding:.14rem .1rem}.atd-m-pct{display:block;font-size:.68rem;font-weight:700}.atd-m-frac{display:block;font-size:.55rem;font-style:normal;opacity:.85}.atd-m-top{background:#22c55e38;color:#bbf7d0}.atd-m-high{background:#84cc162e;color:#d9f99d}.atd-m-mid{background:#fbbf2433;color:#fde68a}.atd-m-low{background:#f8717138;color:#fecaca}:root[data-theme=light] .atd-m-top{color:#036148}:root[data-theme=light] .atd-m-high{color:#3f6212}:root[data-theme=light] .atd-m-mid{color:#92600a}:root[data-theme=light] .atd-m-low{color:#b91c1c}.atd-m-missing{background:#0000;color:#fbbf24;outline:1px dashed #f59e0b;outline-offset:-2px}:root[data-theme=light] .atd-m-missing{color:#92600a;outline-color:#b45309}.atd-m-unreached{background:#0000;color:#94a3b8}.atd-mkey{border-top:1px solid #94a3b824;color:#8b98ab;display:flex;flex-direction:column;font-size:.6rem;gap:.12rem;margin-top:.35rem;padding-top:.3rem}:root[data-theme=light] .atd-mkey{border-top-color:#0f172a1a;color:#5f6675}.atd-mkey-sw{border-radius:4px;display:inline-block;font-style:normal;margin-right:.3rem;text-align:center;width:.95rem}:root[data-theme=light] .atd-chevron,:root[data-theme=light] .atd-grip,:root[data-theme=light] .atd-head,:root[data-theme=light] .atd-m-unreached,:root[data-theme=light] .atd-stat-label{color:#5f6675}.app-tour-footer{align-items:center;border-top:1px solid #94a3b82e;display:flex;gap:.5rem;justify-content:space-between;margin-top:.9rem;padding-top:.7rem}:root[data-theme=light] .app-tour-footer{border-top-color:#0f172a1a}.app-tour-skip{background:#0000;border:none;color:#64748b;cursor:pointer;font-size:.8rem;padding:.25rem 0;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.app-tour-skip:hover{color:#94a3b8}:root[data-theme=light] .app-tour-skip:hover{color:#374151}.app-tour-dots{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center}.app-tour-dot{background:#94a3b84d;border-radius:50%;height:7px;width:7px}.app-tour-dot.done{background:#a855f773}.app-tour-dot.active{background:#a855f7;box-shadow:0 0 0 3px #a855f740}.app-tour-buttons{align-items:center;display:flex;gap:.4rem}.app-tour-btn{border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;line-height:1.2;padding:.42rem .9rem}.app-tour-btn-back{background:#0000;border:1px solid #94a3b859;color:#cbd5e1}:root[data-theme=light] .app-tour-btn-back{border-color:#0f172a33;color:#374151}.app-tour-btn-back:hover{border-color:#a855f799}.app-tour-btn-next{background:linear-gradient(135deg,#a855f7,#7c3aed);border:1px solid #0000;color:#fff}.app-tour-btn-next:hover{filter:brightness(1.1)}@media (max-width:480px){.app-tour-tooltip{padding:.95rem .9rem .75rem}.app-tour-step-title{font-size:1rem}.app-tour-step-body{font-size:.87rem}.app-tour-dots{display:none}}.bugr-root{align-items:flex-start;bottom:1.5rem;bottom:calc(1.5rem + var(--bugr-kb-inset, 0px));display:flex;flex-direction:column;gap:.6rem;left:1.5rem;position:fixed;transition:bottom .18s ease-out;z-index:945}@media (prefers-reduced-motion:reduce){.bugr-root{transition:none}}.bugr-launcher{align-items:center;background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:50%;box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;flex:0 0 auto;height:44px;justify-content:center;opacity:.45;padding:0;transition:opacity .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;width:44px}.bugr-launcher.is-open,.bugr-launcher:focus-visible,.bugr-launcher:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);color:var(--primary-color);opacity:1;transform:translateY(-1px)}.bugr-launcher:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.bugr-icon{height:22px;width:22px}.bugr-panel{animation:bugr-panel-in .18s ease-out;background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-xl);color:var(--text-primary);max-height:calc(100vh - 7rem);max-height:calc(100dvh - 7rem);max-height:calc(var(--bugr-vv-height, 100dvh) - 7rem);overflow-y:auto;overscroll-behavior:contain;padding:.9rem 1rem 1rem;width:min(23rem,calc(100vw - 3rem))}@keyframes bugr-panel-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.bugr-panel{animation:none}.bugr-launcher{transition:none}.bugr-launcher.is-open,.bugr-launcher:focus-visible,.bugr-launcher:hover{transform:none}}.bugr-head{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.bugr-title{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0}.bugr-close{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:1.15rem;height:26px;justify-content:center;line-height:1;padding:0;width:26px}.bugr-close:hover{background:var(--fill-2);color:var(--text-primary)}.bugr-close:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.bugr-types{display:flex;gap:.35rem;margin-bottom:.75rem}.bugr-type{background:var(--fill-2);border:1px solid #0000;border-radius:6px;color:var(--text-secondary);cursor:pointer;flex:1 1 auto;font:inherit;font-size:.8rem;font-weight:500;padding:.4rem .5rem;transition:background .14s ease,color .14s ease,border-color .14s ease;white-space:nowrap}.bugr-type:hover{background:var(--fill-3);color:var(--text-primary)}.bugr-type.is-active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary-color);font-weight:600}.bugr-type:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.bugr-field{display:block;margin-bottom:.7rem}.bugr-label{color:var(--text-secondary);display:block;font-size:.8rem;font-weight:500;margin-bottom:.3rem}.bugr-input,.bugr-textarea{background:var(--fill-3);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font:inherit;font-size:.86rem;padding:.55rem .7rem;width:100%}.bugr-textarea{line-height:1.4;min-height:5.5rem;resize:vertical}.bugr-input::placeholder,.bugr-textarea::placeholder{color:var(--text-faint)}.bugr-input:focus,.bugr-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-bg-soft);outline:none}.bugr-hp{height:1px;left:-9999px;overflow:hidden;position:absolute;width:1px}.bugr-note{color:var(--text-muted);font-size:.74rem;line-height:1.35;margin:0 0 .7rem}.bugr-error{background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;color:var(--error-text);font-size:.78rem;margin:0 0 .6rem;padding:.45rem .6rem}.bugr-actions{display:flex;justify-content:flex-end}.bugr-submit{font-size:.85rem;padding:.45rem 1.1rem}.bugr-sent{align-items:flex-start;display:flex;flex-direction:column;font-size:.88rem;gap:.3rem;padding:.35rem .1rem}.bugr-sent-mark{color:var(--success-color);font-size:1.2rem;line-height:1}.bugr-sent-text{color:var(--text-muted);font-size:.8rem}@media (max-width:600px){.bugr-root{bottom:1rem;bottom:calc(1rem + var(--bugr-kb-inset, 0px));left:1rem}.bugr-launcher{height:40px;opacity:.6;width:40px}.bugr-icon{height:20px;width:20px}.bugr-panel{max-height:calc(100vh - 5.5rem);max-height:calc(100dvh - 5.5rem);max-height:calc(var(--bugr-vv-height, 100dvh) - 5.5rem);width:calc(100vw - 2rem)}}:root{--primary-color:#00b509;--primary-hover:#009a07;--primary-vivid:#00b509;--primary-contrast:#08140a;--secondary-color:#94a3b8;--primary-bg-soft:#00b50914;--primary-bg:#00b50926;--primary-bg-strong:#00b50940;--primary-border:#00b5094d;--bg-secondary:#000;--bg-color:#111;--surface-1:#1a1a1a;--surface-2:#1a1a2e;--surface-3:#0f0f23;--surface-deep:#111827;--surface-elevated:#232342;--surface-hover:#2e2e2e;--surface-inset:#0b1020;--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#9ca3af;--text-faint:#6b7280;--text-inverse:#fff;--text-on-accent:#fff;--text-color:var(--text-primary);--card-bg:var(--surface-1);--bg-primary:var(--bg-color);--bg-elevated:var(--surface-elevated);--border-color:#2e2e2e;--border-strong:#3f3f46;--line-1:#ffffff0f;--line-2:#ffffff1a;--line-3:#fff3;--fill-1:#ffffff08;--fill-2:#ffffff0d;--fill-3:#ffffff14;--fill-4:#ffffff1f;--fill-5:#ffffff2e;--scrim:#0009;--scrim-soft:#0006;--success-color:#10b981;--success-bg:#10b9811f;--success-border:#22c55e59;--success-text:#4ade80;--error-color:#ef4444;--error-bg:#3b1111;--error-border:#5c1a1a;--error-text:#fca5a5;--warning-color:#f59e0b;--warning-bg:#eab3081f;--warning-border:#f59e0b4d;--warning-text:#facc15;--info-color:#60a5fa;--info-bg:#3b82f626;--info-border:#3b82f64d;--info-text:#93c5fd;--tooltip-success-bg:#0f3d2e;--tooltip-indigo-bg:#1e1b4b;--accent-purple:#a855f7;--accent-purple-bg:#a855f71f;--accent-purple-border:#a855f74d;--accent-blue:#60a5fa;--accent-blue-bg:#3b82f624;--accent-blue-border:#3b82f64d;--accent-cyan:#38bdf8;--accent-cyan-bg:#38bdf81f;--accent-amber:#fbbf24;--accent-amber-bg:#fbbf241f;--accent-indigo:#a5b4fc;--accent-indigo-bg:#818cf824;--accent-pink:#f9a8d4;--accent-pink-bg:#f472b624;--accent-indigo-fill:#4f46e5;--accent-pink-fill:#be185d;--accent-amber-fill:#b45309;--accent-cyan-fill:#0e7490;--course-foundations-ink:#f59e0b;--course-dsa-ink:#f87171;--course-introjava-ink:#14b8a6;--course-intropython-ink:#7db4dd;--course-webdesign-ink:#ec4899;--course-csp-accent:#3b82f6;--course-csp-fg:#93c5fd;--course-csp-bg:#3b82f624;--course-csa-accent:#ea580c;--course-csa-fg:#fdba74;--course-csa-bg:#ea580c29;--code-bg:#0b1020;--code-text:#e2e8f0;--code-inline-bg:#ffffff14;--code-border:#ffffff1a;--pre-bg:#1e293b;--pre-text:#e2e8f0;--editor-bg:#1e1e1e;--editor-gutter:#181818;--editor-chrome:#161b22;--editor-border:#30363d;--editor-text:#e6e6e6;--editor-line-highlight:#ffffff0f;--editor-selection:#388bfd4d;--terminal-bg:#0d1117;--terminal-text:#e6edf3;--tooltip-bg:#0d2e0e;--tooltip-bg-2:#0a1a0a;--tooltip-text:#e2e8f0;--shadow:0 1px 3px 0 #0006,0 1px 2px 0 #0000004d;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -2px #0000004d;--shadow-xl:0 24px 60px #0009;--hl-ink:#14181d;--hl-yellow:#f2d24a;--hl-green:#7fdd9c;--hl-pink:#ffa3c6;color-scheme:dark}:root[data-theme=light]{--primary-color:#097a0c;--primary-hover:#086a0a;--primary-vivid:#0a8a0e;--primary-contrast:#fff;--secondary-color:#64748b;--primary-bg-soft:#0a8a0e14;--primary-bg:#0a8a0e1c;--primary-bg-strong:#0a8a0e29;--primary-border:#0a8a0e52;--bg-secondary:#f1f3f5;--bg-color:#fff;--surface-1:#fff;--surface-2:#fff;--surface-3:#f4f6f8;--surface-deep:#f9fafb;--surface-elevated:#fff;--surface-hover:#eceef1;--surface-inset:#f3f4f6;--text-primary:#1a1d21;--text-secondary:#51565d;--text-muted:#5b6270;--text-faint:#666c78;--text-inverse:#fff;--text-on-accent:#fff;--border-color:#e3e6ea;--border-strong:#cdd2d9;--line-1:#11182712;--line-2:#1118271f;--line-3:#11182733;--fill-1:#11182708;--fill-2:rgba(17,24,39,.045);--fill-3:#1118270f;--fill-4:#11182717;--fill-5:#11182721;--scrim:#11182773;--scrim-soft:#1118274d;--success-color:#059669;--success-bg:#ecfdf5;--success-border:#a7f3d0;--success-text:#047857;--error-color:#dc2626;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#b91c1c;--warning-color:#d97706;--warning-bg:#fffbeb;--warning-border:#fde68a;--warning-text:#92400e;--info-color:#2563eb;--info-bg:#eff6ff;--info-border:#bfdbfe;--info-text:#1d4ed8;--tooltip-success-bg:#ecfdf5;--tooltip-indigo-bg:#eef2ff;--accent-purple:#7e22ce;--accent-purple-bg:#9333ea1a;--accent-purple-border:#9333ea47;--accent-blue:#2563eb;--accent-blue-bg:#2563eb1a;--accent-blue-border:#2563eb47;--accent-cyan:#155e75;--accent-cyan-bg:#0891b21a;--accent-amber:#a15207;--accent-amber-bg:#d977061f;--course-foundations-ink:#92400e;--course-dsa-ink:#991b1b;--course-introjava-ink:#0f766e;--course-intropython-ink:#1e4a73;--course-webdesign-ink:#be185d;--accent-indigo:#4f46e5;--accent-indigo-bg:#4f46e51a;--accent-pink:#be185d;--accent-pink-bg:#be185d1a;--course-csp-accent:#2563eb;--course-csp-fg:#1d4ed8;--course-csp-bg:#2563eb1a;--course-csa-accent:#ea580c;--course-csa-fg:#c2410c;--course-csa-bg:#ea580c1a;--code-bg:#f6f8fa;--code-text:#1f2328;--code-inline-bg:#1118270f;--code-border:#e3e6ea;--pre-bg:#f6f8fa;--pre-text:#1f2328;--editor-bg:#fff;--editor-gutter:#f6f8fa;--editor-chrome:#f0f2f5;--editor-border:#d8dce0;--editor-text:#1f2328;--editor-line-highlight:#1118270d;--editor-selection:#388bfd38;--terminal-bg:#f6f8fa;--terminal-text:#1f2328;--tooltip-bg:#fff;--tooltip-bg-2:#f4f6f8;--tooltip-text:#1f2328;--shadow:0 1px 2px #1118270f,0 1px 3px #11182714;--shadow-sm:0 1px 2px #1118270f;--shadow-md:0 4px 10px -2px #1118271a,0 2px 4px -2px #1118270f;--shadow-lg:0 12px 24px -6px #1118271f,0 4px 8px -4px #11182714;--shadow-xl:0 24px 48px -12px #1118272e;--hl-yellow:#ffe86b;--hl-green:#a9f0bd;--hl-pink:#ffb3d1;color-scheme:light}.aa-tier.admin,.aa-tier.free,.aa-tier.school,.aa-tier.student,.aa-tier.teacher,.aigrading-hero,.aigrading-mockup-body,.aigrading-mockup-code,.aigrading-teacher-cta,.apcsa-also-included,.apcsa-hero,.apcsp-cta,.apcsp-hero,.apcyber-also-included,.apcyber-hero,.csa-cta,.csa-hero,.csprep-hero,.csprep-promo,.ct-hero,.cta,.curriculum-cta,.curriculum-hero,.debug-hero,.debug-promo,.gc-logo.gh-logo,.ghf-chrome-body,.ghf-hero,.hci-cta,.hci-hero,.home-csp .cta,.home-csp .maven-hero,.inbox-filter-chip.inbox-kevin.active,.inbox-filter-chip.inbox-sales.active,.inbox-filter-chip.inbox-support.active,.jref-upsell,.js-hero,.legend-wall,.lms-hero,.lockdown-fullscreen-overlay,.maven-hero,.maven-promo,.mgp-terminal-mock,.mock-option.correct,.mockcard-icon-github,.mockinput,.rdr-duck-card,.rdr-level-card,.rdr-modal-card:focus-visible:not(:disabled),.rdr-modal-card:hover:not(:disabled),.rdr-page,.rdr-progress,.rdr-question-card,.rdr-results-card,.rdr-splash-card,.robot-cell-obstacle,.robot-cell:hover:not(.robot-cell-robot),.theme-dark-zone,.tp-hero,.vocab-hero,.vocab-promo{--bg-secondary:#000;--bg-color:#111;--surface-1:#1a1a1a;--surface-2:#1a1a2e;--surface-3:#0f0f23;--surface-deep:#111827;--surface-elevated:#232342;--surface-hover:#2e2e2e;--surface-inset:#0b1020;--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#9ca3af;--text-faint:#6b7280;--border-color:#2e2e2e;--border-strong:#3f3f46;--line-1:#ffffff0f;--line-2:#ffffff1a;--line-3:#fff3;--fill-1:#ffffff08;--fill-2:#ffffff0d;--fill-3:#ffffff14;--fill-4:#ffffff1f;--fill-5:#ffffff2e;--code-inline-bg:#ffffff14;--primary-color:#00b509;--primary-hover:#009a07;--primary-vivid:#00b509;--primary-contrast:#08140a;--accent-purple:#a855f7;--accent-blue:#60a5fa;--accent-cyan:#38bdf8;--accent-amber:#fbbf24;--accent-indigo:#a5b4fc;--accent-pink:#f9a8d4;--success-text:#4ade80;--warning-text:#facc15;--error-text:#fca5a5;--info-text:#93c5fd;--course-foundations-ink:#f59e0b;--course-dsa-ink:#f87171;--course-introjava-ink:#14b8a6;--course-intropython-ink:#7db4dd;--course-webdesign-ink:#ec4899}.home-csp .cta,.home-csp .maven-hero{--primary-color:#a855f7;--primary-hover:#9333ea;--primary-vivid:#a855f7}:root[data-theme=light] .jce-cmt{color:green}:root[data-theme=light] .jce-str{color:#a31515}:root[data-theme=light] .jce-num{color:#098658}:root[data-theme=light] .jce-kw{color:#00f}:root[data-theme=light] .jce-type{color:#267f99}:root[data-theme=light] .jce-lit{color:#00f}:root[data-theme=light] .jce-fn{color:#795e26}:root[data-theme=light] .jce-id{color:#001080}.tm-mark{font-size:.42em;font-weight:400;letter-spacing:0;line-height:0;margin-left:.08em;opacity:.7;vertical-align:super}@media (prefers-reduced-motion:no-preference){html[data-theme] .navbar,html[data-theme] .site-footer,html[data-theme] body{transition:background-color .2s ease,color .2s ease,border-color .2s ease}}*{margin:0;padding:0}body,html{background-color:var(--bg-secondary)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1}.skip-to-content{background:var(--primary-color);border-radius:0 0 6px 0;color:var(--primary-contrast);font-weight:700;left:0;padding:.75rem 1.25rem;position:absolute;text-decoration:none;top:-100px;transition:top .15s ease-in-out;z-index:10000}.skip-to-content:focus{outline:3px solid var(--text-primary);outline-offset:-3px;top:0}.main-content:focus{outline:none}:focus-visible{border-radius:2px;outline:2px solid var(--primary-color);outline-offset:2px}code{background-color:var(--code-inline-bg);border-radius:4px;font-family:Courier New,Courier,monospace;font-size:.9em;padding:2px 6px}select option{background-color:var(--surface-1);color:var(--text-primary)}pre{background-color:var(--pre-bg);border-radius:8px;color:var(--pre-text);margin:1rem 0;overflow-x:auto;padding:1rem}pre code{background-color:initial;color:inherit;padding:0}.btn{border:none;border-radius:8px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;text-align:center;text-decoration:none;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:var(--primary-color);color:var(--primary-contrast)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-hover)}.btn-outline{background-color:initial;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover:not(:disabled){background-color:var(--primary-color);color:var(--primary-contrast)}.btn-large{font-size:1.125rem;padding:1rem 2rem}.loading{align-items:center;color:var(--text-secondary);display:flex;font-size:1.125rem;justify-content:center;min-height:400px}.error-message{background-color:var(--error-bg);border:1px solid var(--error-border);border-radius:8px;color:var(--error-text);margin-bottom:1rem;padding:1rem}.empty-state{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.container{margin:0 auto;max-width:1200px;padding:0 1rem}.guest-gate-wrapper{min-height:60vh;position:relative}.guest-gate-blur{filter:blur(1px);max-height:80vh;opacity:1;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.guest-gate-overlay{align-items:center;background:linear-gradient(180deg,#0000 0,#0000004d 40%,#000000b8);display:flex;inset:0;justify-content:center;padding:2rem 1rem;position:absolute;z-index:10}.guest-gate-card{background:var(--bg-color);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-xl);max-width:480px;padding:3rem 2.5rem;text-align:center;width:100%}.guest-gate-icon{font-size:3rem;margin-bottom:1rem}.guest-gate-card h2{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin-bottom:.75rem}.guest-gate-card p{color:var(--text-secondary);font-size:1.05rem;margin-bottom:2rem}.guest-gate-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}@media (max-width:480px){.guest-gate-card{padding:2rem 1.5rem}.guest-gate-card h2{font-size:1.5rem}}.guest-gate-preview{margin:0 auto;max-width:860px;padding:2rem}.ggp-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.75rem}.ggp-title-block{display:flex;flex-direction:column;gap:.5rem}.ggp-bar{background:var(--border-color);border-radius:6px;height:14px}.ggp-bar.wide{background:var(--text-secondary);opacity:.5;width:240px}.ggp-bar.medium{opacity:.3;width:160px}.ggp-badge{background:var(--primary-color);border-radius:999px;color:var(--primary-contrast);font-size:.75rem;font-weight:700;opacity:.85;padding:.25rem .75rem}.ggp-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.ggp-card{align-items:center;background:var(--bg-color);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:1rem;padding:.9rem 1.1rem}.ggp-card-icon{flex-shrink:0;font-size:1.4rem}.ggp-card-body{flex:1 1;min-width:0}.ggp-card-label{color:var(--text-primary);font-size:.95rem;font-weight:600;margin-bottom:.15rem}.ggp-card-sub{color:var(--text-secondary);font-size:.8rem;margin-bottom:.4rem}.ggp-progress-track{background:var(--border-color);border-radius:3px;height:5px;overflow:hidden}.ggp-progress-fill{background:var(--primary-color);border-radius:3px;height:100%}.ggp-card-check{flex-shrink:0;font-size:1.1rem}.ggp-stats{background:var(--bg-color);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:1.5rem;justify-content:center;padding:1rem}.ggp-stat{align-items:center;display:flex;flex-direction:column;gap:.2rem}.ggp-stat-num{color:var(--primary-color);font-size:1.5rem;font-weight:700}.ggp-stat-lbl{color:var(--text-secondary);font-size:.75rem}a{color:var(--primary-color);text-decoration:none}a:where(:hover){text-decoration:underline}a.chip:hover,a.pill:hover,a[class*=-badge]:hover,a[class*=-card]:hover,a[class*=-chip]:hover,a[class*=-pill]:hover,a[class*=-tag]:hover{text-decoration:none}@media (max-width:768px){.btn{font-size:.9375rem;padding:.625rem 1.25rem}.btn-large{font-size:1rem;padding:.875rem 1.75rem}}.qp-hero-label{background:var(--accent-purple-bg);border:1px solid var(--accent-purple-border);border-radius:999px;color:var(--accent-purple);display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.12em;margin-bottom:1.25rem;padding:.4rem 1.25rem;text-transform:uppercase}.blocks-resource-pill{background:#00b50914;border:1px solid #00b50933;border-radius:999px;color:var(--primary-color);font-size:.85rem;font-weight:600;padding:.35rem .9rem;position:relative;text-decoration:none;transition:background .2s,border-color .2s}.blocks-resource-pill:hover{background:#00b5092e;border-color:var(--primary-color);text-decoration:none}.blocks-resource-pill:after{background:var(--tooltip-success-bg);border:1px solid #00b5094d;border-radius:10px;bottom:calc(100% + 10px);box-shadow:0 8px 24px #0009;color:var(--text-primary);content:attr(data-tooltip);font-size:.8rem;font-weight:400;left:0;line-height:1.5;opacity:0;padding:.55rem .85rem;pointer-events:none;position:absolute;transform:translateY(4px);transition:opacity .2s,transform .2s;width:300px;z-index:50}.blocks-resource-pill[data-tooltip]:hover:after{opacity:1;transform:translateY(0)}@media (max-width:768px){.blocks-resource-pill:after{display:none}}.blocks-upsell-banner{align-items:center;background:var(--primary-bg-soft);border:1px solid var(--primary-border);border-radius:10px;display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}.blocks-upsell-text{color:var(--text-secondary);flex:1 1 100%;font-size:.95rem;line-height:1.5}.blocks-upsell-text strong{color:var(--text-primary)}.blocks-upsell-actions{display:flex;flex-wrap:wrap;gap:.75rem}@media (max-width:600px){.blocks-upsell-actions{flex-direction:column}.blocks-upsell-actions .btn{text-align:center}}.blocks-course-upsell{grid-gap:1.25rem;background:var(--accent-purple-bg);border:1px solid #a855f733;border-radius:12px;display:grid;gap:1.25rem;grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin-top:2rem;padding:1.5rem}@media (max-width:768px){.blocks-course-upsell{grid-template-columns:1fr}}.blocks-course-upsell-main h2{color:var(--text-primary);font-size:1.4rem;line-height:1.3;margin:.4rem 0 .6rem}.blocks-course-upsell-main p{color:var(--text-secondary);font-size:.92rem;line-height:1.6;margin:0 0 1rem}.blocks-course-upsell-badge{background:#a855f72e;border-radius:999px;color:#a855f7;color:var(--accent-purple,#a855f7);display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:.25rem .7rem;text-transform:uppercase}.blocks-course-upsell-actions{display:flex;flex-wrap:wrap;gap:.6rem}.blocks-course-upsell-teacher{align-self:start;background:#a855f70f;border:1px solid #a855f733;border-radius:8px;padding:1rem 1.1rem}.blocks-course-upsell-teacher h3{color:var(--text-primary);font-size:1rem;margin:0 0 .5rem}.blocks-course-upsell-teacher p{color:var(--text-secondary);font-size:.85rem;line-height:1.55;margin:0 0 .85rem}.back-to-top{align-items:center;background:var(--bg-secondary);border:1px solid #00b50966;border-radius:50%;bottom:5.5rem;box-shadow:var(--shadow-md);color:var(--primary-color);cursor:pointer;display:flex;font-size:1.2rem;height:44px;justify-content:center;position:fixed;right:2rem;transition:background .2s,border-color .2s;width:44px;z-index:100}.back-to-top:hover{background:#00b5091a;border-color:var(--primary-color)}.csa-cross-links{background:linear-gradient(135deg,#00b50914,#a855f714);border:1px solid #00b50940;border-radius:14px;margin:3rem auto 2rem;max-width:960px;padding:2rem 1.5rem;text-align:center}.csa-cross-links h3{color:#e6e6f0;color:var(--text-primary,#e6e6f0);font-size:1.35rem;margin:0 0 .5rem}.csa-cross-links p{color:#a8a8b8;color:var(--text-secondary,#a8a8b8);font-size:.95rem;margin:0 auto 1.25rem;max-width:640px}.csa-cross-links-grid{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.practice-compare{background:linear-gradient(135deg,#00b5090f,#a855f70f);border:1px solid #00b50933;border-radius:14px;margin:2.5rem auto;max-width:1100px;padding:2rem 1.5rem}.practice-compare h3{color:#e6e6f0;color:var(--text-primary,#e6e6f0);font-size:1.35rem;margin:0 0 .5rem;text-align:center}.practice-compare-intro{color:#a8a8b8;color:var(--text-secondary,#a8a8b8);font-size:.95rem;line-height:1.5;margin:0 auto 1.5rem;max-width:700px;text-align:center}.practice-compare-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:720px){.practice-compare-grid{grid-template-columns:1fr}}.practice-compare-card{background:var(--bg-color);border:1px solid var(--line-2);border-radius:12px;display:flex;flex-direction:column;padding:1.25rem 1.25rem 1.5rem}.practice-compare-card.current{border-color:#00b5098c;box-shadow:inset 0 0 0 1px #00b50940}.practice-compare-card header{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:.75rem}.practice-compare-card h4{color:#e6e6f0;color:var(--text-primary,#e6e6f0);font-size:1.2rem;margin:0}.practice-compare-badge{background:#00b50926;border:1px solid #00b50959;border-radius:999px;color:var(--primary-color);display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.15rem .55rem;text-transform:uppercase}.practice-compare-badge.gh{background:#a855f726;border-color:#a855f759;color:var(--accent-purple)}.practice-compare-route{color:#a8a8b8;color:var(--text-secondary,#a8a8b8);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.8rem}.practice-compare-card ul{list-style:none;margin:0 0 .75rem;padding:0}.practice-compare-card li{color:#cfcfe0;color:var(--text-secondary,#cfcfe0);font-size:.9rem;line-height:1.45;padding:.25rem 0 .25rem 1.4rem;position:relative}.practice-compare-pros li:before{color:var(--primary-color);content:"✓";font-weight:700;left:0;position:absolute}.practice-compare-cons li:before{color:var(--accent-amber);content:"–";font-weight:700;left:.15rem;position:absolute}.practice-compare-cons{border-top:1px dashed var(--line-2);margin-top:.25rem;padding-top:.5rem!important}.practice-compare-cta{align-items:center;display:flex;gap:.75rem;margin-top:auto;padding-top:.75rem}.practice-compare-cta .btn{min-width:180px}.practice-compare-here{color:#a8a8b8;color:var(--text-secondary,#a8a8b8);font-size:.85rem;font-style:italic}.jce-wrap{--jce-gutter-w:calc(var(--ide-font-size, 0.92rem)*3.25/0.92);background:#111;background:var(--bg-color,#111);position:relative;width:100%}.jce-gutter,.jce-highlight,.jce-textarea{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;border:0;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;font-size:var(--ide-font-size,.92rem);letter-spacing:0;line-height:1.45;margin:0;overflow-wrap:normal;tab-size:4;-moz-tab-size:4;white-space:pre;word-break:normal;word-spacing:0}.jce-highlight,.jce-textarea{padding:1rem 1rem 1rem calc(var(--jce-gutter-w) + .5rem)}.jce-textarea{padding-bottom:calc(1rem - 2px);padding-top:calc(1rem + 2px)}.jce-wrap.jce-word-wrap .jce-textarea{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.jce-wrap.jce-word-wrap>.jce-gutter,.jce-wrap.jce-word-wrap>.jce-squigglies{display:none}.jce-wrap-view{background:#0000;border:0;box-sizing:border-box;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;font-size:var(--ide-font-size,.92rem);inset:0;letter-spacing:0;line-height:1.45;margin:0;overflow:auto;padding:1rem 1rem 1rem 0;pointer-events:none;position:absolute;scrollbar-width:none;tab-size:4;-moz-tab-size:4;word-spacing:0}.jce-wrap-view::-webkit-scrollbar{display:none}.jce-line{min-height:1.45em;overflow-wrap:anywhere;padding-left:calc(var(--jce-gutter-w) + .5rem);position:relative;white-space:pre-wrap;word-break:break-word}.jce-linenum{font-feature-settings:"tnum";color:#737373;color:var(--text-secondary,#737373);font-variant-numeric:tabular-nums;left:0;line-height:inherit;padding-right:.5rem;pointer-events:none;position:absolute;text-align:right;text-indent:0;top:0;-webkit-user-select:none;user-select:none;white-space:nowrap;width:var(--jce-gutter-w)}.jce-linenum-marker{margin-right:.1em}.jce-linenum .jce-linenum-current{color:#facc15;color:var(--warning-text,#facc15);font-weight:700;left:0;line-height:inherit;position:absolute;text-shadow:0 0 6px #facc15b3,0 0 1px #000000e6;top:0}.jce-line-error>.jce-linenum{color:#fca5a5;color:var(--error-text,#fca5a5)}.jce-line-warning>.jce-linenum{color:#fbbf24;color:var(--accent-amber,#fbbf24)}.jce-line-error,.jce-line-warning{pointer-events:auto}.jce-highlight{background:#0000;color:#e4e4e7;color:var(--text-primary,#e4e4e7);inset:0;overflow:auto;pointer-events:none;position:absolute;scrollbar-width:none}.jce-highlight::-webkit-scrollbar{display:none}.jce-textarea{-webkit-appearance:none;appearance:none;background:#0000;caret-color:#e4e4e7;caret-color:var(--text-primary,#e4e4e7);color:#0000;display:block;outline:none;position:relative;resize:vertical;vertical-align:top;width:100%}.jce-textarea::selection{background:#264f78b3;color:#0000}.jce-textarea::placeholder{color:var(--text-secondary);font-style:italic}.jce-cmt{color:#6a9955;font-style:italic}.jce-str{color:#ce9178}.jce-num{color:#b5cea8}.jce-kw{color:#569cd6}.jce-type{color:#4ec9b0}.jce-lit{color:#569cd6}.jce-fn{color:#dcdcaa}.jce-id{color:#9cdcfe}.jce-op{color:var(--text-secondary)}.jce-textarea[readonly]{cursor:default;resize:none}.jce-gutter{background:#0000;bottom:0;color:#9494a073;left:0;overflow:hidden;padding:1rem .5rem 1rem 0;pointer-events:auto;position:absolute;text-align:right;top:0;-webkit-user-select:none;user-select:none;width:var(--jce-gutter-w);z-index:1}.jce-gutter-marker,.jce-gutter-marker-empty{font-size:.75rem;font-size:calc(var(--ide-font-size, .92rem)*.75/.92)}.jce-gutter-marker-empty{opacity:0}.jce-gutter-bp .jce-gutter-marker,.jce-linenum-bp{color:#e11d48;color:var(--bp-color,#e11d48);text-shadow:0 0 3px #e11d4873}.jce-gutter-bp,.jce-line-bp>.jce-linenum{color:#e11d48;color:var(--bp-color,#e11d48);font-weight:700}.jce-linenum .jce-linenum-bp{left:0;line-height:inherit;position:absolute;top:0}.jce-gutter-clickable{cursor:pointer}.jce-gutter-error .jce-gutter-marker{color:#ef4444;color:var(--error-color,#ef4444)}.jce-gutter-warning .jce-gutter-marker{color:#f59e0b;color:var(--warning-color,#f59e0b)}.jce-gutter-error,.jce-gutter-warning{color:#ef4444d9;color:var(--error-color,#ef4444d9);cursor:help;font-weight:600}.jce-gutter-warning{color:#f59e0bd9;color:var(--warning-color,#f59e0bd9)}.jce-bracket-match{background:#58a6ff38;border-radius:2px;outline:1px solid #58a6ff8c}.jce-squigglies{background:#0000;color:#0000;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;font-size:var(--ide-font-size,.92rem);inset:0;letter-spacing:0;line-height:1.45;margin:0;overflow:hidden;padding:1rem 1rem 1rem calc(var(--jce-gutter-w) + .5rem);pointer-events:none;position:absolute;tab-size:4;-moz-tab-size:4;white-space:pre;z-index:2}.jce-squiggly{background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 6 3%27><path d=%27M0 2 Q1.5 0 3 2 T6 2%27 stroke=%27%23ef4444%27 fill=%27none%27 stroke-width=%270.9%27/></svg>");background-position:0 100%;background-repeat:repeat-x;background-size:6px 3px;padding-bottom:2px}.jce-squiggly-warning{background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 6 3%27><path d=%27M0 2 Q1.5 0 3 2 T6 2%27 stroke=%27%23f59e0b%27 fill=%27none%27 stroke-width=%270.9%27/></svg>")}.jce-wrap.jce-has-highlight:not(.jce-word-wrap):before{background:#facc1524;border-bottom:1px solid #facc154d;border-top:1px solid #facc154d;content:"";height:1.334rem;height:calc(var(--ide-font-size, .92rem)*1.45);left:var(--jce-gutter-w);pointer-events:none;position:absolute;right:0;top:1rem;top:calc(1rem + (var(--jce-highlight-line, 1) - 1)*var(--ide-font-size, .92rem)*1.45);z-index:1}.jce-wrap.jce-has-highlight{isolation:isolate}.jce-gutter-current{font-weight:700}.jce-gutter-arrow,.jce-gutter-current{color:#facc15;color:var(--warning-text,#facc15)}.jce-gutter-arrow{font-size:.85rem;font-size:calc(var(--ide-font-size, .92rem)*.85/.92);text-shadow:0 0 4px #facc1599}.jce-line-current>.jce-linenum{color:#facc15;color:var(--warning-text,#facc15);font-weight:700}.jce-linenum-current{color:#facc15;color:var(--warning-text,#facc15);text-shadow:0 0 4px #facc1599}.jce-line-current{background:#facc151a;border-radius:2px}@media (max-width:480px){.jce-wrap{--jce-gutter-w:calc(var(--ide-font-size, 0.92rem)*1.5/0.92)}.jce-highlight,.jce-squigglies,.jce-textarea{padding:.6rem .4rem .6rem calc(var(--jce-gutter-w) + .15rem)}.jce-textarea{padding-bottom:calc(.6rem - 2px);padding-top:calc(.6rem + 2px)}.jce-gutter{font-size:.78rem;font-size:calc(var(--ide-font-size, .92rem)*.78/.92);padding:.6rem .15rem}.jce-wrap-view{padding:.6rem .4rem .6rem 0}.jce-line{padding-left:calc(var(--jce-gutter-w) + .15rem)}.jce-linenum{padding-right:.15rem}}.inline-java-challenge{background:#0f0f0f;border:1px solid #2e2e2e;border-left:3px solid #00b509;border:1px solid var(--border-color,#2e2e2e);border-left:3px solid var(--primary-color,#00b509);border-radius:10px;margin:1.5rem 0;padding:1.25rem 1.25rem 1rem}.inline-java-challenge-solved{border-color:#00b50999;border-left-color:var(--success-color,var(--success-color));box-shadow:inset 0 0 0 1px #00b5092e}.inline-java-challenge-missing{color:var(--error-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.ijc-header{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.ijc-header-main{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.ijc-badge{background:#00b5091f;border:1px solid #00b5094d;border-radius:999px;color:#00b509;color:var(--primary-color,#00b509);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;font-weight:700;letter-spacing:.08em;padding:.2rem .55rem;text-transform:uppercase}.inline-java-challenge-solved .ijc-badge{background:#22c55e2e;border-color:#22c55e73;color:var(--success-text)}.ijc-title{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:1.05rem;font-weight:700;margin:0}.ijc-score{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;white-space:nowrap}.ijc-score-pass{color:var(--success-text);font-weight:700}.ijc-description{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.92rem;line-height:1.55;margin:.35rem 0 .9rem}.ijc-description code{background:var(--surface-1);border-radius:3px;color:#9cdcfe;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;padding:.05rem .35rem}.ijc-mobile-banner{background:#fbbf241a;border:1px solid #fbbf244d;border-radius:6px;font-size:.8rem;line-height:1.45;margin:0 0 .75rem;padding:.65rem .85rem}.ijc-mobile-banner,.ijc-mobile-banner strong{color:var(--warning-text)}.ijc-editor-wrap{background:#0b0b0b;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:8px;overflow:hidden}.inline-java-challenge .jce-textarea{overflow-x:auto;overflow-y:hidden;resize:none}.inline-java-challenge .jce-highlight{overflow-x:auto;overflow-y:hidden}.inline-java-challenge .jce-gutter{overflow:hidden}.ijc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.ijc-btn{border:0;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:700;padding:.45rem .95rem;transition:background .12s,transform .12s,opacity .12s}.ijc-btn:disabled{cursor:not-allowed;opacity:.45}.ijc-btn-run{background:#00b509;background:var(--primary-color,#00b509);color:#000}.ijc-btn-run:hover:not(:disabled){background:#00d60a;background:var(--primary-hover,#00d60a);transform:translateY(-1px)}.ijc-btn-reset{background:#262626;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.ijc-btn-reset:hover:not(:disabled){background:#333}.ijc-btn-format{background:#262626;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.ijc-btn-format:hover:not(:disabled){background:#333}.ijc-btn-hint{background:#0000;border:1px solid #fbbf2466;color:var(--warning-text)}.ijc-btn-hint:hover:not(:disabled){background:#fbbf241a}.ijc-btn-reveal{background:#0000;border:1px solid #9cdcfe66;color:#9cdcfe}.ijc-btn-reveal:hover:not(:disabled){background:#9cdcfe14}.ijc-hints{background:#fbbf2414;border:1px solid #fbbf2440;border-radius:6px;margin-top:.9rem;padding:.75rem .95rem}.ijc-hint-row{color:var(--warning-text);font-size:.85rem;line-height:1.55}.ijc-hint-row+.ijc-hint-row{margin-top:.4rem}.ijc-hint-num{color:var(--warning-text);font-weight:700;margin-right:.25rem}.ijc-solution{background:#0b0b0b;border:1px dashed #2e2e2e;border:1px dashed var(--border-color,#2e2e2e);border-radius:6px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);line-height:1.55;margin:.9rem 0 0;overflow-x:auto;padding:.9rem 1rem;white-space:pre}.ijc-global-error,.ijc-solution{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.ijc-global-error{background:#ef444414;border:1px solid #ef444459;border-radius:6px;color:var(--error-text);line-height:1.5;margin-top:.9rem;padding:.75rem .95rem;white-space:pre-wrap;word-break:break-word}.ijc-global-error-label{color:var(--error-text);font-size:.72rem;font-weight:700;letter-spacing:.05em;margin-right:.35rem;text-transform:uppercase}.ijc-results{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:.9rem 0 0;padding:0}.ijc-result-row{align-items:flex-start;background:#0b0b0b;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-left-width:3px;border-radius:6px;display:flex;gap:.55rem;padding:.55rem .75rem}.ijc-result-pass{border-left-color:var(--success-color)}.ijc-result-fail{border-left-color:var(--error-color,var(--error-color))}.ijc-result-icon{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;line-height:1.4}.ijc-result-pass .ijc-result-icon{color:var(--success-color)}.ijc-result-fail .ijc-result-icon{color:var(--error-text)}.ijc-result-body{flex:1 1 auto;min-width:0}.ijc-result-desc{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:.87rem;line-height:1.45}.ijc-result-msg{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;margin-top:.2rem;white-space:pre-wrap;word-break:break-word}.ijc-result-msg code{background:var(--surface-1);border-radius:3px;color:var(--error-text);padding:.05rem .3rem}.ijc-result-diff{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr 1fr;margin-top:.35rem}@media (max-width:700px){.ijc-result-diff{grid-template-columns:1fr}}.ijc-diff-col{min-width:0}.ijc-diff-label{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.68rem;font-weight:700;letter-spacing:.04em;margin-bottom:.2rem;text-transform:uppercase}.ijc-diff-pre{background:#141414;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:4px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;line-height:1.45;margin:0;max-height:9rem;overflow:auto;overflow-wrap:anywhere;padding:.4rem .55rem;white-space:pre-wrap}.ijc-success{background:#22c55e1f;border:1px solid #22c55e59;border-radius:6px;color:var(--success-text);font-size:.88rem;font-weight:700;margin-top:.85rem;padding:.6rem .9rem}@media (max-width:640px){.inline-java-challenge{padding:1rem .85rem .85rem}.ijc-title{font-size:1rem}.ijc-btn{font-size:.8rem;padding:.4rem .75rem}}@media (max-width:480px){.inline-java-challenge{border-left:none;border-radius:0;border-right:none;margin-left:calc(max(14px, env(safe-area-inset-left))*-1);margin-right:calc(max(14px, env(safe-area-inset-right))*-1);padding:.85rem 0 .7rem}.ijc-actions,.ijc-description,.ijc-header,.ijc-hints,.ijc-mobile-banner,.ijc-results,.ijc-success{padding-left:.7rem;padding-right:.7rem}.ijc-editor-wrap{border-left:none;border-radius:0;border-right:none}}:root[data-theme=light] .inline-java-challenge{background:#fff}:root[data-theme=light] .ijc-description code{color:#0550ae}:root[data-theme=light] .ijc-editor-wrap{background:#fff}:root[data-theme=light] .ijc-btn-format,:root[data-theme=light] .ijc-btn-reset{background:#f0f2f5;border:1px solid #d8dce0;color:#1f2328}:root[data-theme=light] .ijc-btn-format:hover:not(:disabled),:root[data-theme=light] .ijc-btn-reset:hover:not(:disabled){background:#1118270f}:root[data-theme=light] .ijc-btn-reveal{border:1px solid #0550ae66;color:#0550ae}:root[data-theme=light] .ijc-btn-reveal:hover:not(:disabled){background:#0550ae14}:root[data-theme=light] .ijc-solution{background:#f6f8fa}:root[data-theme=light] .ijc-result-row{background:#fff}:root[data-theme=light] .ijc-diff-pre{background:#f6f8fa;border-color:#d8dce0;color:#1f2328}.confirm-modal-overlay{align-items:center;animation:confirmOverlayFade .15s ease-out;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);background:#000000ad;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:10000}@keyframes confirmOverlayFade{0%{opacity:0}to{opacity:1}}.confirm-modal{animation:confirmModalIn .2s ease-out;background:#111;background:var(--bg-color,#111);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:12px;box-shadow:0 20px 40px #0009;max-width:440px;padding:1.75rem 2rem 1.5rem;width:100%}@keyframes confirmModalIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-modal-title{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:1.2rem;font-weight:700;margin:0 0 .5rem}.confirm-modal-message{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.92rem;line-height:1.55;margin:0 0 1.25rem}.confirm-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.confirm-modal-btn{border:1px solid #0000;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:700;padding:.55rem 1.1rem;transition:background .12s,border-color .12s,transform .12s}.confirm-modal-btn-cancel{background:#0000;border-color:#2e2e2e;border-color:var(--border-color,#2e2e2e);color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.confirm-modal-btn-cancel:hover{background:var(--surface-1);border-color:#555}.confirm-modal-btn-confirm.confirm-modal-primary{background:#00b509;background:var(--primary-color,#00b509);color:#000}.confirm-modal-btn-confirm.confirm-modal-primary:hover{background:#009a07;background:var(--primary-hover,#009a07);transform:translateY(-1px)}.confirm-modal-btn-confirm.confirm-modal-danger{background:#ef4444;background:var(--error-color,#ef4444);color:#fff}.confirm-modal-btn-confirm.confirm-modal-danger:hover{background:#dc2626;transform:translateY(-1px)}.ide-shell{align-items:stretch;display:flex;min-width:0}.ide-shell>.java-runner,.ide-shell>.web-runner{flex:1 1 auto;min-width:0}.ide-shell.is-fullscreen.is-fullscreen.is-fullscreen{background:var(--bg-color);box-sizing:border-box;inset:0;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);position:fixed;z-index:9999}.ide-shell.is-fullscreen.is-fullscreen.is-fullscreen>.java-runner.is-fullscreen,.ide-shell.is-fullscreen.is-fullscreen.is-fullscreen>.web-runner.is-fullscreen{height:100%;inset:auto;min-height:0;position:static;z-index:auto}.ide-files-dock{align-items:stretch;background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px 0 0 8px;border-right:0;display:flex;flex:0 0 auto;min-width:0;overflow:hidden}.ide-shell.is-fullscreen .ide-files-dock{border:0;border-radius:0;border-right:1px solid var(--border-color)}.ide-shell:not(.is-fullscreen) .ide-files-dock+.java-runner,.ide-shell:not(.is-fullscreen) .ide-files-dock+.web-runner{border-bottom-left-radius:0;border-top-left-radius:0}@media (min-width:1080px){.ide-shell:not(.is-fullscreen) .ide-files-dock{align-self:flex-start;max-height:calc(100vh - 57px);position:-webkit-sticky;position:sticky;top:57px}}.ide-files-resizer{background:#0000;border-left:1px solid var(--border-color);cursor:col-resize;flex:0 0 6px}.ide-files-resizer:hover{background:var(--primary-border)}@media (max-width:899px){.ide-shell{flex-direction:column}.ide-files-dock{border-bottom:0;border-radius:8px 8px 0 0;border-right:0;max-height:40vh;width:100%!important}.ide-files-resizer{display:none}}.ifp{color:var(--text-primary);display:flex;flex:1 1 auto;flex-direction:column;font-size:.86rem;min-height:0;min-width:0}.ifp-head{align-items:center;background:var(--surface-1);border-bottom:1px solid var(--border-color);display:flex;font-weight:700;gap:.5rem;justify-content:space-between;padding:.55rem .75rem}.ifp-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ifp-close{background:#0000;border:0;color:var(--text-secondary);cursor:pointer;font-size:1.15rem;line-height:1;padding:0 .25rem}.ifp-close:hover{color:var(--text-primary)}.ifp-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;padding:.55rem .75rem .25rem}.ifp-newfolder{display:flex;gap:.35rem;padding:.25rem .75rem 0}.ifp-usage{padding:.45rem .75rem 0}.ifp-usage-bar{background:var(--fill-2);border-radius:3px;height:5px;overflow:hidden}.ifp-usage-fill{background:var(--primary-color);height:100%;transition:width .2s}.ifp-usage-fill.near-full{background:var(--warning-color)}.ifp-usage-label{display:block;margin-top:.2rem}.ifp-hint,.ifp-usage-label{color:var(--text-secondary);font-size:.72rem}.ifp-hint{line-height:1.45;margin:.4rem 0 .25rem;padding:0 .75rem}.ifp-error{background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;color:var(--error-text);font-size:.78rem;margin:.25rem .75rem;padding:.4rem .55rem}.ifp-tree-wrap{border-top:1px dashed #0000;flex:1 1 auto;min-height:6rem;overflow:auto;padding:.25rem .35rem .75rem}.ifp-tree-wrap.drag-over{background:var(--primary-bg-soft);border-top-color:var(--primary-color)}.ifp-crumb{background:var(--primary-bg-soft);border:1px solid var(--primary-border);border-radius:999px;color:var(--text-primary);cursor:pointer;display:inline-block;font-size:.72rem;margin:.15rem .4rem .3rem;padding:.15rem .5rem}.ifp-empty{color:var(--text-faint);font-size:.78rem;margin:.5rem .75rem}.ifp-children{list-style:none;margin:0;padding:0}.ifp-children .ifp-children{padding-left:.9rem}.ifp-row{align-items:center;border-radius:6px;display:flex;gap:.25rem;padding:.08rem .25rem}.ifp-row:hover{background:var(--fill-2)}.ifp-folder.drag-over,.ifp-row.active{background:var(--primary-bg-soft)}.ifp-folder.drag-over{outline:1px dashed var(--primary-color)}.ifp-folder.selected .ifp-name{color:var(--primary-color)}.ifp-row-main{align-items:center;cursor:pointer;display:flex;flex:1 1 auto;gap:.4rem;min-width:0;padding:.12rem .15rem}.ifp-icon{flex:0 0 auto;font-size:.9rem;text-align:center;width:1.45rem}.ifp-thumb{border-radius:3px;display:block;height:1.35rem;object-fit:cover;width:1.35rem}.ifp-ext{background:var(--fill-3);border-radius:3px;color:var(--text-secondary);display:inline-block;font-size:.58rem;font-weight:700;min-width:1.9rem;padding:.05rem .2rem;text-align:center}.ifp-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ifp-badge{background:var(--fill-3);border-radius:3px;font-size:.6rem;letter-spacing:.04em;margin-left:.35rem;padding:0 .3rem;text-transform:uppercase}.ifp-badge,.ifp-size{color:var(--text-faint)}.ifp-size{flex:0 0 auto;font-size:.68rem}.ifp-actions{display:none;flex:0 0 auto;gap:.15rem}.ifp-actions:focus-within,.ifp-row:hover .ifp-actions{display:flex}.ifp-btn{background:var(--bg-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.66rem;padding:.1rem .35rem}.ifp-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.ifp-btn-danger:hover{border-color:var(--error-border);color:var(--error-color)}.ifp-rename-input{background:var(--bg-color);border:1px solid var(--primary-border);border-radius:4px;color:var(--text-primary);flex:1 1 auto;font-size:.8rem;min-width:0;padding:.1rem .3rem}.ifp-preview{flex-basis:100%;padding:.25rem .5rem .4rem 2rem}.ifp-preview img{background:var(--surface-inset);border:1px solid var(--border-color);border-radius:6px;max-height:180px;max-width:100%}.ifp-row.ifp-file{flex-wrap:wrap}.ide-editor-droppable{outline:2px dashed var(--primary-color);outline-offset:-2px}.ifp-modal-upload{border-top:1px solid var(--border-color);margin-top:.75rem;padding-top:.6rem;text-align:center}.ifp-modal-upload-divider{color:var(--text-faint);font-size:.72rem;letter-spacing:.08em;margin-bottom:.45rem;text-transform:uppercase}.ifp-modal-upload-hint{color:var(--text-secondary);font-size:.72rem;line-height:1.45;margin:.5rem 0 0}.ide-toolbar-sep{align-self:stretch;background:var(--border-color);flex:0 0 1px;margin:.3rem .25rem;width:1px}@media (max-width:700px){.ide-toolbar-sep{display:none}}.ide-btn-pair{display:inline-flex}.ide-btn-pair>button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ide-btn-pair>button:last-child{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.ide-btn-pair>button:hover:not(:disabled){position:relative;transform:none!important;z-index:1}.ide-toolbar-right{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem .6rem;margin-left:auto;min-width:0}.ide-toolbar-right .java-runner-last-modified,.ide-toolbar-right .java-runner-status,.ide-toolbar-right .web-runner-last-modified{margin-left:0}.java-runner{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 24px #0006;display:flex;flex-direction:column;overflow:hidden}.java-runner-toolbar{align-items:center;background:var(--surface-1);border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:.4rem .45rem;min-width:0;padding:.6rem .9rem}.java-runner-btn{border:0;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:700;padding:.45rem 1rem;transition:background .12s,transform .12s}.java-runner-btn:disabled{cursor:not-allowed;opacity:.45}.java-runner-run{background:var(--primary-color);color:#000}.java-runner-run:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.java-runner-abort{background:var(--error-color);color:#fff}.java-runner-abort:hover{background:#f87171}.java-runner-status{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;margin-left:auto}.java-runner-last-modified{align-items:center;background:var(--fill-2);border:1px solid var(--line-1);border-radius:6px;color:var(--text-secondary);cursor:help;display:inline-flex;font-size:.78rem;gap:.35rem;margin-left:auto;padding:.3rem .55rem;-webkit-user-select:none;user-select:none;white-space:nowrap}.java-runner-last-modified-icon{opacity:.7}.java-runner-last-modified-label{letter-spacing:.02em}.java-runner-last-modified-value{font-feature-settings:"tnum";color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.java-runner-last-modified~.java-runner-status{margin-left:0}@media (max-width:600px){.java-runner-last-modified-label{display:none}}.java-runner-ok{color:var(--success-color)}.java-runner-err{color:var(--error-text)}.java-runner-input-hint{color:var(--warning-text);font-style:italic}.java-runner-budget-hint{color:var(--text-faint);font-size:.78rem;margin-left:.75rem}.ide-font-larger,.ide-font-smaller,.java-runner-files,.java-runner-format,.java-runner-fullscreen,.java-runner-history,.java-runner-new,.java-runner-redo,.java-runner-reset,.java-runner-save,.java-runner-share,.java-runner-templates-toggle,.java-runner-undo,.java-runner-wrap{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text-primary)}.ide-font-larger,.ide-font-smaller,.java-runner-redo,.java-runner-undo{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding-left:.7rem;padding-right:.7rem}.java-runner-share.is-copied{background:#00b50938;border-color:#00b509a6;box-shadow:0 0 0 2px #00b5092e;color:#d1fae5;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.ide-font-larger:hover:not(:disabled),.ide-font-smaller:hover:not(:disabled),.java-runner-files:hover:not(:disabled),.java-runner-format:hover:not(:disabled),.java-runner-fullscreen:hover:not(:disabled),.java-runner-history:hover:not(:disabled),.java-runner-new:hover:not(:disabled),.java-runner-redo:hover:not(:disabled),.java-runner-reset:hover:not(:disabled),.java-runner-save:hover:not(:disabled),.java-runner-share:hover:not(:disabled),.java-runner-templates-toggle:hover:not(:disabled),.java-runner-undo:hover:not(:disabled),.java-runner-wrap:hover:not(:disabled){background:#3a3a3a;border-color:var(--border-strong);transform:translateY(-1px)}.java-runner-files.is-on,.java-runner-fullscreen.is-on,.java-runner-wrap.is-on{background:#00b50926;border-color:#00b50980;color:#00b509;color:var(--primary-color,#00b509)}.java-runner-files.is-on:hover:not(:disabled),.java-runner-fullscreen.is-on:hover:not(:disabled),.java-runner-wrap.is-on:hover:not(:disabled){background:#00b50938}.java-runner-templates{position:relative}.java-runner-templates-menu{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 8px 24px #0009;display:flex;flex-direction:column;left:0;min-width:12rem;padding:.3rem 0;position:absolute;top:calc(100% + .3rem);z-index:30}.java-runner-templates-item{background:#0000;border:0;color:var(--text-primary);cursor:pointer;font-size:.85rem;padding:.55rem .9rem;text-align:left}.java-runner-templates-item:hover{background:#58a6ff1f}.jr-file-tabs{align-items:stretch;background:var(--bg-color);border-bottom:1px solid var(--border-color);display:flex;gap:0;overflow-x:auto;scrollbar-width:thin}.jr-file-tab{align-items:center;background:#161616;border-right:1px solid var(--border-color);border-top:2px solid #0000;color:var(--text-secondary);display:flex;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;gap:.25rem;padding:0 .25rem 0 .75rem;transition:background .12s,color .12s,border-color .12s}.jr-file-tab:hover{background:#1f1f1f;color:var(--text-primary)}.jr-file-tab.active{background:var(--bg-color);border-top-color:var(--primary-color);color:var(--text-primary)}.jr-file-tab-name{color:inherit;font:inherit;max-width:12rem;overflow:hidden;padding:.5rem .25rem .5rem 0;text-overflow:ellipsis;white-space:nowrap}.jr-file-tab-close,.jr-file-tab-name{background:#0000;border:0;cursor:pointer}.jr-file-tab-close{align-items:center;border-radius:3px;color:var(--text-secondary);display:flex;font-size:1rem;height:1.2rem;justify-content:center;line-height:1;padding:0;width:1.2rem}.jr-file-tab-close:hover{background:#3a1818;color:#fca5a5}.jr-file-tab-add{background:#0000;border:0;border-right:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;padding:0 .75rem;transition:background .12s,color .12s}.jr-file-tab-add:hover{background:#1f1f1f;color:var(--primary-color)}.java-runner-editor-wrap{background:var(--bg-color)}.java-runner-tabs{background:var(--surface-1);border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;gap:0}.jr-tab{background:#0000;border:0;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:600;padding:.6rem 1rem;transition:color .12s,border-color .12s}.jr-tab.active,.jr-tab:hover{color:var(--text-primary)}.jr-tab.active{border-bottom-color:var(--primary-color)}.jr-tab.has-error{color:var(--error-text)}.jr-tab.active.has-error{border-bottom-color:var(--error-color);color:var(--error-text)}.java-runner-output{background:var(--bg-secondary);max-height:420px;overflow:auto}.jr-stderr,.jr-stdout{color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;font-size:var(--ide-font-size,.88rem);line-height:1.55;margin:0;min-height:4.5rem;padding:1rem;white-space:pre-wrap;word-break:break-word}.jr-stderr{color:var(--error-text)}.jr-empty{color:var(--text-secondary);font-style:italic}.jr-graphics-panel{align-items:center;justify-content:center;min-height:384px;padding:.75rem}.jr-graphics-inner{align-items:center;display:flex;flex-direction:column;gap:.5rem;max-width:100%}.jr-graphics-hint{color:var(--text-secondary);font-size:.8rem;line-height:1.4;max-width:480px;text-align:center}.jr-turtle-frame{background:#fff;border:1px solid #94a3b84d;border:1px solid var(--border-color,#94a3b84d);border-radius:8px;box-shadow:0 1px 4px #0000001f;height:372px;max-width:100%;width:480px}.java-runner.is-fullscreen .jr-graphics-panel{min-height:70vh}.java-runner.is-fullscreen .jr-turtle-frame{height:60vh;width:720px}.jr-console,.jr-console-section{display:flex;flex-direction:column}.jr-console-section+.jr-console-section{border-top:1px dashed var(--border-color)}.jr-console-label{align-items:baseline;background:#161616;border-bottom:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:.72rem;font-weight:700;gap:.75rem;justify-content:space-between;letter-spacing:.06em;padding:.55rem 1rem .35rem;text-transform:uppercase}.jr-console-label-static{cursor:default}.jr-console-hint{color:var(--text-secondary);font-size:.68rem;font-weight:400;letter-spacing:0;text-transform:none}.jr-console-hint code{background:var(--surface-1);border-radius:3px;color:#9cdcfe;padding:0 .25rem}.jr-console-hint code,.jr-stdin-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.jr-stdin-input{background:#0f0f0f;border:0;color:var(--text-primary);font-size:.88rem;min-height:4.5rem;outline:none;padding:.75rem 1rem}.jr-stdin-input:focus{background:var(--bg-color);box-shadow:inset 0 0 0 2px var(--primary-color)}.jr-stdin-input:disabled{cursor:not-allowed;opacity:.6}.jr-terminal{background:#0b0b0b;color:var(--text-primary);cursor:text;display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;font-size:var(--ide-font-size,.88rem);line-height:1.55;min-height:8rem;padding:.75rem 1rem 1rem;white-space:pre-wrap;word-break:break-word}.jr-terminal-empty{color:var(--text-secondary);font-style:italic}.jr-terminal-out{color:var(--text-primary);white-space:pre-wrap}.jr-terminal-err{color:#f87171;white-space:pre-wrap}:root[data-theme=light] .jr-terminal-err{color:#dc2626}.jr-terminal-in{color:#9cdcfe;white-space:pre-wrap}.jr-stdin-input{background:#0d0d12;background:var(--bg-primary,#0d0d12);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:8px;box-sizing:border-box;color:#f3f4f6;color:var(--text-primary,#f3f4f6);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.5;margin-top:8px;min-height:160px;padding:10px 12px;resize:vertical;width:100%}.jr-stdin-input:focus{border-color:#00b509;border-color:var(--primary-color,#00b509);outline:none}.jr-terminal-in:before{color:var(--primary-color);content:"› ";font-weight:700}.jr-terminal-running{animation:jr-blink 1s steps(2,start) infinite;color:var(--primary-color);display:inline-block}@keyframes jr-blink{to{visibility:hidden}}.jr-terminal-input-row{align-items:center;display:flex;gap:.5rem;margin-top:.15rem;min-width:0}.jr-terminal-prompt{color:var(--primary-color);font-weight:700;-webkit-user-select:none;user-select:none}.jr-terminal-input{background:#0000;border:0;border-bottom:1px dashed var(--primary-color);color:#9cdcfe;flex:1 1;font-family:inherit;font-size:16px;line-height:inherit;min-width:0;outline:none;padding:.1rem .25rem;width:0}.jr-terminal-input::placeholder{color:var(--text-secondary);font-style:italic}.jr-prompt-modal-input{background:#0f0f0f;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:6px;box-sizing:border-box;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;margin-bottom:1.25rem;outline:none;padding:.65rem .85rem;transition:border-color .12s,box-shadow .12s;width:100%}.jr-prompt-modal-input:focus{border-color:#00b509;border-color:var(--primary-color,#00b509);box-shadow:0 0 0 2px #00b5092e}.jr-problem-row{align-items:flex-start;background:#0f0f0f;border-left:3px solid var(--error-color);display:flex;gap:.65rem;padding:.75rem 1rem}.jr-problem-dot{background:var(--error-color);border-radius:50%;box-shadow:0 0 6px #ef444499;flex:0 0 auto;height:10px;margin-top:.4rem;width:10px}.jr-problem-body{flex:1 1 auto;min-width:0}.jr-problem-head{align-items:center;display:flex;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;gap:.5rem;margin-bottom:.35rem}.jr-problem-kind{color:var(--error-text);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.jr-problem-tag{background:#2a1515;border:1px solid #442020;border-radius:3px;color:#fca5a5;font-size:.7rem;padding:.08rem .4rem;text-transform:lowercase}.jr-problem-loc{color:var(--text-secondary);font-size:.76rem}.jr-problem-msg{color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;font-size:var(--ide-font-size,.88rem);line-height:1.5;margin:0;padding:0;white-space:pre-wrap;word-break:break-word}@media (max-width:640px){.java-runner-btn{font-size:.85rem;padding:.4rem .75rem}.java-runner-status{font-size:.75rem}}.java-runner.is-fullscreen.is-fullscreen{background:var(--bg-color);border:0;border-radius:0;box-shadow:none;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto 1fr;inset:0;max-width:none;overflow:hidden;position:fixed;z-index:9999}.java-runner.is-fullscreen.is-fullscreen .java-runner-toolbar{grid-column:1/-1;grid-row:1;position:static;top:auto}@media (max-width:640px){.ide-shell.is-fullscreen .java-runner-toolbar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.3rem;overflow-x:auto;overflow-y:hidden;padding:.35rem .5rem;scrollbar-width:none}.ide-shell.is-fullscreen .java-runner-toolbar::-webkit-scrollbar{display:none}.ide-shell.is-fullscreen .java-runner-toolbar>*{flex:0 0 auto}.ide-shell.is-fullscreen .java-runner-toolbar .java-runner-btn{font-size:.82rem;padding:.35rem .55rem;white-space:nowrap}.ide-shell.is-fullscreen .ide-toolbar-right{background:var(--surface-1);box-shadow:-8px 0 8px -6px #00000059;flex-wrap:nowrap;gap:.3rem;margin-left:.25rem;padding-left:.4rem;position:-webkit-sticky;position:sticky;right:0;z-index:2}.ide-shell.is-fullscreen .java-runner-budget-hint,.ide-shell.is-fullscreen .java-runner-last-modified,.ide-shell.is-fullscreen .web-runner-last-modified{display:none}}.java-runner.is-fullscreen.is-fullscreen .jr-file-tabs{grid-column:1/-1;grid-row:2;position:static;top:auto}.java-runner.is-fullscreen.is-fullscreen .java-runner-editor-wrap{align-self:stretch;display:flex;flex-direction:column;grid-column:1;grid-row:3;height:auto;min-height:0;overflow:hidden;position:static;top:auto}.java-runner.is-fullscreen.is-fullscreen .java-runner-editor-wrap>.jce-wrap{flex:1 1 auto;height:100%;min-height:0}.java-runner.is-fullscreen.is-fullscreen .java-runner-editor-wrap>.jce-wrap>.jce-textarea{height:100%;resize:none}.java-runner.is-fullscreen.is-fullscreen .jr-col-splitter{display:none}.java-runner.is-fullscreen.is-fullscreen .jr-console-column{align-self:stretch;border-top:1px solid var(--border-color);display:flex;flex-direction:column;grid-column:1;grid-row:4;height:auto;max-height:none;overflow:hidden;position:static;top:auto}.java-runner.is-fullscreen.is-fullscreen .jr-console-column .java-runner-output{flex:1 1 auto;max-height:none;min-height:0;overflow:auto}.java-runner.is-fullscreen.is-fullscreen .jr-console-column .java-runner-tabs{flex:0 0 auto}.java-runner.is-fullscreen.is-fullscreen{grid-template-rows:auto auto minmax(0,2fr) minmax(0,1fr)}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel){grid-template-rows:auto auto minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.9fr)}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .java-debug-panel{align-self:stretch;border-bottom:1px solid var(--border-color);border-radius:0;border-top:1px solid var(--border-color);grid-column:1/-1;grid-row:4;margin:0;max-height:none}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .jr-console-column{grid-row:5}@media (min-width:1080px){.java-runner.is-fullscreen.is-fullscreen{grid-template-columns:minmax(240px,1fr) 6px clamp(320px,30vw,440px);grid-template-columns:minmax(240px,1fr) 6px var(--jpg-sidebar-w,clamp(320px,30vw,440px));grid-template-rows:auto auto minmax(0,1fr)}.java-runner.is-fullscreen.is-fullscreen .java-runner-editor-wrap{grid-column:1;grid-row:3}.java-runner.is-fullscreen.is-fullscreen .jr-col-splitter{align-self:stretch;background:var(--border-color);cursor:col-resize;display:block;grid-column:2;grid-row:3;height:auto;position:static;top:auto}.java-runner.is-fullscreen.is-fullscreen .jr-col-splitter:active,.java-runner.is-fullscreen.is-fullscreen .jr-col-splitter:hover{background:var(--primary-color)}.java-runner.is-fullscreen.is-fullscreen .jr-console-column{border-left:1px solid var(--border-color);border-top:0;grid-column:3;grid-row:3}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel){grid-template-columns:minmax(240px,1fr) 6px clamp(320px,30vw,440px);grid-template-columns:minmax(240px,1fr) 6px var(--jpg-sidebar-w,clamp(320px,30vw,440px));grid-template-rows:auto auto minmax(0,1.6fr) minmax(0,1fr)}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .java-runner-editor-wrap{grid-column:1;grid-row:3}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .java-debug-panel{align-self:stretch;border:0;border-radius:0;border-top:1px solid var(--border-color);grid-column:1;grid-row:4;margin:0;max-height:none}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .jr-col-splitter{grid-row:3/span 2}.java-runner.is-fullscreen.is-fullscreen:has(>.java-debug-panel) .jr-console-column{grid-column:3;grid-row:3/span 2}}:root[data-theme=light] .java-runner{box-shadow:0 1px 3px #1118271a}:root[data-theme=light] .java-runner-run{color:#06250a}:root[data-theme=light] .ide-font-larger:hover:not(:disabled),:root[data-theme=light] .ide-font-smaller:hover:not(:disabled),:root[data-theme=light] .java-runner-files:hover:not(:disabled),:root[data-theme=light] .java-runner-format:hover:not(:disabled),:root[data-theme=light] .java-runner-fullscreen:hover:not(:disabled),:root[data-theme=light] .java-runner-history:hover:not(:disabled),:root[data-theme=light] .java-runner-new:hover:not(:disabled),:root[data-theme=light] .java-runner-redo:hover:not(:disabled),:root[data-theme=light] .java-runner-reset:hover:not(:disabled),:root[data-theme=light] .java-runner-save:hover:not(:disabled),:root[data-theme=light] .java-runner-share:hover:not(:disabled),:root[data-theme=light] .java-runner-templates-toggle:hover:not(:disabled),:root[data-theme=light] .java-runner-undo:hover:not(:disabled),:root[data-theme=light] .java-runner-wrap:hover:not(:disabled){background:#1118270f}:root[data-theme=light] .java-runner-share.is-copied{color:#06250a}:root[data-theme=light] .java-runner-templates-menu{box-shadow:0 1px 3px #1118271a}:root[data-theme=light] .java-runner-templates-item:hover{background:#388bfd1f}:root[data-theme=light] .jr-file-tab{background:#f0f2f5}:root[data-theme=light] .jr-file-tab:hover{background:#1118270f}:root[data-theme=light] .jr-file-tab.active{background:var(--bg-color)}:root[data-theme=light] .jr-file-tab-close:hover{background:#ffe3e3;color:#b42318}:root[data-theme=light] .jr-file-tab-add:hover{background:#1118270f}:root[data-theme=light] .jr-console-label{background:#f0f2f5}:root[data-theme=light] .jr-console-hint code{color:#0550ae}:root[data-theme=light] .jr-stdin-input{background:#fff;color:#1f2328}:root[data-theme=light] .jr-terminal{background:#f6f8fa;color:#1f2328}:root[data-theme=light] .jr-terminal-out{color:#1f2328}:root[data-theme=light] .jr-terminal-in,:root[data-theme=light] .jr-terminal-input{color:#0550ae}:root[data-theme=light] .jr-prompt-modal-input{background:#fff;border:1px solid #d8dce0;color:#1f2328}:root[data-theme=light] .jr-problem-row{background:#fff5f5}:root[data-theme=light] .jr-problem-tag{background:#ffe3e3;border:1px solid #ffc9c9;color:#b42318}.java-runner-fullscreen:not(.is-on){background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue);font-weight:600}.java-runner-fullscreen:not(.is-on):hover:not(:disabled){background:var(--accent-blue-bg);border-color:var(--accent-blue);color:var(--accent-blue)}.wce-wrap{--wce-gutter-w:calc(var(--ide-font-size, 0.88rem)*3.25/0.88);background:#0d1117;border:1px solid var(--border-color);border-radius:0;color:#e6edf3;display:grid;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;font-size:var(--ide-font-size,.88rem);grid-template-columns:var(--wce-gutter-w) 1fr;line-height:1.55;min-height:27.9em;min-height:calc(var(--wce-rows, 18)*1.55em);overflow:hidden;position:relative}.wce-gutter{font-feature-settings:"tnum";background:#0a0d12;border-right:1px solid var(--surface-deep);color:#565f6e;font:inherit;font-variant-numeric:tabular-nums;margin:0;overflow:hidden;padding:.5rem;text-align:right;-webkit-user-select:none;user-select:none;white-space:pre}.wce-gutter-marker-empty{display:inline-block;width:1.2em}.wce-highlight,.wce-wrap-view{color:#e6edf3;font:inherit;margin:0;overflow:hidden;padding:.5rem .75rem;pointer-events:none;white-space:pre;word-break:normal}.wce-wrap-view{white-space:normal}.wce-line{display:block;padding-left:0;padding-left:var(--wce-indent,0);text-indent:0;text-indent:calc(var(--wce-indent, 0ch)*-1);white-space:pre-wrap}.wce-linenum{display:none}.wce-textarea{-webkit-text-fill-color:#0000;background:#0000;border:0;bottom:0;caret-color:#58a6ff;color:#0000;font:inherit;height:100%;left:var(--wce-gutter-w);margin:0;outline:none;overflow:auto;padding:.5rem .75rem;position:absolute;resize:none;right:0;top:0;white-space:pre;width:calc(100% - var(--wce-gutter-w))}.wce-word-wrap .wce-textarea{white-space:pre-wrap;word-break:break-word}.wce-textarea::selection{-webkit-text-fill-color:#0000;background:#388bfd59;color:#0000}.wce-kw{color:#ff7b72}.wce-type{color:#d2a8ff}.wce-lit{color:#79c0ff}.wce-str{color:#a5d6ff}.wce-num{color:#79c0ff}.wce-cmt{color:#8b949e;font-style:italic}.wce-fn{color:#d2a8ff}.wce-id{color:#e6edf3}.wce-op{color:#c9d1d9}.wce-lang-html .wce-tag{color:#7ee787}.wce-lang-html .wce-attr{color:#79c0ff}.wce-lang-html .wce-str{color:#a5d6ff}.wce-lang-html .wce-id,.wce-lang-html .wce-op{color:#c9d1d9}.wce-lang-html .wce-cmt{color:#8b949e;font-style:italic}.wce-lang-css .wce-prop{color:#79c0ff}.wce-lang-css .wce-val{color:#ffa657}.wce-lang-css .wce-sel{color:#7ee787}.wce-lang-css .wce-num{color:#ffa657}.wce-lang-css .wce-str{color:#a5d6ff}.wce-bracket-match{background:#58a6ff38;border-radius:2px;outline:1px solid #58a6ff73}.wce-wrap[style*="--wce-rows"]{height:100%}.wce-autocomplete{background:#1e2530;border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 12px 32px #0009;display:flex;flex-direction:column;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;max-height:16rem;max-width:16rem;min-width:9rem;overflow-y:auto;padding:.2rem 0;position:absolute;transform:translate(.2rem,.2rem);z-index:60}.wce-autocomplete-item{background:#0000;border:0;color:#d2a8ff;cursor:pointer;font:inherit;padding:.35rem .8rem;text-align:left;transition:background 80ms;white-space:nowrap}.wce-autocomplete-item.selected,.wce-autocomplete-item:hover{background:#58a6ff2e;color:#fff}.wce-autocomplete-item.selected:before{color:#00b509;color:var(--primary-color,#00b509);content:"▸ ";font-weight:700}.wce-color-swatch{align-items:center;border:2px solid var(--line-3);border-radius:4px;box-shadow:0 2px 8px #0009,inset 0 0 0 1px #00000059;cursor:pointer;display:inline-flex;height:1.5rem;justify-content:center;padding:0;position:absolute;transform:translateY(.25rem);transition:transform 80ms,box-shadow 80ms;width:1.5rem;z-index:50}.wce-color-swatch:hover{box-shadow:0 4px 12px #000000b3,inset 0 0 0 1px #00000059;transform:translateY(.25rem) scale(1.08)}.wce-color-swatch-label{filter:invert(1) grayscale(1) contrast(2);font-size:.7rem;mix-blend-mode:difference;pointer-events:none}.wce-color-input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}:root[data-theme=light] .wce-wrap{background:#fff;color:#1f2328}:root[data-theme=light] .wce-gutter{background:#f6f8fa;border-right:1px solid #d8dce0;color:#57606a}:root[data-theme=light] .wce-highlight,:root[data-theme=light] .wce-wrap-view{color:#1f2328}:root[data-theme=light] .wce-textarea{caret-color:#0550ae}:root[data-theme=light] .wce-textarea::selection{-webkit-text-fill-color:#0000;background:#388bfd38;color:#0000}:root[data-theme=light] .wce-kw{color:#cf222e}:root[data-theme=light] .wce-type{color:#953800}:root[data-theme=light] .wce-lit{color:#0550ae}:root[data-theme=light] .wce-str{color:#0a3069}:root[data-theme=light] .wce-num{color:#0550ae}:root[data-theme=light] .wce-cmt{color:#6e7781}:root[data-theme=light] .wce-fn{color:#8250df}:root[data-theme=light] .wce-id,:root[data-theme=light] .wce-op{color:#1f2328}:root[data-theme=light] .wce-lang-html .wce-tag{color:#116329}:root[data-theme=light] .wce-lang-html .wce-attr{color:#0550ae}:root[data-theme=light] .wce-lang-html .wce-str{color:#0a3069}:root[data-theme=light] .wce-lang-html .wce-id,:root[data-theme=light] .wce-lang-html .wce-op{color:#1f2328}:root[data-theme=light] .wce-lang-html .wce-cmt{color:#6e7781}:root[data-theme=light] .wce-lang-css .wce-prop{color:#0550ae}:root[data-theme=light] .wce-lang-css .wce-val{color:#953800}:root[data-theme=light] .wce-lang-css .wce-sel{color:#116329}:root[data-theme=light] .wce-lang-css .wce-num{color:#953800}:root[data-theme=light] .wce-lang-css .wce-str{color:#0a3069}:root[data-theme=light] .wce-bracket-match{background:#388bfd29;outline:1px solid #388bfd73}:root[data-theme=light] .wce-autocomplete{background:#fff;border:1px solid #d8dce0;box-shadow:0 12px 32px #1118272e}:root[data-theme=light] .wce-autocomplete-item{color:#1f2328}:root[data-theme=light] .wce-autocomplete-item.selected,:root[data-theme=light] .wce-autocomplete-item:hover{background:#388bfd29;color:#1f2328}:root[data-theme=light] .wce-color-swatch{box-shadow:0 1px 3px #1118272e,inset 0 0 0 1px #11182726}:root[data-theme=light] .wce-color-swatch:hover{box-shadow:0 4px 12px #11182738,inset 0 0 0 1px #11182726}.web-runner{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 24px #0006;display:grid;grid-template-areas:"toolbar toolbar toolbar" "tabs    tabs    tabs" "editor  split   preview";grid-template-columns:minmax(0,1fr) 6px 460px;grid-template-columns:minmax(0,1fr) 6px var(--wr-preview-w,460px);grid-template-rows:auto auto 1fr;min-height:32rem;overflow:hidden}@media (max-width:900px){.web-runner{grid-template-areas:"toolbar" "tabs" "editor" "split" "preview";grid-template-columns:1fr;grid-template-rows:auto auto 1fr 6px 26rem}.wr-col-splitter{cursor:row-resize!important}}.web-runner.is-fullscreen{border:0;border-radius:0;inset:0;min-height:100vh;position:fixed;z-index:9999}.web-runner.is-fullscreen .web-runner-toolbar,.web-runner.is-fullscreen .wr-file-tabs{display:flex}.web-runner.is-fullscreen .wce-wrap,.web-runner.is-fullscreen .wr-editor-column,.web-runner.is-fullscreen .wr-preview-column{min-height:0}.web-runner-toolbar{align-items:center;background:var(--surface-1);border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:.4rem .45rem;grid-area:toolbar;min-width:0;padding:.6rem .9rem}.web-runner-btn{border:0;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:700;padding:.45rem 1rem;transition:background .12s,transform .12s}.web-runner-btn:disabled{cursor:not-allowed;opacity:.45}.web-runner-run{background:var(--primary-color);color:#000}.web-runner-run:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.ide-font-larger,.ide-font-smaller,.web-runner-files,.web-runner-format,.web-runner-fullscreen,.web-runner-history,.web-runner-new,.web-runner-redo,.web-runner-reset,.web-runner-save,.web-runner-share,.web-runner-undo{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text-primary)}.ide-font-larger:hover:not(:disabled),.ide-font-smaller:hover:not(:disabled),.web-runner-files:hover:not(:disabled),.web-runner-format:hover:not(:disabled),.web-runner-fullscreen:hover:not(:disabled),.web-runner-history:hover:not(:disabled),.web-runner-new:hover:not(:disabled),.web-runner-redo:hover:not(:disabled),.web-runner-reset:hover:not(:disabled),.web-runner-save:hover:not(:disabled),.web-runner-share:hover:not(:disabled),.web-runner-undo:hover:not(:disabled){background:#3a3a3a;border-color:var(--border-strong);transform:translateY(-1px)}.ide-font-larger,.ide-font-smaller,.web-runner-redo,.web-runner-undo{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding-left:.7rem;padding-right:.7rem}.web-runner-files.is-on,.web-runner-fullscreen.is-on{background:#00b50926;border-color:#00b50980;color:#00b509;color:var(--primary-color,#00b509)}.web-runner-share.is-copied{background:#00b50938;border-color:#00b509a6;box-shadow:0 0 0 2px #00b5092e;color:#d1fae5}.web-runner-webview{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text-primary)}.web-runner-webview:hover:not(:disabled){background:#3a3a3a;transform:translateY(-1px)}.web-runner-share-menu{display:inline-flex;position:relative}.web-runner-share-dropdown{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 10px 28px #00000059;display:flex;flex-direction:column;gap:2px;left:0;min-width:226px;padding:6px;position:absolute;top:calc(100% + 6px);z-index:50}.web-runner-share-item{align-items:flex-start;background:#0000;border:0;border-radius:7px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 10px;text-align:left;width:100%}.web-runner-share-item:focus-visible,.web-runner-share-item:hover{background:var(--surface-hover);outline:none}.web-runner-share-item-title{font-size:.88rem;font-weight:700}.web-runner-share-item-sub{color:var(--text-secondary);font-size:.76rem}.web-runner-autorun{align-items:center;background:var(--fill-1);border:1px solid var(--line-1);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.85rem;gap:.4rem;padding:.3rem .55rem;-webkit-user-select:none;user-select:none}.web-runner-autorun input{accent-color:var(--primary-color)}.web-runner-last-modified{align-items:center;background:var(--fill-2);border:1px solid var(--line-1);border-radius:6px;color:var(--text-secondary);cursor:help;display:inline-flex;font-size:.78rem;gap:.35rem;margin-left:auto;padding:.3rem .55rem;white-space:nowrap}.web-runner-last-modified-value{font-feature-settings:"tnum";color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}@media (max-width:600px){.web-runner-last-modified-label{display:none}}.wr-file-tabs{align-items:stretch;background:var(--bg-color);border-bottom:1px solid var(--border-color);display:flex;gap:0;grid-area:tabs;overflow-x:auto;scrollbar-width:thin}.wr-file-tab{align-items:center;background:#161616;border-right:1px solid var(--border-color);border-top:2px solid #0000;color:var(--text-secondary);display:flex;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;gap:.25rem;padding:0 .25rem 0 .75rem;transition:background .12s,color .12s,border-color .12s}.wr-file-tab:hover{background:var(--surface-hover);color:var(--text-primary)}.wr-file-tab.active{background:#0d1117;border-top-color:var(--primary-color);color:var(--text-primary)}.wr-file-tab-name{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.45rem;max-width:12rem;overflow:hidden;padding:.5rem .25rem .5rem 0;text-overflow:ellipsis;white-space:nowrap}.wr-file-tab-dot{background:#555;border-radius:50%;flex:0 0 auto;height:.55rem;width:.55rem}.wr-file-tab-dot-html{background:#e34c26}.wr-file-tab-dot-css{background:#2965f1}.wr-file-tab-dot-javascript{background:#f7df1e}.wr-file-tab-close{align-items:center;background:#0000;border:0;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1rem;height:1.2rem;justify-content:center;line-height:1;padding:0;width:1.2rem}.wr-file-tab-close:hover{background:#3a1818;color:#fca5a5}.wr-file-tab-add{background:#0000;border:0;border-right:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;padding:0 .75rem;transition:background .12s,color .12s}.wr-file-tab-add:hover{background:var(--surface-hover);color:var(--primary-color)}.wr-editor-column{background:#0d1117;display:flex;flex-direction:column;grid-area:editor;min-width:0}.wr-editor-wrap{display:flex;flex:1 1 auto;min-height:0}.wr-editor-wrap>.wce-wrap{border:0;border-radius:0;flex:1 1}.web-runner.wr-is-dragging,.web-runner.wr-is-dragging *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.web-runner.wr-is-dragging .wr-preview-iframe{pointer-events:none}.wr-col-splitter{background:var(--surface-1);cursor:col-resize;grid-area:split;position:relative;transition:background .12s}.wr-col-splitter:before{color:var(--text-faint);content:"⋮";font-size:14px;left:50%;line-height:1;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.wr-col-splitter:after{background:linear-gradient(180deg,#0000 0,var(--fill-3) 50%,#0000 100%);content:"";inset:0;pointer-events:none;position:absolute}.wr-col-splitter:hover{background:var(--primary-color)}.wr-col-splitter:hover:before{color:#000}.wr-col-splitter::backdrop{background:#0000}@media (max-width:900px){.wr-col-splitter:before{content:"⋯"}}.wr-preview-column{background:#fafafa;border-left:1px solid var(--border-color);display:flex;flex-direction:column;grid-area:preview;min-width:0}.wr-preview-header{align-items:center;background:var(--surface-1);border-bottom:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:.78rem;gap:.75rem;justify-content:space-between;padding:.45rem .8rem}.wr-preview-label{color:var(--text-primary);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.wr-preview-hint{color:var(--text-secondary);font-style:italic}.wr-preview-entry{align-items:center;color:var(--text-secondary);display:inline-flex;font-size:.78rem;gap:.35rem;margin-right:auto}.wr-preview-entry-label{color:var(--text-secondary);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.wr-preview-entry-select{background:#0f0f0f;border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;padding:.15rem .4rem}.wr-preview-entry-select:hover{border-color:var(--primary-color)}.wr-preview-entry-select:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.wr-preview-iframe{background:#fff;border:0;flex:1 1 auto;min-height:90px;width:100%}.wr-console-splitter{background:var(--surface-1);border-top:1px solid var(--border-color);cursor:row-resize;flex:0 0 auto;height:7px;position:relative;touch-action:none}.wr-console-splitter:before{background:#6b7280;background:var(--text-faint,#6b7280);border-radius:2px;content:"";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background .12s;width:34px}.wr-console-splitter:hover{background:var(--surface-hover)}.wr-console-splitter:hover:before{background:var(--primary-color)}.wr-console-tabs{align-items:stretch;background:#161616;border-bottom:1px solid var(--border-color);display:flex}.wr-console-tab{background:#0000;border:0;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:.82rem;font-weight:600;padding:.55rem .9rem}.wr-console-tab.active,.wr-console-tab:hover{color:var(--text-primary)}.wr-console-tab.active{border-bottom-color:var(--primary-color)}.wr-console-tab.has-error{color:var(--error-text)}.wr-console-tab.active.has-error{border-bottom-color:var(--error-color)}.wr-console-count{color:var(--text-faint);font-weight:500}.wr-console-tabs-spacer{flex:1 1 auto}.wr-console-clear{background:#0000;border:0;color:var(--text-secondary);cursor:pointer;font-size:.78rem;padding:0 .85rem}.wr-console-clear:hover{color:var(--primary-color)}.wr-console-body{background:#0b0b0b;flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem;line-height:1.55;max-height:14rem;min-height:6rem;overflow:auto;padding:.35rem 0}.wr-console-empty{color:var(--text-secondary);font-style:italic;padding:1rem;white-space:pre-wrap}.wr-console-empty code{background:var(--surface-hover);border-radius:3px;color:var(--info-color);font-style:normal;padding:0 .3rem}.wr-console-row{grid-gap:.65rem;border-bottom:1px solid var(--line-1);display:grid;gap:.65rem;grid-template-columns:4.5rem 1fr;padding:.35rem .85rem}.wr-console-method{align-self:start;color:var(--text-secondary);font-size:.7rem;letter-spacing:.06em;padding-top:.1rem;text-transform:uppercase}.wr-console-row-error{background:#f871710f}.wr-console-row-error .wr-console-method{color:var(--error-text)}.wr-console-row-warn{background:#fbbf240d}.wr-console-row-warn .wr-console-method{color:var(--warning-text)}.wr-console-row-info .wr-console-method{color:var(--accent-blue)}.wr-console-content{min-width:0}.wr-console-arg{color:#e6edf3;margin:0 0 .15rem}.wr-console-arg,.wr-console-message{white-space:pre-wrap;word-break:break-word}.wr-console-message{color:var(--error-text);font-weight:600}.wr-console-location{margin-top:.2rem}.wr-console-location,.wr-console-stack{color:var(--text-secondary);font-size:.78rem}.wr-console-stack{background:#0006;border-left:2px solid #fca5a5;margin-top:.35rem;padding:.45rem .6rem;white-space:pre-wrap;word-break:break-word}.wr-prompt-modal-input{background:#0f0f0f;border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:6px;box-sizing:border-box;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;margin-bottom:1.25rem;outline:none;padding:.65rem .85rem;width:100%}.wr-prompt-modal-input:focus{border-color:#00b509;border-color:var(--primary-color,#00b509);box-shadow:0 0 0 2px #00b5092e}:root[data-theme=light] .web-runner{box-shadow:0 1px 3px #1118271a}:root[data-theme=light] .web-runner-run{color:#06250a}:root[data-theme=light] .ide-font-larger:hover:not(:disabled),:root[data-theme=light] .ide-font-smaller:hover:not(:disabled),:root[data-theme=light] .web-runner-format:hover:not(:disabled),:root[data-theme=light] .web-runner-fullscreen:hover:not(:disabled),:root[data-theme=light] .web-runner-history:hover:not(:disabled),:root[data-theme=light] .web-runner-redo:hover:not(:disabled),:root[data-theme=light] .web-runner-reset:hover:not(:disabled),:root[data-theme=light] .web-runner-save:hover:not(:disabled),:root[data-theme=light] .web-runner-share:hover:not(:disabled),:root[data-theme=light] .web-runner-undo:hover:not(:disabled),:root[data-theme=light] .web-runner-webview:hover:not(:disabled){background:#1118270f}:root[data-theme=light] .web-runner-share.is-copied{color:#06250a}:root[data-theme=light] .wr-file-tab{background:#f0f2f5;border-right:1px solid #d8dce0}:root[data-theme=light] .wr-file-tab:hover{background:#1118270f}:root[data-theme=light] .wr-file-tab.active{background:#fff}:root[data-theme=light] .wr-file-tab-close:hover{background:#ffe3e3;color:#b42318}:root[data-theme=light] .wr-editor-column,:root[data-theme=light] .wr-preview-column{background:#fff}:root[data-theme=light] .wr-preview-entry-select{background:#fff;border:1px solid #d8dce0;color:#1f2328}:root[data-theme=light] .wr-console-tabs{background:#f0f2f5}:root[data-theme=light] .wr-console-body{background:#f6f8fa}:root[data-theme=light] .wr-console-empty code{background:#1118270f;color:#0550ae}:root[data-theme=light] .wr-console-arg{color:#1f2328}:root[data-theme=light] .wr-console-stack{background:#1118270a}:root[data-theme=light] .wr-prompt-modal-input{background:#fff;border:1px solid #d8dce0;color:#1f2328}.web-runner-fullscreen:not(.is-on){background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue);font-weight:600}.web-runner-fullscreen:not(.is-on):hover:not(:disabled){background:var(--accent-blue-bg);border-color:var(--accent-blue);color:var(--accent-blue)}:root[data-theme=light] .web-runner-fullscreen:not(.is-on):hover:not(:disabled){background:var(--accent-blue-bg)}.inline-web-challenge{background:#16161f;background:var(--bg-secondary,#16161f);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-left:4px solid #ec4899;border-radius:10px;margin:1.75rem 0;padding:1rem 1.1rem 1.1rem}.inline-web-challenge-solved{border-left-color:#16a34a}.inline-web-challenge-missing{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-style:italic}.iwc-header{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem}.iwc-badge{background:#ec489929;border:1px solid #ec489966;border-radius:999px;color:#f9a8d4;font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:.2rem .55rem;text-transform:uppercase;white-space:nowrap}.inline-web-challenge-solved .iwc-badge{background:#16a34a29;border-color:#16a34a66;color:#86efac;color:var(--success-text,#86efac)}.iwc-title{color:#f3f4f6;color:var(--text-primary,#f3f4f6);flex:1 1;font-size:1rem;margin:0;min-width:0}.iwc-score{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.78rem;font-weight:700}.iwc-score-pass{color:#86efac;color:var(--success-text,#86efac)}.iwc-instructions{color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:.92rem;line-height:1.55;margin-bottom:.85rem}.iwc-body{grid-gap:.85rem;align-items:start;display:grid;gap:.85rem;grid-template-columns:1fr 1fr}@media (max-width:760px){.iwc-body{grid-template-columns:1fr}}.iwc-editor-col{min-width:0}.iwc-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.4rem}.iwc-tab{background:#1f1f2b;background:var(--fill-1,#1f1f2b);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-bottom:none;border-radius:6px 6px 0 0;color:#9ca3af;color:var(--text-secondary,#9ca3af);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;padding:.3rem .6rem}.iwc-tab-active{background:#0f0f17;background:var(--bg-primary,#0f0f17);border-color:#ec489980;color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.iwc-preview-col{min-width:0}.iwc-preview-label{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.72rem;letter-spacing:.04em;margin-bottom:.4rem;text-transform:uppercase}.iwc-preview-frame{background:#fff;border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:8px;height:260px;width:100%}.iwc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}.iwc-btn{border:1px solid #0000;border-radius:7px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .9rem}.iwc-btn-check{background:#ec4899;color:#fff}.iwc-btn-check:hover{background:#db2777}.iwc-btn-hint,.iwc-btn-reset,.iwc-btn-reveal{background:#1f1f2b;background:var(--fill-1,#1f1f2b);border-color:#2a2a3e;border-color:var(--border-color,#2a2a3e);color:#e5e7eb;color:var(--text-primary,#e5e7eb)}.iwc-btn-hint:hover,.iwc-btn-reset:hover,.iwc-btn-reveal:hover{background:#2a2a3a;background:var(--fill-2,#2a2a3a)}.iwc-btn:disabled{cursor:not-allowed;opacity:.55}.iwc-hints{background:#ec489914;border:1px solid #ec489940;border-radius:7px;color:#cbd5e1;color:var(--text-secondary,#cbd5e1);font-size:.86rem;line-height:1.5;margin-top:.7rem;padding:.6rem .75rem}.iwc-hint-num{color:#f9a8d4;font-weight:700}.iwc-results{display:flex;flex-direction:column;gap:.35rem;list-style:none;margin:.85rem 0 0;padding:0}.iwc-result-row{align-items:flex-start;border-radius:6px;display:flex;font-size:.86rem;gap:.5rem;line-height:1.45;padding:.4rem .6rem}.iwc-result-pass{background:#16a34a1a}.iwc-result-fail,.iwc-result-pass{color:#e5e7eb;color:var(--text-primary,#e5e7eb)}.iwc-result-fail{background:#ef44441a}.iwc-result-icon{font-weight:800}.iwc-result-pass .iwc-result-icon{color:#4ade80;color:var(--success-text,#4ade80)}.iwc-result-fail .iwc-result-icon{color:#f87171;color:var(--error-text,#f87171)}.iwc-result-msg{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.iwc-success{background:#16a34a24;border-radius:7px;color:#86efac;color:var(--success-text,#86efac);font-size:.9rem;font-weight:600;margin-top:.85rem;padding:.55rem .75rem}.iwc-solution{display:flex;flex-direction:column;gap:.6rem;margin-top:.85rem}.iwc-solution-filename{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;margin-bottom:.2rem}.iwc-solution pre{background:#0f0f17;background:var(--bg-primary,#0f0f17);border:1px solid #2a2a3e;border:1px solid var(--border-color,#2a2a3e);border-radius:7px;font-size:.82rem;margin:0;overflow-x:auto;padding:.7rem .85rem}:root[data-theme=light] .inline-web-challenge{background:#fdf2f8}:root[data-theme=light] .iwc-badge{color:#be185d}:root[data-theme=light] .inline-web-challenge-solved .iwc-badge{color:var(--success-text)}:root[data-theme=light] .iwc-hint-num{color:#be185d}.fnd-dual-challenge,.fnd-dual-example,.fnd-lang-picker{--fnd-accent:#f59e0b;--fnd-accent-fg:#fcd34d;--fnd-accent-bg:#f59e0b29;--fnd-accent-tint:#f59e0b0f}:root[data-theme=light] .fnd-dual-challenge,:root[data-theme=light] .fnd-dual-example,:root[data-theme=light] .fnd-lang-picker{--fnd-accent-fg:#b45309}.fnd-dual-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;margin-bottom:.6rem}.fnd-dual-title{align-items:center;color:#e4e4e7;color:var(--text-primary,#e4e4e7);display:inline-flex;font-size:.92rem;font-weight:700;gap:.4rem}.fnd-dual-check{color:#4ade80;color:var(--success-text,#4ade80);font-weight:800}.fnd-lang-pills{align-items:center;background:#1a1a1a;background:var(--surface-1,#1a1a1a);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-radius:999px;display:inline-flex;gap:0;overflow:hidden}.fnd-lang-pill{background:#0000;border:0;color:#a1a1aa;color:var(--text-secondary,#a1a1aa);cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:700;line-height:1.3;padding:.32rem .85rem;transition:background .12s,color .12s}.fnd-lang-pill:hover:not(.fnd-lang-pill-active){background:var(--fnd-accent-tint);color:#e4e4e7;color:var(--text-primary,#e4e4e7)}.fnd-lang-pill-active{background:var(--fnd-accent-bg);color:var(--fnd-accent-fg);cursor:default}.fnd-lang-pill:focus-visible{outline:2px solid var(--fnd-accent);outline-offset:-2px}.fnd-dual-example{background:#1a1a1a;background:var(--card-bg,#1a1a1a);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-left:3px solid var(--fnd-accent);border-radius:10px;margin:1.5rem 0;padding:.9rem 1rem 1rem}.fnd-dual-example .fnd-dual-title{color:var(--fnd-accent-fg);font-size:.88rem}.fnd-dual-code{border-radius:8px;overflow:hidden}.fnd-dual-challenge{background:var(--fnd-accent-tint);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-left:3px solid var(--fnd-accent);border-radius:10px;margin:1.5rem 0;padding:.9rem 1rem 1rem}.fnd-dual-challenge-solved{border-color:#22c55e73 #22c55e73 #22c55e73 #22c55e;border-left-color:var(--success-color,#22c55e)}.fnd-dual-challenge-missing{color:#fca5a5;color:var(--error-text,#fca5a5);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.fnd-dual-challenge .inline-java-challenge{margin:.25rem 0 0}.fnd-dual-solvednote{background:#22c55e1f;border:1px solid #22c55e59;border-radius:6px;color:#4ade80;color:var(--success-text,#4ade80);font-size:.82rem;font-weight:600;margin-top:.7rem;padding:.5rem .8rem}.fnd-lang-picker{background:var(--fnd-accent-tint);border:1px solid #2e2e2e;border:1px solid var(--border-color,#2e2e2e);border-left:3px solid var(--fnd-accent);border-radius:12px;margin:1.5rem 0;padding:1.1rem 1.1rem 1.2rem}.fnd-lang-picker-heading{color:var(--fnd-accent-fg);font-size:1.1rem;font-weight:800;margin-bottom:.25rem}.fnd-lang-picker-sub{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.92rem;line-height:1.55;margin:0 0 1rem}.fnd-lang-cards{grid-gap:.9rem;display:grid;gap:.9rem;grid-template-columns:repeat(2,minmax(0,1fr))}.fnd-lang-card{align-items:flex-start;background:#1a1a1a;background:var(--card-bg,#1a1a1a);border:2px solid #2e2e2e;border:2px solid var(--border-color,#2e2e2e);border-radius:10px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:.45rem;padding:.95rem 1rem;text-align:left;transition:border-color .12s,background .12s,transform .12s}.fnd-lang-card:hover:not(.fnd-lang-card-active){border-color:var(--fnd-accent);transform:translateY(-1px)}.fnd-lang-card:focus-visible{outline:2px solid var(--fnd-accent);outline-offset:2px}.fnd-lang-card-active{background:var(--fnd-accent-bg);border-color:var(--fnd-accent);cursor:default}.fnd-lang-card-top{align-items:center;display:inline-flex;gap:.5rem}.fnd-lang-card-icon{font-size:1.25rem;line-height:1}.fnd-lang-card-name{color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-size:1.02rem;font-weight:800}.fnd-lang-card-tag{color:var(--fnd-accent-fg);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.fnd-lang-card-blurb{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.85rem;line-height:1.5}.fnd-lang-card-sample{align-self:stretch;background:#0b1020;background:var(--code-bg,#0b1020);border-radius:6px;color:#e4e4e7;color:var(--text-primary,#e4e4e7);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;overflow-x:auto;padding:.45rem .6rem;white-space:pre}.fnd-lang-card-state{color:#a1a1aa;color:var(--text-secondary,#a1a1aa);font-size:.78rem;font-weight:700;margin-top:.15rem}.fnd-lang-card-state-active{color:#4ade80;color:var(--success-text,#4ade80)}.fnd-lang-picker-compact{margin:0;padding:.8rem .85rem .85rem}.fnd-lang-picker-compact .fnd-lang-cards{gap:.6rem}.fnd-lang-picker-compact .fnd-lang-card{gap:.25rem;padding:.65rem .75rem}.fnd-lang-picker-compact .fnd-lang-card-name{font-size:.92rem}.fnd-lang-picker-compact .fnd-lang-card-tag{font-size:.68rem}.fnd-lang-picker-compact .fnd-lang-card-state{font-size:.72rem}@media (max-width:560px){.fnd-lang-cards{grid-template-columns:1fr}.fnd-dual-header{align-items:flex-start}}:root[data-theme=light] .fnd-lang-pills{background:#fff}:root[data-theme=light] .fnd-dual-challenge-solved{border-color:#04785773 #04785773 #04785773 #16a34a;border-left-color:var(--success-color,#16a34a)}:root[data-theme=light] .fnd-dual-solvednote{background:#16a34a14;border-color:#04785759}:root[data-theme=light] .fnd-lang-card-sample{color:#1f2328}:root{--sa-green:#00b509;--sa-green-hover:#009a07;--sa-green-soft:#00b5091f;--sa-green-edge:#00b50959;--sa-bg:#000;--sa-card:#111;--sa-card-hi:#1a1a1a;--sa-border:#2e2e2e;--sa-border-hi:#3d3d3d;--sa-text:#e4e4e7;--sa-text-dim:#a1a1aa;--sa-text-faint:#6b6b73;--sa-success:#10b981;--sa-warning:#f59e0b;--sa-error:#ef4444}*{box-sizing:border-box}html.cspp-standalone,html.cspp-standalone #root,html.cspp-standalone body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#000;background:var(--sa-bg);color:#e4e4e7;color:var(--sa-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0}html.cspp-standalone a{color:#00b509;color:var(--sa-green);text-decoration:none}html.cspp-standalone a:hover{text-decoration:none}.sa-prose a:hover{text-decoration:underline}.sa-card,.sa-card:active,.sa-card:focus,.sa-card:hover{text-decoration:none}.sa-screen{display:flex;flex-direction:column;height:100%;overflow:hidden}.sa-header{background:#111;background:var(--sa-card);border-bottom:1px solid #2e2e2e;border-bottom:1px solid var(--sa-border);flex-shrink:0;padding:env(safe-area-inset-top,0) 0 0;z-index:10}.sa-header-inner{gap:12px;min-height:56px;padding:14px 20px}.sa-back,.sa-header-inner{align-items:center;display:flex}.sa-back{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:22px;color:#00b509;color:var(--sa-green);cursor:pointer;font-size:28px;height:44px;justify-content:center;line-height:1;width:44px}.sa-back:active{background:#00b5091f;background:var(--sa-green-soft)}.sa-brand{color:#00b509;color:var(--sa-green);font-size:17px;font-weight:700;letter-spacing:-.01em}.sa-title{font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0}.sa-header-hero,.sa-title{color:#e4e4e7;color:var(--sa-text)}.sa-header-hero{background:radial-gradient(120% 140% at 0 0,#00b5092e 0,#00b50900 60%),linear-gradient(180deg,#0a0a0a,#000);border-bottom:1px solid #2e2e2e;border-bottom:1px solid var(--sa-border)}.sa-header-inner-hero{align-items:flex-start;flex-direction:column;gap:6px;min-height:0;padding:32px 24px 28px}.sa-header-inner-hero .sa-brand{color:#00b509;color:var(--sa-green);font-size:18px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sa-header-inner-hero .sa-brand-tag{color:#a1a1aa;color:var(--sa-text-dim);font-weight:500;letter-spacing:.01em;margin-left:6px;text-transform:none}.sa-hero-title{color:#e4e4e7;color:var(--sa-text);font-size:32px;font-weight:700;letter-spacing:-.02em;margin:4px 0 0}.sa-hero-sub{color:#a1a1aa;color:var(--sa-text-dim);font-size:16px;line-height:1.4;margin:6px 0 0;max-width:60ch}.sa-main{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-direction:column;gap:14px;margin:0 auto;max-width:760px;min-height:0;overflow-y:auto;padding:20px;width:100%}.sa-main-lesson{max-width:920px}.sa-main>*{flex-shrink:0}.sa-card{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:14px;color:inherit;display:block;min-height:64px;padding:18px 20px;text-decoration:none;transition:transform .06s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}.sa-card:active{transform:scale(.99)}.sa-card:hover{background:#1a1a1a;background:var(--sa-card-hi);border-color:#3d3d3d;border-color:var(--sa-border-hi)}.sa-card-eyebrow{color:#6b6b73;color:var(--sa-text-faint);font-size:12px;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.sa-card-title{color:#e4e4e7;color:var(--sa-text);font-size:17px;font-weight:600;letter-spacing:-.01em}.sa-card-sub{color:#a1a1aa;color:var(--sa-text-dim);font-size:14px;line-height:1.4;margin-top:4px}.sa-card-primary{background:#00b509;background:var(--sa-green);border-color:#00b509;border-color:var(--sa-green);color:#001a01}.sa-card-primary .sa-card-title{color:#001a01}.sa-card-primary .sa-card-sub{color:#001a01c7}.sa-card-primary .sa-card-eyebrow{color:#001a01a6}.sa-card-primary:hover{background:#009a07;background:var(--sa-green-hover);border-color:#009a07;border-color:var(--sa-green-hover)}.sa-card-resume{background:#f59e0b14;border-color:#f59e0b59}.sa-card-resume .sa-card-eyebrow{color:#f59e0b;color:var(--sa-warning)}.sa-card-hero{background:linear-gradient(135deg,#00b5091f,#0000 70%),#111;background:linear-gradient(135deg,var(--sa-green-soft) 0,#0000 70%),var(--sa-card);border:1px solid #00b50959;border-left:4px solid #00b509;border:1px solid var(--sa-green-edge);border-left:4px solid var(--sa-green);min-height:110px;padding:22px 22px 24px;position:relative}.sa-card-hero:hover{background:linear-gradient(135deg,#00b5092e,#0000 70%),#1a1a1a;background:linear-gradient(135deg,#00b5092e 0,#0000 70%),var(--sa-card-hi);border-color:#00b509;border-color:var(--sa-green)}.sa-card-hero .sa-card-eyebrow{color:#00b509;color:var(--sa-green);font-weight:700}.sa-card-title-hero{font-size:22px;letter-spacing:-.015em;margin-top:2px}.sa-card-cta{align-items:center;background:#00b509;background:var(--sa-green);border-radius:999px;color:#001a01;display:inline-flex;font-size:13px;font-weight:700;letter-spacing:.02em;padding:8px 14px;position:absolute;right:22px;top:22px;white-space:nowrap}.sa-card-hero-blue{background:linear-gradient(135deg,#38bdf81f,#0000 70%),#111;background:linear-gradient(135deg,#38bdf81f 0,#0000 70%),var(--sa-card);border:1px solid #38bdf859;border-left:4px solid #38bdf8}.sa-card-hero-blue:hover{background:linear-gradient(135deg,#38bdf833,#0000 70%),#1a1a1a;background:linear-gradient(135deg,#38bdf833 0,#0000 70%),var(--sa-card-hi);border-color:#38bdf8}.sa-card-hero-blue .sa-card-eyebrow{color:#38bdf8}.sa-card-hero-blue .sa-card-cta{background:#38bdf8;color:#00131e}.sa-card-row{display:flex;gap:12px}.sa-card-half{flex:1 1;min-width:0}@media (max-width:600px){.sa-card-row{flex-direction:column}}.sa-hero-top{align-items:center;display:flex;gap:12px;justify-content:space-between;width:100%}.sa-resume-pill{align-items:flex-end;background:#f59e0b1a;border:1px solid #f59e0b59;border-radius:12px;display:inline-flex;flex-direction:column;flex-shrink:0;padding:8px 14px;text-decoration:none;transition:background .12s ease,border-color .12s ease;white-space:nowrap}.sa-resume-pill:active{background:#f59e0b2e;border-color:#f59e0b8c}.sa-resume-pill-eyebrow{color:#f59e0b;color:var(--sa-warning);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sa-resume-pill-label{color:#e4e4e7;color:var(--sa-text);font-size:13px;font-weight:600;margin-top:1px}.sa-card-unlock{background:#00b5091f;background:var(--sa-green-soft);border-color:#00b50959;border-color:var(--sa-green-edge)}.sa-card-unlock .sa-card-eyebrow{color:#00b509;color:var(--sa-green)}.sa-card-external{-webkit-appearance:none;appearance:none;cursor:pointer;display:block;font:inherit;text-align:left;width:100%}.sa-lesson-upsell{margin-top:8px}.sa-card-success{background:#10b9811a;border-color:#10b98159}.sa-card-success .sa-card-eyebrow{color:#10b981;color:var(--sa-success)}.sa-card-quiet{background:#0000;border-color:#0000}.sa-card-quiet:hover{background:#111;background:var(--sa-card);border-color:#2e2e2e;border-color:var(--sa-border)}.sa-unit-card{align-items:center;display:flex;gap:16px}.sa-unit-card-num{align-items:center;background:#00b5091f;background:var(--sa-green-soft);border:1px solid #00b50959;border:1px solid var(--sa-green-edge);border-radius:14px;color:#00b509;color:var(--sa-green);display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:56px;justify-content:center;letter-spacing:-.01em;width:56px}.sa-unit-card-body{flex:1 1;min-width:0}.sa-paywall{padding:28px 20px 22px;text-align:center}.sa-paywall-price{color:#00b509;color:var(--sa-green);font-size:48px;font-weight:700;letter-spacing:-.02em;line-height:1}.sa-paywall-tag{color:#a1a1aa;color:var(--sa-text-dim);font-size:14px;margin-top:4px}.sa-paywall-list{list-style:none;margin:22px auto;max-width:380px;padding:0;text-align:left}.sa-paywall-list li{color:#e4e4e7;color:var(--sa-text);font-size:15px;padding:8px 0 8px 26px;position:relative}.sa-paywall-list li:before{color:#00b509;color:var(--sa-green);content:"✓";font-weight:700;left:0;position:absolute}.sa-paywall-fineprint{color:#6b6b73;color:var(--sa-text-faint);font-size:12px;line-height:1.5;margin:18px 0 0}.sa-confirm-line{color:#e4e4e7;color:var(--sa-text);font-size:15px;line-height:1.5;margin:22px auto 18px;max-width:380px}.sa-restore-msg{background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:10px;color:#f59e0b;color:var(--sa-warning);font-size:13px;line-height:1.4;margin:14px 0 0;padding:10px 14px;text-align:left}.sa-btn{-webkit-appearance:none;appearance:none;border:0;border-radius:12px;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;margin-top:10px;min-height:48px;padding:14px 20px;transition:opacity .1s ease,background .1s ease;width:100%}.sa-btn:disabled{cursor:default;opacity:.5}.sa-btn-primary{background:#00b509;background:var(--sa-green);color:#001a01}.sa-btn-primary:active:not(:disabled){background:#009a07;background:var(--sa-green-hover)}.sa-btn-quiet{background:#0000;border:1px solid #2e2e2e;border:1px solid var(--sa-border);color:#00b509;color:var(--sa-green)}.sa-btn-quiet:active:not(:disabled){background:#00b5091f;background:var(--sa-green-soft);border-color:#00b50959;border-color:var(--sa-green-edge)}.sa-challenge-block{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:14px;padding:16px 16px 20px}.sa-challenge-passed{color:#10b981;color:var(--sa-success);font-size:13px;font-weight:600;margin-top:8px}.sa-screen-playground{height:100vh;height:100dvh;overflow:hidden}.sa-main-playground{box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;gap:0;max-width:100%;min-height:0;overflow:hidden;padding:10px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));width:100%}@media (max-width:480px){.sa-main.sa-main-playground{padding:4px 0 max(8px,env(safe-area-inset-bottom))}.sa-main.sa-main-playground .ide-shell>.java-runner,.sa-main.sa-main-playground>.java-runner{border:0;border-radius:0;box-shadow:none}}.sa-main-playground .ide-shell>.java-runner,.sa-main-playground>.ide-shell{flex:1 1 auto;max-width:100%;min-height:0;width:100%}.sa-main-playground .ide-shell>.java-runner{display:flex;flex-direction:column}.sa-main-playground .java-runner-toolbar,.sa-main-playground .jr-file-tabs{flex-shrink:0}.sa-main-playground .java-runner-editor-wrap{display:flex;flex:1 1 auto;flex-direction:column;min-height:220px}@media (max-height:750px){.sa-main-playground .java-runner-editor-wrap{min-height:150px}.sa-main-playground .jr-console-column{min-height:158px}.sa-main-playground .java-runner-output{min-height:120px}}@media (max-width:640px){.sa-main-playground .java-runner-budget-hint{display:none}.sa-main-playground .ide-toolbar-right{margin-left:0}.sa-main-playground .java-runner-toolbar{row-gap:6px}}.sa-main-playground .java-runner-editor-wrap>.jce-wrap{flex:1 1 auto;min-height:0}.sa-main-playground .java-runner-output{display:flex;flex:1 1 auto;flex-direction:column;min-height:160px;min-width:0;overflow:hidden}.sa-main-playground .jr-console-column{display:flex;flex:1 1 auto;flex-direction:column;min-height:198px;min-width:0}.sa-main-playground .java-runner-tabs{flex:0 0 auto}.sa-main-playground .jr-terminal{flex:1 1 auto;min-height:0;min-width:0;overflow:auto}.sa-main-playground .jce-wrap{flex:1 1 auto;min-height:0}.sa-main-playground .jce-highlight,.sa-main-playground .jce-textarea,.sa-main-playground .jce-wrap-view{height:100%}.sa-splash{align-items:center;background:radial-gradient(80% 60% at 50% 0,#00b5092e 0,#00b50900 70%),linear-gradient(180deg,#0a0a0a,#000);display:flex;justify-content:center;padding:32px 20px}.sa-content-loading,.sa-splash{min-height:100vh;min-height:100dvh}.sa-content-loading{background:#000;background:var(--sa-bg,#000)}.sa-splash-card{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:22px;box-shadow:0 20px 60px #0009;max-width:460px;padding:36px 28px 28px;text-align:center;width:100%}.sa-splash-mark{align-items:center;background:#00b509;background:var(--sa-green);border-radius:22px;box-shadow:0 0 40px #00b50959;display:flex;height:88px;justify-content:center;margin:0 auto 18px;width:88px}.sa-splash-mark-text{color:#001a01;font-size:26px;font-weight:800;letter-spacing:-.02em}.sa-splash-title{color:#e4e4e7;color:var(--sa-text);font-size:28px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px}.sa-splash-sub{color:#a1a1aa;color:var(--sa-text-dim);font-size:16px;line-height:1.45;margin:0 0 22px}.sa-splash-features{list-style:none;margin:0 auto 22px;max-width:340px;padding:0;text-align:left}.sa-splash-features li{color:#e4e4e7;color:var(--sa-text);font-size:15px;line-height:1.4;padding:7px 0 7px 26px;position:relative}.sa-splash-features li:before{color:#00b509;color:var(--sa-green);content:"✓";font-weight:700;left:0;position:absolute;top:7px}.sa-splash-cta{margin-top:6px}.sa-splash-fineprint{color:#6b6b73;color:var(--sa-text-faint);font-size:12px;margin:14px 0 0}.sa-tut-overlay{align-items:center;animation:sa-tut-fade .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000000b8;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100}@keyframes sa-tut-fade{0%{opacity:0}to{opacity:1}}.sa-tut-card{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:18px;box-shadow:0 20px 60px #000000b3;max-width:460px;padding:26px 26px 22px;width:100%}.sa-tut-progress{display:flex;gap:6px;justify-content:center;margin-bottom:14px}.sa-tut-dot{background:#2e2e2e;background:var(--sa-border);border-radius:2px;height:4px;transition:background .2s ease;width:28px}.sa-tut-dot-active{background:#00b509;background:var(--sa-green)}.sa-tut-step{color:#00b509;color:var(--sa-green);font-size:12px;letter-spacing:.06em;margin-bottom:6px;text-align:center;text-transform:uppercase}.sa-tut-title{color:#e4e4e7;color:var(--sa-text);font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0 0 10px;text-align:center}.sa-tut-body{color:#a1a1aa;color:var(--sa-text-dim);font-size:15px;line-height:1.5;margin:0 0 20px;text-align:center}.sa-tut-body code{background:#1a1a1a;background:var(--sa-card-hi);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:5px;color:#e4e4e7;color:var(--sa-text);font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px;padding:1px 6px}.sa-tut-actions{display:flex;flex-direction:column;gap:0}.sa-prose{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:14px;color:#e4e4e7;color:var(--sa-text);font-size:16px;line-height:1.55;padding:22px 24px}.sa-prose p{margin:0 0 12px}.sa-prose p:last-child{margin-bottom:0}.sa-prose-fineprint{color:#6b6b73;color:var(--sa-text-faint);font-size:13px;margin-top:18px}.sa-lesson-nav{display:flex;gap:12px;margin-top:16px}.sa-lesson-nav-btn{background:#111;background:var(--sa-card);border:1px solid #2e2e2e;border:1px solid var(--sa-border);border-radius:12px;color:#e4e4e7;color:var(--sa-text);display:flex;flex:1 1;flex-direction:column;gap:4px;justify-content:center;min-height:64px;padding:14px 16px;text-decoration:none;transition:background .12s ease,border-color .12s ease}.sa-lesson-nav-btn:active{background:#1a1a1a;background:var(--sa-card-hi);border-color:#3d3d3d;border-color:var(--sa-border-hi)}.sa-lesson-nav-next{align-items:flex-end;text-align:right}.sa-lesson-nav-prev{align-items:flex-start;text-align:left}.sa-lesson-nav-disabled{cursor:default;opacity:.4;pointer-events:none}.sa-lesson-nav-eyebrow{color:#6b6b73;color:var(--sa-text-faint);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.sa-lesson-nav-label{color:#e4e4e7;color:var(--sa-text);font-size:15px;font-weight:600}.sa-feature-section{background:linear-gradient(180deg,#00b5090f,#0000 80%),#111;background:linear-gradient(180deg,var(--sa-feature-tint,#00b5090f) 0,#0000 80%),var(--sa-card);border:1px solid #2e2e2e;border-left:4px solid #00b509;border:1px solid var(--sa-border);border-left:4px solid var(--sa-feature-accent,var(--sa-green));border-radius:14px;margin-bottom:14px;padding:18px 22px;position:relative}.sa-feature-h2{color:#00b509;color:var(--sa-feature-accent,var(--sa-green));font-size:18px;font-weight:700;letter-spacing:.01em;margin:0 0 10px}.sa-feature-blurb{color:#a1a1aa;color:var(--sa-text-dim);font-size:15px;line-height:1.5;margin:0 0 10px}.sa-feature-blurb a{color:#00b509;color:var(--sa-feature-accent,var(--sa-green));font-weight:600;text-decoration:none}.sa-feature-blurb a:hover{text-decoration:underline}.sa-feature-list{color:#e4e4e7;color:var(--sa-text);font-size:15px;line-height:1.55;list-style:disc;margin:0;padding-left:20px}.sa-feature-list li{margin:6px 0}.sa-feature-list li::marker{color:#00b509;color:var(--sa-feature-accent,var(--sa-green))}.sa-feature-list strong{color:#e4e4e7;color:var(--sa-text)}.sa-feature-editor{--sa-feature-accent:#22c55e;--sa-feature-tint:#22c55e1a}.sa-feature-language{--sa-feature-accent:#38bdf8;--sa-feature-tint:#38bdf81a}.sa-feature-io{--sa-feature-accent:#a78bfa;--sa-feature-tint:#a78bfa1f}.sa-feature-runtime{--sa-feature-accent:#f59e0b;--sa-feature-tint:#f59e0b1a}.sa-feature-outscope{--sa-feature-accent:#ef4444;--sa-feature-tint:#ef444414}@media (max-width:900px){.sa-hero-title{font-size:28px}.sa-hero-sub{font-size:15px}.sa-main{padding:16px}}@media (max-width:480px){.sa-header-inner-hero{padding:24px 18px 22px}.sa-hero-title{font-size:24px;line-height:1.15}.sa-hero-sub{font-size:14px}.sa-main{padding:16px max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.sa-card{padding:16px 18px}.sa-card-title{font-size:16px}.sa-card-title-hero{font-size:18px}.sa-splash{padding:24px 16px}.sa-splash-card{padding:28px 22px}.sa-splash-title{font-size:24px}.sa-splash-sub{font-size:15px}.sa-resume-pill{padding:6px 10px}.sa-resume-pill-eyebrow{font-size:10px}}