.code-challenge-shell{--cc-panel:var(--color-surface);--cc-bg:var(--color-background);--cc-border:var(--color-border);--cc-ink:var(--color-on-surface);--cc-muted:var(--color-muted);--cc-primary:var(--color-primary);width:100%;background:var(--cc-bg)}.code-challenge-hero{border-bottom:1px solid var(--cc-border);background:var(--cc-bg);overflow:hidden}.code-challenge-hero-inner{max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 2.75rem}.code-challenge-hero-grid{display:grid;grid-template-columns:minmax(0,1fr)13rem;gap:2rem;align-items:center;margin-top:2rem}.code-challenge-hero-copy{max-width:48rem}.code-challenge-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.code-challenge-badge{padding:.35rem .65rem;border:1px solid color-mix(in oklch,var(--cc-primary) 25%,var(--cc-border));border-radius:999px;background:color-mix(in oklch,var(--cc-primary) 8%,transparent);color:var(--cc-primary);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.code-challenge-count{color:var(--cc-muted);font-size:.82rem;font-weight:600}.code-challenge-hero h1{margin:1rem 0 0;font-size:clamp(2rem,4vw,3.5rem);line-height:1.04;letter-spacing:-.035em;color:var(--cc-ink)}.code-challenge-hero-copy>p{max-width:45rem;margin:1rem 0 0;color:var(--cc-muted);font-size:1.05rem;line-height:1.75}.code-challenge-meta{display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;margin-top:1.2rem;color:var(--cc-muted);font-size:.8rem;font-weight:650}.code-challenge-meta span+span{padding-inline-start:1.1rem;border-inline-start:1px solid var(--cc-border)}.code-challenge-hero-mark{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--cc-border);border-radius:2rem;background:linear-gradient(145deg,color-mix(in oklch,var(--cc-primary) 13%,var(--cc-panel)),var(--cc-panel));box-shadow:0 1.5rem 3rem color-mix(in oklch,var(--cc-primary) 8%,transparent);overflow:hidden}.code-challenge-hero-mark::before,.code-challenge-hero-mark::after{content:"";position:absolute;border:1px solid color-mix(in oklch,var(--cc-primary) 22%,transparent);border-radius:999px}.code-challenge-hero-mark::before{width:11rem;height:11rem}.code-challenge-hero-mark::after{width:7rem;height:7rem}.code-challenge-mark-bracket{position:relative;z-index:2;font:800 2.5rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--cc-primary);letter-spacing:-.15em}.code-challenge-mark-dot{position:absolute;width:.55rem;height:.55rem;border-radius:50%;background:var(--cc-primary);top:25%;right:27%;box-shadow:0 0 0 .35rem color-mix(in oklch,var(--cc-primary) 15%,transparent)}.code-challenge-mark-line{position:absolute;width:5rem;height:1px;background:color-mix(in oklch,var(--cc-primary) 35%,transparent);bottom:29%;left:21%;transform:rotate(-28deg)}.code-challenge-main{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 4rem}.code-challenge-layout{display:grid;grid-template-columns:minmax(15rem,19rem)minmax(0,1fr);gap:1rem;align-items:start}.code-challenge-brief,.code-challenge-workspace{border:1px solid var(--cc-border);border-radius:1rem;background:var(--cc-panel);box-shadow:0 .4rem 1.5rem rgb(0 0 0/5%)}.code-challenge-brief{position:sticky;top:1rem;overflow:hidden}.code-challenge-panel-heading,.code-challenge-workspace-head,.code-challenge-results-head,.code-challenge-preview-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.code-challenge-panel-heading{padding:1rem 1rem .9rem;border-bottom:1px solid var(--cc-border)}.code-challenge-panel-eyebrow{display:block;margin-bottom:.25rem;color:var(--cc-primary);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.code-challenge-panel-heading h2,.code-challenge-results-head h2{margin:0;color:var(--cc-ink);font-size:1rem;font-weight:800}.code-challenge-progress{font:800 .8rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--cc-primary)}.code-challenge-instructions{display:grid;gap:.85rem;margin:0;padding:1rem;list-style:none}.code-challenge-instructions li{display:grid;grid-template-columns:1.65rem 1fr;gap:.65rem;align-items:start}.code-challenge-instructions li>span{display:grid;place-items:center;width:1.65rem;height:1.65rem;border:1px solid color-mix(in oklch,var(--cc-primary) 25%,var(--cc-border));border-radius:.55rem;background:color-mix(in oklch,var(--cc-primary) 7%,transparent);color:var(--cc-primary);font-size:.7rem;font-weight:800}.code-challenge-instructions p{margin:.1rem 0 0;color:var(--cc-ink);font-size:.82rem;line-height:1.55}.code-challenge-hints{margin:0 1rem 1rem;border-top:1px solid var(--cc-border);padding-top:.8rem}.code-challenge-hint-toggle,.code-challenge-next-hint{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:0;background:0 0;color:var(--cc-primary);padding:.35rem 0;font:700 .8rem inherit;cursor:pointer}.code-challenge-hint-body{padding:.6rem .7rem;border:1px solid color-mix(in oklch,var(--cc-primary) 18%,var(--cc-border));border-radius:.65rem;background:color-mix(in oklch,var(--cc-primary) 5%,transparent)}.code-challenge-hint-body p{margin:0;color:var(--cc-ink);font-size:.78rem;line-height:1.55}.code-challenge-next-hint{margin-top:.5rem;font-size:.72rem}.code-challenge-brief-note{display:flex;gap:.65rem;margin:0;padding:.9rem 1rem 1rem;border-top:1px solid var(--cc-border);background:color-mix(in oklch,var(--cc-bg) 55%,transparent)}.code-challenge-note-icon{display:grid;place-items:center;flex:none;width:1.35rem;height:1.35rem;border:1px solid var(--cc-border);border-radius:50%;font:800 .7rem ui-monospace;color:var(--cc-muted)}.code-challenge-brief-note p{margin:0;color:var(--cc-muted);font-size:.7rem;line-height:1.5}.code-challenge-workspace{overflow:hidden}.code-challenge-workspace-head{padding:1rem 1.1rem;border-bottom:1px solid var(--cc-border)}.code-challenge-workspace-title h2{margin:0;color:var(--cc-ink);font-size:1.05rem;font-weight:800}.code-challenge-actions{display:flex;gap:.5rem}.code-challenge-action{min-height:2.35rem;padding:.5rem .8rem;border-radius:.6rem;border:1px solid var(--cc-border);font-size:.76rem;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.code-challenge-action:hover{transform:translateY(-1px)}.code-challenge-action:focus-visible,.code-challenge-file:focus-visible,.code-challenge-hint-toggle:focus-visible,.code-challenge-next-hint:focus-visible,.code-challenge-output-head button:focus-visible{outline:2px solid var(--cc-primary);outline-offset:2px}.code-challenge-action-secondary{background:var(--cc-bg);color:var(--cc-ink)}.code-challenge-action-primary{border-color:var(--cc-primary);background:var(--cc-primary);color:var(--color-on-primary);box-shadow:0 .3rem .8rem color-mix(in oklch,var(--cc-primary) 20%,transparent)}.code-challenge-action:disabled{opacity:.55;cursor:wait;transform:none}.code-challenge-status{display:flex;align-items:center;gap:.55rem;min-height:2.2rem;padding:.45rem .9rem;border-bottom:1px solid var(--cc-border);background:color-mix(in oklch,var(--cc-bg) 65%,transparent);color:var(--cc-muted);font-size:.72rem;font-weight:700}.code-challenge-status-pulse{width:.45rem;height:.45rem;border-radius:50%;background:var(--cc-muted)}.code-challenge-status-pulse[data-state=running]{background:var(--cc-primary);box-shadow:0 0 0 .25rem color-mix(in oklch,var(--cc-primary) 13%,transparent);animation:cc-pulse 1s ease-in-out infinite}.code-challenge-status-pulse[data-state=passed]{background:var(--color-success)}.code-challenge-status-pulse[data-state=failed],.code-challenge-status-pulse[data-state=error]{background:var(--color-danger)}.code-challenge-duration{margin-inline-start:auto;font:600 .68rem ui-monospace;color:var(--cc-muted)}.code-challenge-preview{margin:1rem;border:1px solid var(--cc-border);border-radius:.75rem;overflow:hidden;background:var(--cc-bg)}.code-challenge-preview-head{padding:.65rem .8rem;border-bottom:1px solid var(--cc-border)}.code-challenge-preview-head strong{font-size:.78rem;color:var(--cc-ink)}.code-challenge-live-dot{display:flex;align-items:center;gap:.35rem;color:var(--cc-muted);font-size:.65rem;font-weight:700}.code-challenge-live-dot span{width:.4rem;height:.4rem;border-radius:50%;background:var(--color-success)}.code-challenge-preview-mount{position:relative;min-height:12rem;max-height:22rem;background:#fff;overflow:auto}.code-challenge-preview-mount iframe{display:block;width:100%;height:100%;min-height:12rem;border:0;background:#fff}.code-challenge-preview-empty{display:grid;place-items:center;min-height:12rem;color:var(--cc-muted);font-size:.75rem}.code-challenge-editor-shell{margin:1rem;border:1px solid var(--cc-border);border-radius:.75rem;overflow:hidden;background:var(--color-code);color:var(--color-on-code)}.code-challenge-filebar{display:flex;align-items:center;min-height:2.65rem;border-bottom:1px solid var(--cc-border);background:color-mix(in oklab,var(--color-code) 92%,var(--color-on-code));overflow:auto}.code-challenge-file{display:flex;align-items:center;gap:.45rem;min-height:2.65rem;padding:0 .8rem;border:0;border-inline-end:1px solid var(--cc-border);background:0 0;color:color-mix(in oklch,var(--color-on-code) 68%,transparent);font:600 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;cursor:pointer}.code-challenge-file.is-active{color:var(--color-on-code);background:color-mix(in oklch,var(--color-on-code) 7%,transparent);box-shadow:inset 0 -2px 0 var(--cc-primary)}.code-challenge-file-dot{width:.4rem;height:.4rem;border-radius:50%;background:var(--cc-primary)}.code-challenge-editor-position{margin-inline-start:auto;padding:0 .75rem;color:color-mix(in oklch,var(--color-on-code) 55%,transparent);font:500 .65rem ui-monospace;white-space:nowrap}.code-challenge-editor{height:26rem;min-height:16rem}.code-challenge-editor .cm-editor{height:100%}.code-challenge-editor .cm-scroller{overflow:auto}.code-challenge-editor .cm-focused{outline:0}.code-challenge-editor-footer{display:flex;align-items:center;gap:.4rem;min-height:2rem;padding:0 .7rem;border-top:1px solid color-mix(in oklch,var(--color-on-code) 12%,transparent);color:color-mix(in oklch,var(--color-on-code) 60%,transparent);font-size:.63rem}.code-challenge-editor-footer strong{color:var(--color-on-code);font-weight:650}.code-challenge-footer-spacer{flex:1}.code-challenge-editor-footer kbd{padding:.1rem .25rem;border:1px solid color-mix(in oklch,var(--color-on-code) 18%,transparent);border-radius:.25rem;font:600 .58rem ui-monospace}.code-challenge-results{margin:1rem;border:1px solid var(--cc-border);border-radius:.75rem;overflow:hidden}.code-challenge-results-head{padding:.8rem .9rem;border-bottom:1px solid var(--cc-border)}.code-challenge-score{font:800 .85rem ui-monospace;color:var(--cc-primary)}.code-challenge-test-list{display:grid}.code-challenge-test{display:grid;grid-template-columns:1.8rem minmax(0,1fr)auto;gap:.65rem;align-items:center;padding:.75rem .9rem;border-bottom:1px solid var(--cc-border);transition:background-color .15s ease}.code-challenge-test:last-child{border-bottom:0}.code-challenge-test-icon{display:grid;place-items:center;width:1.6rem;height:1.6rem;border:1px solid var(--cc-border);border-radius:.5rem;color:var(--cc-muted);font:800 .68rem ui-monospace}.code-challenge-test-copy h3{margin:0;color:var(--cc-ink);font-size:.78rem;font-weight:750}.code-challenge-test-copy p{margin:.18rem 0 0;color:var(--cc-muted);font-size:.68rem;line-height:1.45}.code-challenge-test-state{color:var(--cc-muted);font-size:.65rem;font-weight:750;white-space:nowrap}.code-challenge-test[data-state=passed]{background:color-mix(in oklch,var(--color-success) 6%,transparent)}.code-challenge-test[data-state=passed] .code-challenge-test-icon{border-color:color-mix(in oklch,var(--color-success) 35%,var(--cc-border));color:var(--color-success)}.code-challenge-test[data-state=passed] .code-challenge-test-state{color:var(--color-success)}.code-challenge-test[data-state=failed]{background:color-mix(in oklch,var(--color-danger) 6%,transparent)}.code-challenge-test[data-state=failed] .code-challenge-test-icon{border-color:color-mix(in oklch,var(--color-danger) 35%,var(--cc-border));color:var(--color-danger)}.code-challenge-test[data-state=failed] .code-challenge-test-state{color:var(--color-danger)}.code-challenge-output{border-top:1px solid var(--cc-border);background:#111;color:#eee}.code-challenge-output-head{display:flex;justify-content:space-between;align-items:center;padding:.55rem .8rem;border-bottom:1px solid #333;font:700 .68rem ui-monospace}.code-challenge-output-head button{border:0;background:0 0;color:#aaa;font:600 .65rem inherit;cursor:pointer}.code-challenge-output pre{margin:0;max-height:10rem;overflow:auto;padding:.75rem;font:500 .7rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}@keyframes cc-pulse{50%{opacity:.45;transform:scale(.8)}}@media(max-width:980px){.code-challenge-hero-grid{grid-template-columns:minmax(0,1fr)9rem}.code-challenge-layout{grid-template-columns:1fr}.code-challenge-brief{position:static}.code-challenge-instructions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.code-challenge-hero-inner,.code-challenge-main{padding-inline:.8rem}.code-challenge-hero-grid{grid-template-columns:1fr}.code-challenge-hero-mark{display:none}.code-challenge-workspace-head{align-items:flex-start;flex-direction:column}.code-challenge-actions{width:100%}.code-challenge-action{flex:1}.code-challenge-instructions{grid-template-columns:1fr}.code-challenge-editor{height:23rem}.code-challenge-test{grid-template-columns:1.8rem minmax(0,1fr)}.code-challenge-test-state{grid-column:2}.code-challenge-preview-mount,.code-challenge-preview-mount iframe{min-height:10rem}.code-challenge-meta span+span{padding-inline-start:.7rem}.code-challenge-editor-footer{font-size:.58rem}}@media(prefers-reduced-motion:reduce){.code-challenge-action,.code-challenge-status-pulse{transition:none;animation:none}}