@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/999e639cd9d85971-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/9af6411484c7e20a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/e6b5cfd5a74e1cae-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/6aacc40b7795b725-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/67110d8fe39c5e84-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/046b90749014f852-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/3703c28dcda155b1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fira Code Fallback;src:local("Arial");ascent-override:73.56%;descent-override:23.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_13fb82{font-family:Fira Code,Fira Code Fallback;font-style:normal}.__variable_13fb82{--font-code:"Fira Code","Fira Code Fallback"}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Black.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{color-scheme:light;--bg-top:#fef3e2;--bg-bottom:#dbeafe;--panel:#ffffff;--panel-border:#cbd5e1;--ink:#111827;--muted:#475569;--accent:#748DF4;--accent-soft:#e8ecfe;--accent-strong:#0f172a;--level1-bg:#dcfce7;--level1-border:#22c55e;--level2-bg:#f3e8ff;--level2-border:#B95DCD;--step-ok-bg:#dcfce7;--step-ok-border:#22c55e;--step-err-bg:#fee2e2;--step-err-border:#ef4444;--success:#16a34a;--warning:#f59e0b;--random-bg:linear-gradient(135deg,#748DF4,#B95DCD);--shadow:0 12px 30px rgba(15,23,42,0.12)}*,:after,:before{box-sizing:border-box}body{margin:0;min-height:100svh;font-family:Montserrat,sans-serif;color:var(--ink);background:linear-gradient(135deg,var(--bg-top),var(--bg-bottom))}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(15,23,42,.08) 1.2px,transparent 0);background-size:28px 28px;opacity:.45;z-index:-1}h1,h2,h3{margin:0;font-family:Montserrat,sans-serif;font-weight:900}ol,p,ul{margin:0}.app{min-height:100svh;padding:clamp(14px,2vw,24px);display:grid;grid-gap:14px;gap:14px}.panel{background:var(--panel);border:2px solid var(--panel-border);border-radius:18px;box-shadow:var(--shadow);padding:14px}.puzzle-header{display:grid;grid-gap:10px;gap:10px}.puzzle-head-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.puzzle-head-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.rh-logo{height:28px;width:auto}.puzzle-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.puzzle-count{letter-spacing:.08em;font-size:.78rem;color:var(--muted)}.level-badge,.puzzle-count{text-transform:uppercase;font-weight:800}.level-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.72rem;letter-spacing:.06em}.level-badge.level-1{background:var(--level1-bg);border:2px solid var(--level1-border);color:#166534}.level-badge.level-2{background:var(--level2-bg);border:2px solid var(--level2-border);color:#7e22ce}.puzzle-header h1{font-size:clamp(1.15rem,1.2vw + .95rem,1.8rem)}.puzzle-description{color:var(--muted);font-size:.9rem;margin-top:2px}.puzzle-nav{display:flex;gap:8px;flex-wrap:wrap}.puzzle-instructions.v3-lines{margin:0;padding-left:20px;display:grid;grid-gap:8px;gap:8px;color:var(--accent-strong);line-height:1.5}.puzzle-instructions.v3-lines li{font-size:.95rem}.instruction-token{display:inline-block;margin:0 2px;padding:1px 8px;border-radius:999px;font-weight:800;font-size:.86rem;border:2px solid #cbd5e1;color:#0f172a;background:#f8fafc}.token-blue{border-color:#3b82f6;background:#dbeafe}.token-green{border-color:#22c55e;background:#dcfce7}.token-yellow{border-color:#f59e0b;background:#fef3c7}.token-red{border-color:#ef4444;background:#fee2e2}.token-orange{border-color:#fb923c;background:#ffedd5}.token-pink{border-color:#ec4899;background:#fce7f3}.token-black{border-color:#334155;background:#e2e8f0}.step-visuals{display:grid;grid-gap:8px;gap:8px}.step-legend{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);font-weight:700}.legend-chip{width:22px;height:22px;border-radius:8px;border:1px solid rgba(15,23,42,.18);display:grid;place-items:center;font-size:.72rem;font-weight:900;color:#0f172a}.step-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}.step-card{flex:0 0 auto;min-width:260px;background:#ffffff;border-radius:14px;border:2px solid #dbeafe;padding:10px;display:grid;grid-gap:8px;gap:8px}.step-card.active{border-color:var(--step-ok-border);background:var(--step-ok-bg)}.step-card.error{border-color:var(--step-err-border);background:var(--step-err-bg)}.step-card.cond-if{border-left:3px solid #748df4}.step-card.cond-else_if{border-left:3px solid #f59e0b}.step-card.cond-else{border-left:3px solid #94a3b8}.step-card.branch-skipped{opacity:.45;border-style:dashed}.step-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hint-review-page{min-height:100svh;padding:clamp(14px,2vw,24px)}.hint-review-shell{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.hint-review-modebar{margin-bottom:14px;display:grid;grid-gap:10px;gap:10px}.hint-review-mode-tabs{display:flex;flex-wrap:wrap;gap:8px}.hint-review-mode-panel{padding:0}.hint-review-inbox-shell{grid-template-columns:minmax(280px,340px) minmax(0,1fr);grid-template-areas:"runs samples" "runs detail";align-items:start}.hint-review-inbox-runs{grid-area:runs;position:-webkit-sticky;position:sticky;top:14px;max-height:calc(100svh - 28px);overflow:auto}.hint-review-inbox-shell>.hint-review-results{grid-area:samples}.hint-review-inbox-shell>.hint-review-detail{grid-area:detail}.hint-review-controls{position:-webkit-sticky;position:sticky;top:14px;display:grid;grid-gap:12px;gap:12px}.hint-review-muted{color:var(--muted);font-size:.9rem;line-height:1.35}.hint-review-error{color:#b91c1c;font-weight:700}.hint-review-grid2,.hint-review-grid3{display:grid;grid-gap:10px;gap:10px}.hint-review-grid2{grid-template-columns:1fr 1fr}.hint-review-grid3{grid-template-columns:1fr}.hint-review-controls label,.hint-review-form label{display:grid;grid-gap:6px;gap:6px;font-size:.8rem;font-weight:700;color:var(--muted)}.hint-review-controls input,.hint-review-controls select,.hint-review-form input,.hint-review-form select,.hint-review-form textarea{width:100%;border:2px solid #dbe3f0;border-radius:10px;padding:8px 10px;font:inherit;color:var(--ink);background:#fff}.hint-review-check{align-self:end}.hint-review-check input{width:auto;margin-right:8px}.hint-review-buttons{display:flex;flex-wrap:wrap;gap:8px}.hint-review-progress{background:#f8fafc;border:1px solid #dbeafe;border-radius:12px;padding:10px;display:grid;grid-gap:6px;gap:6px}.hint-review-case-picker,.hint-review-detail,.hint-review-results{display:grid;grid-gap:10px;gap:10px}.hint-review-case-picker-head{display:flex;justify-content:space-between;align-items:center}.hint-review-case-list{max-height:300px;overflow:auto;display:grid;grid-gap:8px;gap:8px}.hint-review-case-item{grid-template-columns:auto 1fr;grid-gap:8px;gap:8px;align-items:start}.hint-review-case-item,.hint-review-run-item{display:grid;border:1px solid #dbeafe;border-radius:12px;padding:8px;background:#fff}.hint-review-run-item{text-align:left;width:100%;cursor:pointer;grid-gap:4px;gap:4px}.hint-review-run-item:hover{background:#f8fafc}.hint-review-run-item.active{background:#eef2ff;border-color:#93c5fd}.hint-review-case-item input{margin-top:3px}.hint-review-case-title{font-weight:800;font-size:.85rem;color:var(--ink);overflow-wrap:anywhere}.hint-review-case-meta{color:var(--muted);font-size:.76rem}.hint-review-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.hint-review-tags span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 6px;background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca}.hint-review-table-wrap{overflow:auto;border:1px solid #dbeafe;border-radius:12px}.hint-review-table{width:100%;border-collapse:collapse;font-size:.82rem}.hint-review-table td,.hint-review-table th{text-align:left;padding:8px 10px;border-bottom:1px solid #e5e7eb;vertical-align:top}.hint-review-table th{position:-webkit-sticky;position:sticky;top:0;background:#f8fafc;z-index:1}.hint-review-table tbody tr{cursor:pointer}.hint-review-table tbody tr:hover{background:#f8fafc}.hint-review-table tbody tr.active{background:#eef2ff}.hint-review-detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-gap:12px;gap:12px}.hint-review-section{border:1px solid #dbeafe;border-radius:12px;padding:10px;display:grid;grid-gap:8px;gap:8px;margin-bottom:10px}.hint-review-hintblock h4,.hint-review-section h3{margin:0;font-weight:800}.hint-review-detail-title{font-size:clamp(1rem,.9vw + .8rem,1.3rem);line-height:1.15;overflow-wrap:anywhere}.hint-review-detail-subtitle{font-size:.82rem;color:var(--muted);font-weight:700;overflow-wrap:anywhere}.hint-review-section pre{margin:0;white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:10px;font-size:.78rem;line-height:1.35}.hint-review-hintblock{border:1px solid #e2e8f0;border-radius:10px;padding:8px;display:grid;grid-gap:4px;gap:4px}.hint-review-hintblock-final{border-color:#bfdbfe;background:#eff6ff}.hint-review-hintblock p{line-height:1.4}.hint-review-form{display:grid;grid-gap:8px;gap:8px}.hint-review-check-inline{display:flex;gap:8px;align-items:center;font-size:.82rem;color:var(--muted);font-weight:700}.hint-review-check-inline input{width:auto}.hint-review-inline-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:.74rem;color:var(--muted)}.hint-review-inline-stats span{border:1px solid #dbeafe;background:#f8fafc;border-radius:999px;padding:2px 8px;font-weight:700}.hint-review-mini-flag{font-size:.68rem;color:#b45309;font-weight:800}.hint-review-rubric-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.hint-review-rubric-grid div{display:flex;justify-content:space-between;gap:8px;border:1px solid #e2e8f0;border-radius:8px;padding:4px 6px;font-size:.74rem}.hint-review-rubric-grid span{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.hint-review-form-label{font-size:.8rem;font-weight:700;color:var(--muted);margin-bottom:6px}.hint-review-tags-checks{gap:8px}.hint-review-tag-check{display:inline-flex;align-items:center;gap:6px;border:1px solid #dbeafe;border-radius:999px;padding:4px 8px;background:#fff;font-size:.76rem;color:var(--ink)}.hint-review-tag-check input{width:auto;margin:0}.hint-review-disagreement{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:10px;padding:8px;font-size:.85rem}.hint-review-explainer{background:#f8fafc}.hint-review-list{margin:0;padding-left:18px;display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:.82rem}@media (max-width:980px){.hint-review-inbox-shell,.hint-review-shell{grid-template-columns:1fr}.hint-review-inbox-shell{grid-template-areas:"runs" "samples" "detail"}.hint-review-controls{position:static}.hint-review-inbox-runs{position:static;max-height:none;overflow:visible}.hint-review-detail-grid,.hint-review-grid2{grid-template-columns:1fr}}.step-number{font-size:.78rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.step-instruction{font-weight:700;color:var(--accent-strong);font-size:.88rem;line-height:1.2}.step-graphic-cond{gap:10px}.cond-meta{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:8px}.cond-meta-type{font-size:.78rem;font-weight:900;letter-spacing:.02em;flex-shrink:0;font-family:var(--font-code),"Fira Code",monospace}.cond-meta-if{background:#eef2ff}.cond-meta-if .cond-meta-type{color:#4f5fbd}.cond-meta-else_if{background:#fef9ee}.cond-meta-else_if .cond-meta-type{color:#b45309}.cond-meta-else{background:#f1f5f9}.cond-meta-else .cond-meta-type{color:#64748b}.cond-meta-expr{font-family:var(--font-code),"Fira Code",monospace;font-size:.82rem;font-weight:600;color:#334155}.step-graphic{min-height:60px}.flow-row,.step-graphic{display:grid;align-items:center}.flow-row{grid-template-columns:1fr auto 1fr;grid-gap:8px;gap:8px}.flow-token{min-height:42px;border-radius:10px;border:2px solid rgba(15,23,42,.12);display:grid;grid-template-columns:auto 1fr;grid-gap:6px;gap:6px;align-items:center;padding:6px 8px}.flow-glyph{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;background:rgba(255,255,255,.7);border:1px solid rgba(15,23,42,.16);font-size:.72rem;font-weight:900}.flow-label{font-size:.75rem;font-weight:800;color:#0f172a;line-height:1.15}.flow-arrow{font-weight:900;color:#475569;font-size:.95rem}.flow-literal{font-size:.76rem;font-weight:700;color:#334155;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:4px 8px;line-height:1.2}.condition-action-visual{display:grid;grid-gap:6px;gap:6px;align-items:center}.action-none{font-size:.82rem;font-weight:600;color:var(--muted);font-style:italic}.step-hint{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-code),"Fira Code",monospace;font-size:.78rem;color:var(--muted);background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px}.step-hint code,.step-hint-placeholder{-moz-user-select:none;user-select:none;-webkit-user-select:none}.step-hint-placeholder{font-family:Montserrat,sans-serif;font-style:italic;font-size:.8rem;color:#94a3b8}.workspace{grid-template-columns:minmax(0,1.35fr) minmax(300px,.95fr)}.left-column,.right-column,.workspace{display:grid;grid-gap:14px;gap:14px;min-height:0}.left-column,.right-column{align-content:start}.editor-panel{display:grid;grid-gap:10px;gap:10px}.editor-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.helper-text{color:var(--muted);font-size:.9rem}.lock-note{margin:0;padding:8px 10px;border-radius:10px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;font-size:.88rem;font-weight:700}.editor-frame{background:#f8fafc;border-radius:14px;border:2px solid #bfdbfe;--editor-min-h:220px;overflow:hidden}.editor-frame,.editor-frame .cm-editor,.editor-frame .cm-scroller{min-height:var(--editor-min-h)}.cm-gutters{background:#f8fafc;border-right:1px solid #cbd5e1}.cm-lineNumbers .cm-gutterElement{color:#94a3b8;font-size:.82rem}.cm-running-line{background:var(--step-ok-bg)!important;box-shadow:inset 4px 0 0 var(--step-ok-border)}.cm-error-line{background:var(--step-err-bg)!important;box-shadow:inset 4px 0 0 var(--step-err-border)}.editor-shell{height:100%}.timeline-controls{display:flex;gap:8px;flex-wrap:wrap}.btn{border:none;border-radius:11px;padding:9px 13px;font-size:.92rem;font-weight:800;font-family:Montserrat,sans-serif;cursor:pointer;transition:transform .1s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);color:#ffffff}.btn.ghost{background:#ffffff;color:var(--accent-strong);border:2px solid #94a3b8}.btn-dev-solution{font-size:.78rem!important;padding:5px 10px!important;border-color:#f59e0b!important;color:#92400e!important;background:#fef3c7!important}.btn.random{background:var(--random-bg);color:#ffffff;border:none}.btn:focus-visible{outline:3px solid rgba(116,141,244,.35);outline-offset:2px}.status-panel{display:grid;grid-gap:8px;gap:8px;border-color:#bfdbfe}.status-main{font-weight:800;color:var(--accent-strong)}.status-desc{color:var(--muted)}.status-success{color:var(--success);font-weight:700}.status-warning{color:#b45309;font-weight:700;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:8px 10px}.status-errors{display:grid;grid-gap:6px;gap:6px;color:#991b1b;font-weight:700}.state-pane{display:grid;grid-gap:10px;gap:10px}.state-pane-header{display:flex;justify-content:space-between;align-items:center}.btn-clear{border:none;background:none;font-family:Montserrat,sans-serif;font-size:.76rem;font-weight:700;color:var(--muted);cursor:pointer;padding:3px 8px;border-radius:6px;transition:background .15s,color .15s}.btn-clear:hover{background:var(--step-err-bg);color:#991b1b}.state-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.state-row{display:grid;grid-template-columns:minmax(80px,1fr) auto minmax(110px,1fr);grid-gap:8px;gap:8px;align-items:center;border:2px solid #e2e8f0;border-radius:12px;padding:8px 10px}.state-row.changed{border-color:var(--step-ok-border);background:var(--step-ok-bg)}.state-row.error-focus{border-color:var(--step-err-border);background:var(--step-err-bg)}.state-kind,.state-name{font-weight:800}.state-kind{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.state-value{font-family:var(--font-code),"Fira Code",monospace;font-size:.83rem;color:var(--accent-strong);justify-self:end}.empty-text{color:var(--muted);font-size:.9rem}.story-panel{border-color:var(--level2-border)}.story-panel h3{color:#7e22ce}.story-panel p{color:var(--muted);line-height:1.5}.completion-banner{text-align:center;background:linear-gradient(135deg,#dcfce7,#e8ecfe);border-color:var(--step-ok-border);padding:28px 20px}.completion-banner h2{font-size:1.5rem;color:var(--success);margin-bottom:8px}.completion-banner p{color:var(--muted);line-height:1.6;max-width:520px;margin:0 auto}.confidence-high{color:#991b1b}.confidence-medium{color:#92400e}.feedback-nudge{color:#475569;font-size:.85rem;font-weight:600;font-style:italic;margin-top:4px}.feedback-code-hint{margin-top:6px;display:grid;grid-gap:6px;gap:6px}.feedback-code-hint pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-code),"Fira Code",monospace;font-size:.82rem;color:var(--accent-strong);background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px}.step-hint-emphasis{animation:hint-pulse 1.2s ease-in-out infinite;border-color:#f59e0b;background:#fffbeb}@keyframes hint-pulse{0%,to{border-color:#f59e0b;box-shadow:0 0 0 0 rgba(245,158,11,.3)}50%{border-color:#d97706;box-shadow:0 0 0 4px rgba(245,158,11,.15)}}.hint-section{display:grid;grid-gap:8px;gap:8px;margin-top:6px}.btn.hint-btn{background:var(--random-bg);color:#ffffff;border:none}.hint-response{background:#f0fdf4;border:1px solid #86efac;border-radius:10px;padding:10px 12px}.hint-response p{color:#166534;font-size:.88rem;font-weight:600;line-height:1.45}@media (max-width:1024px){.workspace{grid-template-columns:1fr}}@media (max-width:640px){.app{padding:12px}.btn{flex:1 1 auto}.editor-top{flex-direction:column}.timeline-controls{width:100%}.state-row{grid-template-columns:1fr}.state-value{justify-self:start}}