.ide{--topbar-h:62px;height:100dvh;background:var(--bg,#07070e);color:var(--fg,#ececf6);overflow:hidden}.ide a{color:inherit;text-decoration:none}.ide button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.ide code{font-family:var(--font-jetbrains);background:var(--chip);padding:1px 6px;border-radius:6px;font-size:.9em;direction:ltr;display:inline-block}.ide .console-body,.ide .example .mono,.ide .ins-body pre code,.ide .prose pre code,.ide .stdin-area,.ide .test-diff pre,.ide code{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}.ide .ex-top{height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:0 22px;background:var(--panel);border-block-end:1px solid var(--line);position:relative;z-index:30}.ide .ex-top .back{display:inline-flex;align-items:center;gap:8px;color:var(--mut);font-weight:600;font-size:.92rem;padding:8px 12px;border-radius:10px;transition:background .2s,color .2s}.ide .ex-top .back:hover{background:var(--chip);color:var(--fg)}.ide .ex-top .back svg{width:18px;height:18px}.ide .ex-top .divider{width:1px;height:26px;background:var(--line)}.ide .ex-crumb{min-width:0}.ide .ex-crumb .c1{font-size:.76rem;color:var(--faint);font-weight:600}.ide .ex-crumb .c1,.ide .ex-crumb .c2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ide .ex-crumb .c2{font-size:1rem;font-weight:800}.ide .ex-progress{display:flex;align-items:center;gap:11px;margin-inline-start:auto;cursor:pointer;padding:6px 10px;border-radius:10px;transition:background .2s}.ide .ex-progress:hover{background:var(--chip)}.ide .ex-progress:hover .ptext{color:var(--fg)}.ide .ex-progress:focus-visible{outline:2px solid color-mix(in oklch,var(--acc-1) 55%,transparent);outline-offset:1px}.ide .ex-progress .ptext{font-size:.82rem;color:var(--mut);font-weight:600;white-space:nowrap}.ide .ex-progress .ptrack{width:150px;height:7px;border-radius:100px;background:var(--chip);overflow:hidden}.ide .ex-progress .ptrack i{display:block;height:100%;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));border-radius:100px;transition:width .6s var(--ease)}.ide .ptrack-native{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:150px;height:7px;border:0;border-radius:100px;background:var(--chip);overflow:hidden;direction:ltr}.ide .ptrack-native::-webkit-progress-bar{background:var(--chip);border-radius:100px}.ide .ptrack-native::-webkit-progress-value{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));border-radius:100px}.ide .ptrack-native::-moz-progress-bar{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));border-radius:100px}.ide .xp-chip{direction:ltr;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:100px;background:var(--chip);font-weight:800;font-size:.88rem}.ide .xp-chip svg{width:16px;height:16px;color:var(--gold)}.ide .placement-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:100px;font-weight:800;font-size:.86rem;white-space:nowrap;color:#fff;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));box-shadow:0 6px 18px -8px color-mix(in oklch,var(--acc-1) 75%,transparent);transition:filter .2s,transform .1s}.ide .placement-chip:hover{filter:brightness(1.07);transform:translateY(-1px)}.ide .theme-toggle{width:42px;height:42px;border-radius:12px;background:var(--chip);display:grid;place-items:center;transition:transform .2s,background .2s}.ide .mini-theme-toggle{margin-inline-start:auto}.ide .theme-toggle:hover{transform:translateY(-1px)}.ide .theme-toggle svg{width:20px;height:20px;stroke:var(--mut)}.ide .theme-menu{position:relative}.ide .theme-menu-pop{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:70;min-width:212px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);animation:tmPop .14s var(--ease,ease)}@keyframes tmPop{0%{opacity:0;transform:translateY(-6px)}}.ide .theme-menu-head{font-size:.72rem;font-weight:700;color:var(--faint);padding:7px 10px 5px}.ide .theme-menu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 11px;border-radius:9px;font-size:.88rem;font-weight:600;color:var(--fg);background:none;border:none;cursor:pointer;text-align:start;transition:background .15s}.ide .theme-menu-item:hover{background:var(--chip)}.ide .theme-menu-item.on{color:var(--acc-1)}.ide .theme-menu-item svg{stroke:var(--acc-1);flex:0 0 auto}.ide .theme-menu-item .tmi-label{white-space:nowrap}.ide .ex-lang{display:inline-flex;align-items:center;gap:9px}.ide .ex-lang .exl-label{font-size:.8rem;color:var(--mut);font-weight:600;white-space:nowrap}.ide .exl-seg{display:inline-flex;background:var(--chip);border-radius:100px;padding:3px;gap:2px}.ide .exl-seg button{padding:5px 11px;border-radius:100px;font-size:.82rem;font-weight:700;color:var(--mut);white-space:nowrap;transition:background .2s,color .2s}.ide .exl-seg button:hover{color:var(--fg)}.ide .exl-seg button.on{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12}.ide .workspace{display:flex;height:calc(100dvh - var(--topbar-h))}.ide .instructions{flex:0 0 420px;width:420px;height:100%;overflow-y:auto;overflow-x:hidden;background:var(--panel);border-inline-end:1px solid var(--line);padding:28px 28px 60px}.ide .ex-steps{display:flex;gap:7px;margin-bottom:24px}.ide .ex-steps .st{flex:1;height:5px;border-radius:100px;background:var(--chip);transition:background .3s}.ide .ex-steps .st.done{background:var(--syn-str)}.ide .ex-steps .st.current{background:linear-gradient(115deg,var(--acc-1),var(--acc-2))}.ide .ex-steps .st.locked{opacity:.5}.ide .ins-tag{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--acc-1);margin-bottom:10px}.ide .ins-tag .num{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12;padding:2px 9px;border-radius:100px}.ide .ins-title{font-size:1.5rem;font-weight:800;line-height:1.35;margin-bottom:14px}.ide .ins-body{color:var(--mut);font-size:1rem}.ide .ins-body p{margin-bottom:14px}.ide .ins-body strong{color:var(--fg);font-weight:700}.ide .ins-h{display:flex;gap:0;font-size:.82rem;font-weight:800;letter-spacing:.03em;margin:26px 0 12px}.ide .info-tip,.ide .ins-h{align-items:center;color:var(--faint)}.ide .info-tip{position:relative;display:inline-flex;justify-content:center;cursor:help;margin-inline-start:6px;vertical-align:middle;font-style:normal}.ide .info-tip svg{width:16px;height:16px;display:block;transition:color .15s}.ide .info-tip:focus-visible,.ide .info-tip:hover{color:var(--acc-1);outline:none}.ide .info-bubble{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(4px);width:-moz-max-content;width:max-content;max-width:260px;direction:rtl;text-align:center;background:var(--fg);color:var(--bg);font-style:normal;font-size:.8rem;font-weight:600;line-height:1.6;padding:8px 12px;border-radius:9px;box-shadow:var(--shadow-pop);opacity:0;visibility:hidden;pointer-events:none;z-index:70;transition:opacity .18s,transform .18s}.ide .info-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top:5px solid var(--fg)}.ide .info-tip:focus-visible .info-bubble,.ide .info-tip:hover .info-bubble{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.ide .ins-h .info-bubble{left:auto;right:0;transform:translateY(4px)}.ide .ins-h .info-tip.is-open .info-bubble,.ide .ins-h .info-tip:focus-visible .info-bubble,.ide .ins-h .info-tip:hover .info-bubble{transform:translateY(0)}.ide .ins-h .info-bubble:after{left:auto;right:6px;transform:none}.ide .tip-wrap{position:relative;display:inline-flex}.ide .tip-wrap:focus-within .tip-bubble,.ide .tip-wrap:hover .tip-bubble{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.ide .example{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;direction:ltr}.ide .example .mono{font-family:var(--font-jetbrains);font-size:.88rem;color:var(--code-fg);white-space:pre-wrap;line-height:1.8}.ide .hints{display:flex;flex-direction:column;gap:10px}.ide .hint-item{border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;background:var(--panel-2);display:flex;gap:11px;align-items:flex-start}.ide .hint-item .hn{width:24px;height:24px;border-radius:8px;background:color-mix(in oklch,var(--acc-1) 20%,transparent);color:var(--acc-1);display:grid;place-items:center;font-size:.8rem;font-weight:800;flex:0 0 24px}.ide .hint-item p{font-size:.92rem;color:var(--mut);unicode-bidi:plaintext}.ide .hint-item code{color:var(--syn-fn)}.ide .reveal-hint{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:100px;border:1.5px dashed var(--line);color:var(--mut);font-weight:700;font-size:.9rem;transition:border-color .2s,color .2s;align-self:flex-start}.ide .reveal-hint:hover{border-color:var(--acc-1);color:var(--fg)}.ide .reveal-hint svg{width:16px;height:16px}.ide .reveal-hint .cost{margin-inline-start:6px;font-size:.76rem;font-weight:800;color:var(--gold)}.ide .reveal-hint .rh-cost{font-size:.8rem;font-weight:800;color:var(--gold)}.ide .hint-complete{color:var(--faint);font-size:.86rem}.ide .done-banner{display:flex;align-items:center;gap:10px;margin:0 0 16px;flex-wrap:wrap}.ide .done-banner .chip{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:800;padding:6px 13px;border-radius:100px;background:color-mix(in oklch,var(--syn-str) 16%,transparent);color:var(--syn-str)}.ide .done-banner .chip svg{width:15px;height:15px}.ide .done-banner .redo{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--mut);border:1px solid var(--line);border-radius:100px;padding:6px 13px;transition:color .2s,border-color .2s}.ide .done-banner .redo:hover{color:var(--fg);border-color:var(--acc-1)}.ide .done-banner .redo svg{width:14px;height:14px}.ide .nav-row{display:flex;gap:10px;margin-top:30px}.ide .nav-row .btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:10px;font-weight:700;font-size:.9rem;transition:color .2s,background .2s,border-color .2s}.ide .nav-row .btn-ghost{color:var(--mut);border:1px solid var(--line)}.ide .nav-row .btn-ghost:hover{color:var(--fg);background:var(--chip)}.ide .nav-row .btn:disabled{opacity:.45;cursor:default}.ide .nav-row .tip-wrap{flex:1}.ide .nav-row .tip-wrap .btn{flex:1;width:100%}.ide .editor-col{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.ide .task-peek{display:none}.ide .ed-pane{flex:1 1 60%;min-height:0;display:flex;flex-direction:column;padding:18px 18px 0}.ide .editor{flex:1;min-height:0;display:flex;flex-direction:row;border-radius:var(--r-lg);overflow:hidden;background:var(--code-bg);border:1px solid var(--line);box-shadow:var(--shadow);direction:ltr}.ide .editor-main{flex:1;min-width:0;display:flex;flex-direction:column}.ide .explorer{flex:0 0 184px;width:184px;display:flex;flex-direction:column;background:color-mix(in oklch,var(--code-bg) 86%,#808080 6%);border-inline-end:1px solid var(--line);direction:ltr}.ide .explorer-head{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);border-block-end:1px solid var(--line)}.ide .explorer-actions{display:flex;gap:2px}.ide .explorer-actions button{width:22px;height:22px;border-radius:6px;color:var(--mut);font-size:.95rem;line-height:1;display:grid;place-items:center}.ide .explorer-actions button:hover{background:var(--chip);color:var(--fg)}.ide .explorer-body{flex:1;overflow:auto;padding:6px 0 14px}.ide .tree-row{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-family:var(--font-jetbrains);font-size:.8rem;color:var(--mut);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ide .tree-row:hover{background:color-mix(in oklch,var(--fg) 6%,transparent)}.ide .tree-row.file.active{background:color-mix(in oklch,var(--acc-2) 16%,transparent);color:var(--fg)}.ide .tree-row.readonly .tree-name{opacity:.72}.ide .tree-row .chev{font-size:.7rem;color:var(--faint);transition:transform .15s var(--ease);transform:rotate(-90deg);width:10px}.ide .tree-row .chev.open{transform:rotate(0)}.ide .tree-row.dir{color:var(--fg);font-weight:600}.ide .tree-name{overflow:hidden;text-overflow:ellipsis}.ide .tab-icon,.ide .tree-icon{font-size:.62rem;font-weight:800;min-width:18px;height:16px;padding:0 3px;border-radius:4px;display:inline-grid;place-items:center;background:var(--chip);color:var(--mut)}.ide .tone-py{color:#4b8bbe}.ide .tone-js{color:#e6b800}.ide .tone-ts{color:#3178c6}.ide .tone-html{color:#e44d26}.ide .tone-css{color:#2da8e0}.ide .tone-sql{color:#c678dd}.ide .tone-json{color:#88aa99}.ide .tone-php{color:#8993be}.ide .tone-img{color:var(--syn-str)}.ide .tone-txt{color:var(--faint)}.ide .tree-badge-entry{color:var(--syn-str);font-size:.6rem}.ide .tree-lock{font-size:.62rem;opacity:.6}.ide .tree-dirty{width:6px;height:6px;border-radius:50%;background:var(--gold)}.ide .tree-acts{margin-inline-start:auto;display:none;gap:1px}.ide .tree-row:hover .tree-acts{display:flex}.ide .tree-acts button{width:20px;height:20px;border-radius:5px;color:var(--faint);font-size:.72rem;display:grid;place-items:center}.ide .tree-acts button:hover{background:var(--chip);color:var(--fg)}.ide .file-tabs{flex:1;min-width:0;display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.ide .file-tabs::-webkit-scrollbar{display:none}.ide .file-tab{display:flex;align-items:center;gap:6px;padding:6px 10px;font-family:var(--font-jetbrains);font-size:.78rem;color:var(--faint);cursor:pointer;border-inline-end:1px solid var(--line);white-space:nowrap}.ide .file-tab:hover{color:var(--mut);background:color-mix(in oklch,var(--fg) 5%,transparent)}.ide .file-tab.active{color:var(--fg);background:var(--code-bg);box-shadow:inset 0 -2px 0 var(--acc-2)}.ide .file-tab .tab-entry{color:var(--syn-str);font-size:.62rem}.ide .file-tab .tab-dirty{width:7px;height:7px;border-radius:50%;background:var(--gold)}.ide .file-tab .tab-close{width:16px;height:16px;border-radius:4px;font-size:.92rem;line-height:1;color:var(--faint);display:grid;place-items:center}.ide .file-tab .tab-close:hover{background:var(--chip);color:var(--fg)}.ide .bin-preview{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;background:var(--code-bg)}.ide .bin-preview img{max-width:90%;max-height:78%;-o-object-fit:contain;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#fff}.ide .bin-preview .bin-icon{font-size:3rem;color:var(--faint)}.ide .bin-preview .bin-meta{font-family:var(--font-jetbrains);font-size:.78rem;color:var(--faint)}.ide .runner-note{font-size:.74rem;color:var(--faint);margin-inline-start:4px}.ide .ed-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:color-mix(in oklch,var(--code-bg) 80%,#808080 8%);border-block-end:1px solid var(--line);flex:0 0 auto}.ide .ed-dots{display:flex;gap:7px}.ide .ed-dots i{width:12px;height:12px;border-radius:50%}.ide .ed-dots i:first-child{background:#ff5f57}.ide .ed-dots i:nth-child(2){background:#febc2e}.ide .ed-dots i:nth-child(3){background:#28c840}.ide .ed-file{font-family:var(--font-jetbrains);font-size:.82rem;color:var(--mut);display:flex;align-items:center;gap:7px}.ide .ed-file .ld{width:8px;height:8px;border-radius:2px;background:var(--syn-fn)}.ide .ed-lang{margin-inline-start:auto;font-family:var(--font-jetbrains);font-size:.76rem;color:var(--faint)}.ide .code-scroll{flex:1;min-height:0;overflow:hidden;direction:ltr}.ide .code-editor-host,.ide .code-scroll .cm-editor{height:100%}.ide .ed-foot{display:flex;align-items:center;gap:10px;padding:12px 15px;background:color-mix(in oklch,var(--code-bg) 80%,#808080 8%);border-block-start:1px solid var(--line);flex:0 0 auto;direction:rtl}.ide .ed-foot .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;font-weight:700;font-size:.9rem;transition:transform .15s var(--ease),box-shadow .25s,background .2s,opacity .2s;white-space:nowrap}.ide .ed-foot .btn svg{width:16px;height:16px}.ide .shortcut{opacity:.7;font-size:.78rem;font-family:var(--font-jetbrains)}.ide .btn-run{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12;box-shadow:0 10px 26px -12px var(--acc-glow)}.ide .btn-run:not(:disabled){animation:runGlow 2.2s var(--ease) infinite}.ide .btn-run:hover{transform:translateY(-1px);animation-play-state:paused;box-shadow:0 12px 32px -10px var(--acc-glow),0 0 22px 2px color-mix(in oklch,var(--acc-1) 45%,transparent)}.ide .btn-run:disabled{opacity:.6;cursor:default;transform:none;animation:none}@keyframes runGlow{0%,to{box-shadow:0 10px 26px -12px var(--acc-glow),0 0 0 0 transparent}50%{box-shadow:0 12px 30px -10px var(--acc-glow),0 0 20px 2px color-mix(in oklch,var(--acc-1) 42%,transparent)}}.ide .ed-foot .btn-ghost{color:var(--mut);border:1px solid var(--line)}.ide .ed-foot .btn-ghost:hover{color:var(--fg);background:var(--chip)}.ide .ed-status{margin-inline-end:auto;font-family:var(--font-jetbrains);font-size:.8rem;color:var(--faint);direction:ltr;display:flex;align-items:center;gap:7px}.ide .ed-status .sd{width:8px;height:8px;border-radius:50%;background:var(--faint)}.ide .ed-status.run .sd{background:var(--gold);animation:blink 1s infinite}.ide .ed-status.ok .sd{background:var(--syn-str)}.ide .ed-status.err .sd{background:var(--err)}.ide .out-pane{flex:0 0 40%;min-height:0;display:flex;gap:14px;padding:14px 18px 18px}.ide .console,.ide .preview,.ide .tests{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}.ide .console{flex:1.1;direction:ltr}.ide .tests{flex:1}.ide .preview{flex:1.1;overflow:hidden}.ide .preview-frame{border:0;background:#fff}.ide .preview-stage{flex:1;min-height:0;display:flex;justify-content:center;align-items:flex-start;overflow:auto}.ide .preview-stage.vp-full{align-items:stretch;background:#fff}.ide .preview-stage.vp-full .preview-frame{width:100%;height:100%}.ide .preview-stage:not(.vp-full){padding:16px;background:repeating-conic-gradient(color-mix(in oklch,var(--line) 55%,transparent) 0 25%,transparent 0 50%) 0 0 /16px 16px,var(--panel-2)}.ide .preview-scaler{flex:0 0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 18px 44px -22px rgba(0,0,0,.55);background:#fff}.ide .preview-scaler .preview-frame{display:block}.ide .vp-bar{display:flex;align-items:center;gap:5px;padding:7px 12px;flex:0 0 auto;flex-wrap:wrap;direction:rtl;border-block-end:1px solid var(--line);background:color-mix(in oklch,var(--panel) 82%,#808080 7%)}.ide .vp-bar button{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;font-size:.76rem;font-weight:700;color:var(--mut);border:1px solid transparent;transition:color .15s,background .15s,border-color .15s}.ide .vp-bar button svg{width:15px;height:15px}.ide .vp-bar button:hover{color:var(--fg);background:var(--chip)}.ide .vp-bar button.on{color:var(--acc-1);background:color-mix(in oklch,var(--acc-1) 14%,transparent);border-color:color-mix(in oklch,var(--acc-1) 36%,transparent)}.ide .vp-bar .vp-rotate{margin-inline-start:auto}.ide .vp-bar button:disabled{opacity:.35;cursor:default}.ide .vp-bar button:disabled:hover{color:var(--mut);background:transparent}.ide .vp-bar .vp-zoom{display:inline-flex;align-items:center;gap:2px;padding-inline-start:6px;margin-inline-start:2px;border-inline-start:1px solid var(--line)}.ide .vp-bar .vp-zoom button{padding:5px 8px}.ide .vp-bar .vp-zoom .vp-fit{min-width:48px;justify-content:center;font-size:.76rem;font-variant-numeric:tabular-nums;color:var(--fg)}.ide .vp-bar .vp-zoom .vp-fit:hover{color:var(--acc-1)}.ide .editor-col[data-layout=tabs] .ed-pane{flex:1 1 auto}.ide .editor-col[data-layout=tabs] .out-pane{flex:0 0 auto;max-height:30vh}.ide .preview-embed{height:100%;display:flex;flex-direction:column;background:var(--panel);direction:rtl}.ide .preview-embed .preview-stage.vp-full{background:#fff}.ide .ed-view{display:inline-flex;gap:2px;flex:0 0 auto;padding:2px;border-radius:9px;background:color-mix(in oklch,var(--code-bg) 60%,#808080 10%);direction:rtl}.ide .ed-view button{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:7px;font-size:.76rem;font-weight:700;color:var(--mut);transition:color .15s,background .15s}.ide .ed-view button svg{width:14px;height:14px}.ide .ed-view button.on{color:var(--fg);background:var(--code-bg);box-shadow:0 1px 5px -2px rgba(0,0,0,.5)}.ide .ed-view button:hover:not(.on){color:var(--fg)}.ide .target-card{margin:6px 0 20px}.ide .ins-h.target-h{gap:7px;margin-top:6px}.ide .target-img{width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain;display:block;border-radius:var(--r-md);border:1px solid var(--line);background:#fff;padding:8px}.ide .target-cap{margin-top:9px;font-size:.85rem;line-height:1.75;color:var(--mut);unicode-bidi:plaintext}.ide.pg .pg-brand{display:flex;flex-direction:column;line-height:1.25;margin-inline-end:auto}.ide.pg .pg-title{font-size:1rem;font-weight:800;color:var(--fg)}.ide.pg .pg-sub{font-size:.76rem;color:var(--faint)}.ide.pg .pg-file{font-family:var(--font-jetbrains);font-size:.82rem;color:var(--mut)}.ide.pg .pg-lang{position:relative;flex:0 0 auto}.ide.pg .pg-lang-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:10px;background:var(--chip);color:var(--fg);font-weight:700;font-size:.9rem;transition:background .2s;white-space:nowrap}.ide.pg .pg-lang-btn:hover{background:color-mix(in oklch,var(--fg) 10%,transparent)}.ide.pg .pg-lang-btn .exl-label{color:var(--mut);font-size:.8rem;font-weight:600}.ide.pg .pg-lang-btn b{color:var(--acc-1)}.ide.pg .pg-lang-cur,.ide.pg .pg-opt{display:inline-flex;align-items:center;gap:8px;direction:ltr}.ide.pg .pg-lang-chev{color:var(--faint);transition:transform .18s var(--ease)}.ide.pg .pg-lang-chev.open{transform:rotate(180deg)}.ide.pg .pg-lang-menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:50;min-width:190px;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-pop);animation:pgMenuIn .14s var(--ease)}@keyframes pgMenuIn{0%{opacity:0;transform:translateY(-6px)}}.ide.pg .pg-lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;direction:ltr;padding:9px 12px;border-radius:9px;font-weight:700;font-size:.9rem;color:var(--mut);text-align:start;transition:background .15s,color .15s}.ide.pg .pg-lang-menu button:hover{background:var(--chip);color:var(--fg)}.ide.pg .pg-lang-menu button.on{color:var(--acc-1);background:color-mix(in oklch,var(--acc-1) 12%,transparent)}.ide.pg .pg-lang-menu button>svg{color:var(--acc-1)}.ide.pg .editor-col[data-mode=web] .ed-pane{flex:1 1 46%}.ide.pg .editor-col[data-mode=web] .out-pane{flex:1 1 54%}@media (max-width:640px){.ide.pg .pg-sub{display:none}.ide.pg .pg-brand{margin-inline-end:auto}.ide.pg .mobile-tabs{grid-template-columns:repeat(2,1fr)}.ide.pg .pg-lang-btn .exl-label{display:none}.ide.pg .pg-lang-btn{padding:8px 11px}}.ide .ard-canvas{flex:1.5;overflow:hidden}.ide .ard-stage-wrap{position:relative;flex:1;overflow:auto;background:radial-gradient(circle at 1px 1px,var(--line) 1px,transparent 0) 0 0 /22px 22px,var(--panel)}.ide .ard-stage{position:relative;min-width:100%;min-height:340px;padding:0;z-index:1}.ide .ard-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.ide .ard-stage wokwi-potentiometer,.ide .ard-stage wokwi-pushbutton{cursor:pointer}.ide .pane-head{display:flex;align-items:center;gap:9px;padding:12px 16px;border-block-end:1px solid var(--line);flex:0 0 auto;font-size:.82rem;font-weight:700;color:var(--mut)}.ide .pane-head .live{width:8px;height:8px;border-radius:50%;background:var(--syn-str);box-shadow:0 0 8px var(--syn-str)}.ide .pane-head .cnt{margin-inline-start:auto;font-family:var(--font-jetbrains);font-size:.78rem;color:var(--faint)}.ide .console-body{flex:1;overflow:auto;padding:14px 18px;font-family:var(--font-jetbrains);font-size:.86rem;white-space:pre-wrap;color:var(--code-fg)}.ide .console-body .muted{color:var(--faint)}.ide .console-body .ok{color:var(--syn-str)}.ide .console-body .err{color:var(--err)}.ide .console-body .dim{color:var(--mut)}.ide .tests-body{flex:1;overflow:auto;padding:12px 16px}.ide .test-row{display:flex;flex-direction:column;gap:8px;padding:9px 0;font-size:.9rem;color:var(--mut)}.ide .test-row:not(:last-child){border-bottom:1px solid var(--line-2)}.ide .test-head{display:flex;align-items:flex-start;gap:10px}.ide .test-head span{unicode-bidi:plaintext}.ide .test-row .box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;flex:0 0 20px;margin-top:1px;transition:all .3s}.ide .test-row .box svg{width:12px;height:12px;opacity:0;transition:opacity .25s}.ide .test-row.pass{color:var(--fg)}.ide .test-row.pass .box{background:var(--syn-str);border-color:transparent}.ide .test-row.pass .box svg{opacity:1;stroke:#07120c}.ide .test-row.fail .box{border-color:var(--err);background:color-mix(in oklch,var(--err) 12%,transparent)}.ide .test-row.fail .box svg{opacity:1;stroke:var(--err)}.ide .test-diff{margin-inline-start:30px;display:flex;flex-direction:column;gap:6px;font-size:.8rem}.ide .td-row{display:grid;grid-template-columns:56px 1fr;gap:8px;align-items:center}.ide .td-k{color:var(--faint);font-family:inherit;font-size:.72rem;text-align:start}.ide .td-row pre{margin:0;padding:7px 10px;border-radius:8px;background:var(--code-bg);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;color:var(--code-fg);max-height:140px;overflow:auto}.ide .td-row.got pre{border-color:color-mix(in oklch,var(--err) 45%,var(--line))}.ide .test-diff mark.dh{background:color-mix(in oklch,var(--err) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}.ide .test-diff mark.dh.gap{display:inline-block;width:2px;padding:0;background:var(--err);vertical-align:text-bottom}.ide .test-diff .ws{opacity:.5}.ide .test-lock{display:inline-flex;align-items:center;gap:4px;margin-inline-start:auto;flex:0 0 auto;padding:2px 8px;border-radius:100px;border:1px solid var(--line);color:var(--faint);font-size:.68rem;font-weight:700}.ide .test-lock svg{width:11px;height:11px}.ide .test-note{margin:0;margin-inline-start:30px;font-size:.8rem;color:var(--err)}.ide .tests-nudge{margin:0 0 10px;padding:7px 11px;border-radius:10px;border:1px dashed var(--line);background:color-mix(in oklch,var(--gold) 8%,transparent);color:var(--fg);font-size:.78rem;font-weight:600}.ide .stdin-box{display:flex;flex-direction:column;gap:6px;padding:10px 16px;border-block-end:1px solid var(--line);flex:0 0 auto;background:color-mix(in oklch,var(--code-bg) 70%,transparent)}.ide .stdin-label{font-size:.76rem;font-weight:700;color:var(--mut);direction:rtl}.ide .stdin-area{width:100%;min-height:56px;max-height:120px;resize:vertical;border-radius:8px;border:1px solid var(--line);background:var(--code-bg);color:var(--code-fg);padding:8px 10px;font-family:var(--font-jetbrains);font-size:.84rem}.ide .stdin-area:focus{outline:none;border-color:var(--acc-2)}.ide .ed-foot .btn-ghost.active{color:var(--fg);background:var(--chip);border-color:var(--acc-2)}.ide .celebrate{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;background:rgba(7,7,14,.6);backdrop-filter:blur(6px)}.ide .celebrate.show{display:flex}.ide .cele-card{position:relative;width:min(420px,90vw);text-align:center;padding:38px 34px 30px;background:var(--panel);border:1px solid var(--line);border-radius:26px;box-shadow:0 40px 90px -30px rgba(0,0,0,.7);animation:celePop .5s var(--ease)}@keyframes celePop{0%{transform:scale(.85) translateY(20px);opacity:0}}.ide .cele-seal{width:84px;height:84px;border-radius:50%;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));display:grid;place-items:center;margin:0 auto 18px;box-shadow:0 16px 40px -14px var(--acc-glow);animation:sealPop .6s var(--ease) .15s both}@keyframes sealPop{0%{transform:scale(0) rotate(-30deg)}60%{transform:scale(1.12) rotate(6deg)}}.ide .cele-seal svg{width:44px;height:44px;stroke:#0a0a12;stroke-width:3}.ide .cele-card h2{font-size:1.7rem;font-weight:800;margin-bottom:6px}.ide .cele-card h2.cele-title{font-size:1.35rem}.ide .cele-card p{color:var(--mut);font-size:1rem;margin-bottom:18px}.ide .cele-xp{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:1.05rem;padding:9px 20px;border-radius:100px;background:color-mix(in oklch,var(--gold) 16%,transparent);color:var(--gold);margin-bottom:12px}.ide .cele-xp svg{width:20px;height:20px}.ide .cele-stars{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.ide .cele-stars svg{width:30px;height:30px;fill:var(--gold)}.ide .rating-stars{display:flex;gap:6px;justify-content:center;margin-bottom:22px;direction:ltr}.ide .rating-stars button{background:none;border:none;padding:4px;cursor:pointer;line-height:0;border-radius:8px;transition:transform .12s var(--ease)}.ide .rating-stars button:hover{transform:scale(1.15)}.ide .rating-stars button svg{width:38px;height:38px;fill:color-mix(in oklch,var(--mut) 35%,transparent);transition:fill .12s var(--ease)}.ide .rating-stars button.on svg{fill:var(--gold)}.ide .rating-error{color:#ef4444;font-size:.88rem;margin:-8px 0 16px}.ide .cele-actions{display:flex;gap:10px}.ide .cele-actions .btn{flex:1;padding:13px;font-size:.96rem;border-radius:12px;font-weight:700}.ide .confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:26px}.ide .confetti i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;opacity:0;animation:fall 1.6s linear forwards}.ide .confetti i:nth-child(5n+1){background:#8b5cf6}.ide .confetti i:nth-child(5n+2){background:#22d3ee}.ide .confetti i:nth-child(5n+3){background:#f5b301}.ide .confetti i:nth-child(5n+4){background:#7ce8b0}.ide .confetti i:nth-child(5n+5){background:#ff8585}.ide .confetti .c1{inset-inline-start:6%;animation-delay:.02s;animation-duration:1.28s}.ide .confetti .c2{inset-inline-start:14%;animation-delay:.18s;animation-duration:1.62s}.ide .confetti .c3{inset-inline-start:23%;animation-delay:.08s;animation-duration:1.44s}.ide .confetti .c4{inset-inline-start:31%;animation-delay:.26s;animation-duration:1.76s}.ide .confetti .c5{inset-inline-start:39%;animation-delay:.12s;animation-duration:1.36s}.ide .confetti .c6{inset-inline-start:48%;animation-delay:.32s;animation-duration:1.84s}.ide .confetti .c7{inset-inline-start:57%;animation-delay:.05s;animation-duration:1.52s}.ide .confetti .c8{inset-inline-start:65%;animation-delay:.22s;animation-duration:1.68s}.ide .confetti .c9{inset-inline-start:73%;animation-delay:.14s;animation-duration:1.46s}.ide .confetti .c10{inset-inline-start:82%;animation-delay:.3s;animation-duration:1.9s}.ide .confetti .c11{inset-inline-start:90%;animation-delay:.1s;animation-duration:1.58s}.ide .confetti .c12{inset-inline-start:96%;animation-delay:.24s;animation-duration:1.72s}@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(440px) rotate(540deg);opacity:0}}.ide .toast{position:fixed;inset-block-end:26px;inset-inline-start:50%;transform:translate(50%,140%);background:var(--panel-3);color:var(--fg);border:1px solid var(--line);padding:12px 20px;border-radius:100px;font-weight:700;font-size:.9rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:9px;z-index:100;transition:transform .4s var(--ease)}.ide .toast svg{width:17px;height:17px;stroke:var(--syn-str)}.ide .toast.show{transform:translate(50%)}.ide .gate{display:grid;place-items:center;height:calc(100dvh - var(--topbar-h));padding:24px;text-align:center}.ide .gate .box{max-width:460px}.ide .gate h2{font-size:1.6rem;font-weight:800;margin:16px 0 8px}.ide .gate p{color:var(--mut);margin-bottom:22px}.ide .gate .btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:100px;font-weight:800;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12}.ide .gate .lock{width:64px;height:64px;border-radius:20px;background:var(--chip);display:grid;place-items:center;margin:0 auto}.ide .gate .lock svg{width:30px;height:30px;stroke:var(--mut)}.ide .gate .gate-actions{display:flex;flex-direction:column;gap:10px;max-width:300px;margin:0 auto}.ide .gate .gate-actions .btn{width:100%;justify-content:center}.ide .gate .gate-btn-alt{background:var(--chip);color:var(--fg)}.ide .gate .gate-btn-alt:hover{background:color-mix(in oklch,var(--acc-1) 18%,var(--chip))}.ide .gate .gate-hint{margin:14px 0 0;font-size:.85rem;color:var(--faint)}.ide .article-scroll{overflow-y:auto;overflow-x:hidden;height:calc(100dvh - var(--topbar-h))}.ide .article{max-width:760px;margin:0 auto;padding:40px 24px 80px}.ide .article h1{font-size:1.7rem;font-weight:800;margin-bottom:18px}.ide .article .prose{color:var(--mut);font-size:1.02rem;line-height:1.95}.ide .article-actions{margin-top:36px}.ide .article-next{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:100px;font-weight:800}.ide .buybar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:11px 15px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.ide .article-scroll>.buybar{position:sticky;top:12px;z-index:6;width:min(760px,calc(100% - 48px));margin:16px auto 0;box-shadow:0 6px 20px -10px rgba(0,0,0,.4)}.ide .buybar-lbl{font-size:.85rem;font-weight:600;color:var(--mut)}.ide .buybar-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.buybar-buy,.buybar-pro{display:inline-flex;align-items:center;padding:8px 15px;border-radius:100px;font-size:.82rem;font-weight:800;white-space:nowrap;transition:transform .15s ease,filter .15s ease,background .2s,border-color .2s}.buybar-buy{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12}.buybar-buy:hover{transform:translateY(-1px);filter:brightness(1.05)}.buybar-pro{border:1px solid var(--line,rgba(255,255,255,.16));color:var(--fg,inherit);font-weight:700}.ide .buybar-pro:hover{border-color:var(--acc-1)}.buybar-or{font-size:.78rem;font-weight:600;color:var(--faint,#8a8a99)}.buybar-close{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;color:var(--faint,#8a8a99);flex:0 0 auto;transition:background .2s,color .2s}.ide .buybar-close:hover{background:var(--chip);color:var(--fg)}.buybar-float{position:fixed;inset-inline:0;bottom:16px;z-index:80;margin-inline:auto;width:-moz-max-content;width:max-content;max-width:calc(100vw - 24px);justify-content:center;gap:10px 14px;padding:9px 12px 9px 18px;border-radius:100px;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));box-shadow:0 16px 40px -12px rgba(0,0,0,.55)}.buybar-float,.buybar-float .buybar-acts{display:flex;align-items:center;flex-wrap:wrap}.buybar-float .buybar-acts{gap:12px}.buybar-float .buybar-buy{background:#0a0a12;color:#fff}.buybar-float .buybar-pro{border-color:rgba(10,10,18,.4);color:#0a0a12;font-weight:800}.buybar-float .buybar-pro:hover{border-color:#0a0a12}.buybar-float .buybar-or{color:rgba(10,10,18,.6)}.buybar-float .buybar-close{color:rgba(10,10,18,.7)}.buybar-float .buybar-close:hover{background:rgba(10,10,18,.15);color:#0a0a12}.ide .demo-cta{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:13px 15px;margin-bottom:16px;border:1px solid color-mix(in oklch,var(--acc-1) 35%,var(--line));border-radius:13px;background:color-mix(in oklch,var(--acc-1) 8%,var(--panel))}.ide .demo-cta-txt{font-size:.88rem;font-weight:600;line-height:1.85;color:var(--fg);margin:0}.ide .demo-cta-lbl{font-size:.85rem;font-weight:600;color:var(--mut)}.ide .demo-cta-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ide .demo-cta-go{display:inline-flex;align-items:center;padding:9px 17px;border-radius:100px;font-size:.84rem;font-weight:800;white-space:nowrap;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12;transition:transform .15s ease,filter .15s ease}.ide .demo-cta-go:hover{transform:translateY(-1px);filter:brightness(1.05)}.ide .demo-cta-alt{display:inline-flex;align-items:center;padding:9px 15px;border-radius:100px;font-size:.82rem;font-weight:700;white-space:nowrap;color:var(--mut);border:1px solid var(--line);transition:color .2s,border-color .2s}.ide .demo-cta-alt:hover{color:var(--fg);border-color:var(--acc-1)}.ide .demo-cta-inline{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0;padding:9px 13px}.ide .ed-foot .demo-cta-inline{flex:1 1 auto;min-width:0}.ide .ins-body h2,.ide .prose h2{font-size:1.25rem;font-weight:800;color:var(--fg);margin:22px 0 10px}.ide .ins-body h3,.ide .prose h3{font-size:1.05rem;font-weight:800;color:var(--fg);margin:18px 0 8px}.ide .ins-body p,.ide .prose p{margin:0 0 14px;unicode-bidi:plaintext}.ide .ins-body strong,.ide .prose strong{color:var(--fg);font-weight:700}.ide .ins-body ul,.ide .prose ul{padding-inline-start:1.4em;margin:10px 0 14px;list-style:disc}.ide .ins-body ol,.ide .prose ol{padding-inline-start:1.4em;margin:10px 0 14px;list-style:decimal}.ide .ins-body li,.ide .prose li{margin:5px 0;unicode-bidi:plaintext}.ide .ins-body a,.ide .prose a{color:var(--acc-1)}.ide .ins-body pre,.ide .prose pre{direction:ltr;background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;margin:0 0 16px;max-width:100%;overflow-x:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.ide .ins-body pre code,.ide .prose pre code{background:none;padding:0;font-family:var(--font-jetbrains);font-size:.86rem;color:var(--code-fg);direction:ltr;white-space:pre-wrap;overflow-wrap:anywhere}.ide .ins-body,.ide .prose{overflow-wrap:break-word;word-break:break-word}.ide .ins-body code,.ide .prose code{overflow-wrap:anywhere}@keyframes blink{50%{opacity:.3}}.ide .file-modal{text-align:start;direction:rtl}.ide .file-modal .cele-title{text-align:center;margin-bottom:16px}.ide .file-modal .fm-label{display:block;font-size:.86rem;color:var(--mut);margin:0 0 8px;direction:rtl;text-align:right}.ide .file-modal .fm-input{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--code-bg);color:var(--fg);font-family:var(--font-jetbrains);font-size:.9rem;margin-bottom:20px}.ide .file-modal .fm-input:focus{outline:none;border-color:var(--acc-2)}.ide .ctx-menu{position:fixed;z-index:95;min-width:200px;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:0 24px 60px -22px rgba(0,0,0,.75);direction:rtl;font-family:inherit;animation:ctxPop .12s var(--ease)}@keyframes ctxPop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.ide .ctx-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;color:var(--mut);font-size:.82rem;text-align:start}.ide .ctx-menu button:hover{background:var(--chip);color:var(--fg)}.ide .ctx-menu button.danger:hover{background:color-mix(in oklch,#ff5b5b 16%,transparent);color:#ff7676}.ide .ctx-menu .ctx-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;color:var(--faint)}.ide .ctx-menu button:hover .ctx-ico{color:inherit}.ide .ctx-menu .ctx-sep{height:1px;margin:5px 6px;background:var(--line)}.ide .outline-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:10px;background:var(--chip);color:var(--mut);font-weight:700;font-size:.85rem;transition:background .2s,color .2s;white-space:nowrap}.ide .outline-btn:hover{background:color-mix(in oklch,var(--acc-2) 16%,var(--chip));color:var(--fg)}.ide .outline-btn svg{width:17px;height:17px}.ide .outline-overlay{position:fixed;inset:0;z-index:80;background:rgba(7,7,14,.55);backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease),visibility 0s linear .3s}.ide .outline-overlay.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s var(--ease)}.ide .outline-drawer{position:absolute;inset-block:0;right:0;left:auto;width:min(380px,88vw);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line);box-shadow:0 0 60px -10px rgba(0,0,0,.6);transform:translateX(100%);transition:transform .3s var(--ease)}.ide .outline-overlay.show .outline-drawer{transform:translateX(0)}.ide .outline-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-block-end:1px solid var(--line);font-size:1.02rem;font-weight:800}.ide .outline-close{width:34px;height:34px;border-radius:10px;font-size:1.4rem;line-height:1;color:var(--mut);display:grid;place-items:center}.ide .outline-close:hover{background:var(--chip);color:var(--fg)}.ide .outline-body{flex:1;overflow:auto;padding:14px 14px 30px;display:flex;flex-direction:column;gap:2px}.ide .outline-item{width:100%;display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;text-align:start;color:var(--mut);font-size:.92rem;font-weight:600;transition:background .18s,color .18s}.ide .outline-item:not(:disabled):hover{background:var(--chip);color:var(--fg)}.ide .outline-item.current{background:color-mix(in oklch,var(--acc-2) 14%,transparent);color:var(--fg)}.ide .outline-item.done{color:var(--fg)}.ide .outline-item.locked{opacity:.5;cursor:default}.ide .outline-item .oi-state{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;border-radius:7px;font-size:.8rem;background:var(--chip);color:var(--faint)}.ide .outline-item.done .oi-state{background:var(--syn-str);color:#07120c}.ide .outline-item.current .oi-state{background:linear-gradient(115deg,var(--acc-1),var(--acc-2));color:#0a0a12}.ide .outline-item .oi-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide .outline-item .oi-tag{font-size:.68rem;font-weight:700;color:var(--faint);background:var(--chip);padding:2px 8px;border-radius:100px;flex:0 0 auto}.ide .outline-section{padding:7px 12px;margin-block-start:12px;padding-block-start:13px;border-block-start:1px solid var(--line);font-size:.72rem;font-weight:800;letter-spacing:.03em;color:var(--faint);text-transform:uppercase}.ide .outline-section:first-child{margin-block-start:0;padding-block-start:4px;border-block-start:none}.ide .lo-toggle{position:sticky;top:0;z-index:6;display:flex;gap:4px;padding:5px;margin-block-end:14px;background-color:var(--panel);background-image:linear-gradient(var(--chip),var(--chip));border-radius:13px}.ide .lo-toggle button{flex:1;padding:8px 10px;border-radius:9px;font-size:.84rem;font-weight:700;color:var(--mut);transition:background .18s,color .18s}.ide .lo-toggle button:hover{color:var(--fg)}.ide .lo-toggle button.on{background:var(--panel);color:var(--fg);box-shadow:0 1px 5px rgba(0,0,0,.18)}.ide .lo-progress{position:relative;flex:0 0 auto;align-self:stretch;display:grid;place-items:center;min-width:46px;padding-inline:10px;border-radius:9px;background:var(--panel);color:var(--mut);font-size:.76rem;font-weight:800;font-variant-numeric:tabular-nums;cursor:default}.ide .lo-progress[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);z-index:11;width:-moz-max-content;width:max-content;max-width:200px;padding:6px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:var(--fg);font-size:.72rem;font-weight:700;line-height:1.4;text-align:center;white-space:normal;box-shadow:0 6px 18px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .15s var(--ease)}.ide .lo-progress:hover:after{opacity:1}.ide .lo-list{display:flex;flex-direction:column;gap:2px}.ide .lo-scrolltrack{position:sticky;top:0;height:0;z-index:10;align-self:stretch;pointer-events:none}.ide .lo-scrolltip{position:absolute;left:-13px;transform:translateY(-50%);padding:3px 9px;border-radius:100px;background:var(--acc-2);color:#07120c;font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 3px 10px rgba(0,0,0,.35);opacity:0;transition:opacity .2s var(--ease)}.ide .lo-scrolltip.show{opacity:1}.ide .lo-path{position:relative;width:100%}.ide .lo-trail{position:absolute;inset-block-start:0;inset-inline-start:0;pointer-events:none;overflow:visible}.ide .lo-trail path{fill:none}.ide .lo-trail .tr-active{stroke:var(--syn-str)}.ide .lo-trail .tr-locked{stroke:var(--line);stroke-dasharray:2 11}.ide .lo-unit{position:absolute;inset-inline-start:0;text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);padding-block:18px 6px}.ide .lo-unit:before{content:"";position:absolute;inset-inline:10px;inset-block-start:9px;height:1px;background:var(--line);z-index:-1}.ide .pn{position:absolute;z-index:1;display:grid;place-items:center;border-radius:50%;background:var(--chip);color:var(--faint);box-shadow:0 5px 0 0 color-mix(in oklch,#000 24%,transparent);transition:transform .14s var(--ease),box-shadow .14s var(--ease)}.ide .pn-face{display:grid;place-items:center;width:100%;height:100%}.ide .pn:not(:disabled){cursor:pointer}.ide .pn:not(:disabled):hover{transform:translateY(-2px)}.ide .pn:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 0 color-mix(in oklch,#000 24%,transparent)}.ide .pn-done{background:var(--syn-str);color:#07120c;box-shadow:0 5px 0 0 color-mix(in oklch,var(--syn-str) 55%,#000)}.ide .pn-current{z-index:3;background:linear-gradient(150deg,var(--acc-1),var(--acc-2));color:#0a0a12;box-shadow:0 6px 0 0 color-mix(in oklch,var(--acc-2) 50%,#000);animation:pnBounce 1.7s var(--ease) infinite}.ide .pn-locked{opacity:.6}.ide .pn-goal.pn-current,.ide .pn-goal.pn-done{background:linear-gradient(150deg,#ffd76a,#f5a524);color:#2a1800;box-shadow:0 6px 0 0 color-mix(in oklch,#f5a524 55%,#000)}.ide .pn-current:after{content:"";position:absolute;inset:-7px;border-radius:50%;border:3px solid color-mix(in oklch,var(--acc-2) 60%,transparent);animation:pnRing 1.7s ease-out infinite;pointer-events:none}.ide .pn-start{position:absolute;bottom:calc(100% + 11px);left:50%;transform:translateX(-50%);max-width:172px;width:-moz-max-content;width:max-content;background:var(--panel);color:var(--acc-2);border:2px solid color-mix(in oklch,var(--acc-2) 55%,var(--line));font-size:.72rem;font-weight:800;line-height:1.35;text-align:center;padding:6px 11px;border-radius:13px;box-shadow:0 6px 16px rgba(0,0,0,.32)}.ide .pn-start-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.ide .pn-start:after{content:"";top:100%;transform:translate(-50%,-50%) rotate(45deg);width:9px;height:9px;border-right:2px solid color-mix(in oklch,var(--acc-2) 55%,var(--line));border-bottom:2px solid color-mix(in oklch,var(--acc-2) 55%,var(--line))}.ide .pn-start:after,.ide .pn[data-tip]:after{position:absolute;left:50%;background:var(--panel)}.ide .pn[data-tip]:after{content:attr(data-tip);bottom:calc(100% + 9px);transform:translateX(-50%);z-index:8;width:-moz-max-content;width:max-content;max-width:168px;padding:6px 10px;border-radius:11px;border:1px solid var(--line);color:var(--fg);font-size:.72rem;font-weight:700;line-height:1.35;text-align:center;white-space:normal;box-shadow:0 6px 18px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .15s var(--ease)}.ide .pn[data-tip]:hover:after{opacity:1}.ide .pn[data-tip]:hover{z-index:9}.ide .lo-path.scrolling .pn[data-tip]:hover:after{opacity:0}.ide .lo-path.scrolling .pn[data-tip]:hover{z-index:1}.ide .pn-kind{position:absolute;inset-block-end:-2px;inset-inline-end:-2px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--panel);color:var(--mut);box-shadow:0 1px 3px rgba(0,0,0,.3)}.ide .pn-kind svg{width:12px;height:12px}@keyframes pnBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pnRing{0%{transform:scale(1);opacity:.65}to{transform:scale(1.5);opacity:0}}@media (prefers-reduced-motion:reduce){.ide .pn-current{animation:none}.ide .pn-current:after{animation:none;opacity:0}}@media (max-width:1080px){.ide{overflow:auto;height:auto}.ide .workspace{flex-direction:column;height:auto}.ide .instructions{flex:none;width:100%;border-inline-end:none;border-block-end:1px solid var(--line)}.ide .ed-pane{flex:none;height:480px}.ide .out-pane{flex:none;flex-direction:column;height:auto}.ide .console,.ide .tests{min-height:200px}.ide .explorer{flex:0 0 140px;width:140px}.ide .ex-lang .exl-label,.ide .outline-btn span{display:none}}@media (hover:none){.ide .tree-acts{display:flex}.ide .info-tip.is-open .info-bubble,.ide .tip-wrap.is-open .tip-bubble{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}}.ide .explorer-scrim,.ide .files-toggle,.ide .mobile-tabs{display:none}@media (max-width:640px){.ide{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.ide .ex-top{flex:0 0 auto;height:auto;min-height:var(--topbar-h);gap:8px;padding:6px 10px;padding-block-start:max(6px,env(safe-area-inset-top))}.ide .ex-progress,.ide .ex-top .divider{display:none}.ide .ex-top .back{padding:8px}.ide .ex-top .back span{display:none}.ide .ex-crumb{flex:1}.ide .ex-crumb .c1{display:none}.ide .ex-crumb .c2{font-size:.9rem}.ide .outline-btn{padding:8px}.ide .xp-chip{padding:6px 10px;font-size:.78rem}.ide .theme-toggle{width:38px;height:38px}.ide .exl-seg button{padding:5px 8px;font-size:.76rem}.ide .mobile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;flex:0 0 auto;padding:6px 10px;background:var(--panel);border-block-end:1px solid var(--line)}.ide .mobile-tabs button{min-height:42px;border-radius:10px;font-weight:700;font-size:.92rem;color:var(--mut);background:var(--chip);transition:color .2s,background .2s}.ide .mobile-tabs button.on{color:#0a0a12;background:linear-gradient(115deg,var(--acc-1),var(--acc-2))}.ide .workspace{flex:1;min-height:0;height:auto;flex-direction:column;overflow:hidden}.ide .workspace>.editor-col,.ide .workspace>.instructions{display:none}.ide .workspace[data-pane=instructions]>.instructions{display:block;flex:1;width:100%;height:auto;min-height:0;overflow-y:auto;border-inline-end:none;border-block-end:none;padding:20px 18px max(40px,env(safe-area-inset-bottom))}.ide .workspace[data-pane=code]>.editor-col,.ide .workspace[data-pane=output]>.editor-col{display:flex;flex:1;min-height:0}.ide .workspace[data-pane=code] .out-pane{display:none}.ide .workspace[data-pane=code] .ed-pane{display:flex;flex:1;height:auto;min-height:0;padding:10px 10px max(8px,env(safe-area-inset-bottom))}.ide .workspace[data-pane=code] .task-peek{display:flex;flex:0 0 auto;flex-direction:column;margin:0 0 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.ide .task-peek-btn{display:flex;align-items:center;gap:8px;width:100%;padding:11px 13px;font-weight:800;font-size:.9rem;color:var(--fg);background:var(--panel)}.ide .task-peek-btn .task-peek-chev{margin-inline-start:auto;transition:transform .2s;color:var(--faint)}.ide .task-peek.open .task-peek-btn .task-peek-chev{transform:rotate(180deg)}.ide .task-peek-body{padding:0 14px 14px;max-height:42vh;overflow-y:auto;border-block-start:1px solid var(--line)}.ide .task-peek-title{font-size:1.05rem;font-weight:800;line-height:1.4;margin:12px 0 10px;color:var(--fg)}.ide .workspace[data-pane=output] .ed-pane{display:none}.ide .workspace[data-pane=output] .out-pane{display:flex;flex:1;flex-direction:column;min-height:0;padding:10px 12px max(14px,env(safe-area-inset-bottom))}.ide .workspace[data-pane=output] .console,.ide .workspace[data-pane=output] .tests{min-height:0}.ide .editor{position:relative}.ide .explorer{position:absolute;inset-block:0;inset-inline-start:0;z-index:6;width:min(230px,78%);transform:translateX(-105%);transition:transform .25s var(--ease);box-shadow:10px 0 32px -10px rgba(0,0,0,.6)}.ide .editor.files-open .explorer{transform:translateX(0)}.ide .explorer-scrim{display:block;position:absolute;inset:0;z-index:5;background:rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity .25s}.ide .editor.files-open .explorer-scrim{opacity:1;pointer-events:auto}.ide .files-toggle{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--mut);background:var(--chip);flex:0 0 auto}.ide .files-toggle svg{width:17px;height:17px}.ide .ed-foot{flex-wrap:wrap;row-gap:8px;padding:10px 12px}.ide .ed-foot .btn{padding:10px 14px}.ide .ed-status{margin-inline-end:0;flex-basis:100%;order:9}.ide .cm-editor{font-size:16px}.ide .outline-drawer{padding-block-start:env(safe-area-inset-top)}.ide .outline-body{padding-block-end:max(30px,env(safe-area-inset-bottom))}.ide .toast{inset-block-end:max(26px,calc(env(safe-area-inset-bottom) + 16px))}.ide .editor-col[data-layout=tabs] .out-pane{max-height:none}.ide .ed-view button span{display:none}.ide .ed-view button{padding:6px 9px}.ide .vp-bar{padding:6px 10px;gap:4px}.ide .vp-bar button{padding:6px 9px}}.ide-ard .file-tabs{flex:0 0 auto}.ide-ard .ard-sim-tab{white-space:nowrap}.ide-ard .ard-sim-tab .tab-icon{background:color-mix(in oklch,#00979d 32%,transparent);color:#e6fbfb}.ide-ard .ard-sim-pane{display:none;height:100%}.ide-ard .ard-sim-pane.show{display:flex}.ide-ard .ard-sim-pane>.ard-canvas{flex:1;border:0;border-radius:0}.ide .ard-freebuild{flex:1}.ide .ard-fb-bar .ard-fb-tools{display:flex;gap:3px;margin-inline-start:10px}.ide .ard-fb-bar .ard-fb-tools button{width:26px;height:24px;display:grid;place-items:center;border-radius:6px;color:var(--mut)}.ide .ard-fb-bar .ard-fb-tools button:hover:not(:disabled){background:var(--chip);color:var(--fg)}.ide .ard-fb-bar .ard-fb-tools button:disabled{opacity:.35}.ide .ard-fb-body{flex:1;display:flex;min-height:0;position:relative}.ide .ard-editor{flex:1}.ide .ard-editor .ard-stage{z-index:1}.ide .ard-editor .ard-wires{z-index:5}.ide .ard-editor .ard-stage [data-part]{cursor:grab}.ide .ard-palette{flex:0 0 150px;overflow-y:auto;border-inline-end:1px solid var(--line);padding:8px;background:color-mix(in oklch,var(--panel) 92%,#808080 4%)}.ide .ard-palette-head{font-size:.78rem;font-weight:800;color:var(--mut);padding:2px 4px 8px}.ide .ard-pal-cat{font-size:.68rem;color:var(--faint);margin:8px 4px 4px}.ide .ard-pal-item{display:block;width:100%;text-align:start;padding:7px 9px;margin-bottom:4px;border-radius:8px;font-size:.78rem;color:var(--mut);background:var(--code-bg);border:1px solid var(--line);cursor:pointer}.ide .ard-pal-item:hover{color:var(--fg);border-color:var(--acc-2)}.ide .ard-pin{fill:var(--acc-2);stroke:#fff;stroke-width:1.4;cursor:crosshair;transition:opacity .12s}.ide .ard-pin:hover{opacity:1!important;filter:drop-shadow(0 0 4px var(--acc-2))}.ide .ard-pin.on{fill:#fff;stroke:var(--acc-2);stroke-width:2;filter:drop-shadow(0 0 5px var(--acc-2))}.ide .ard-pin-hit{pointer-events:all;cursor:crosshair}.ide .ard-wire-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:7;pointer-events:none;padding:6px 14px;border-radius:999px;background:color-mix(in oklch,var(--panel) 90%,transparent);border:1px solid var(--line);color:var(--mut);font-size:.78rem;box-shadow:var(--shadow);white-space:nowrap}.ide .ard-wire-hint.active{color:var(--fg);border-color:var(--acc-2)}.ide .ard-wire-hit{pointer-events:stroke;cursor:pointer}.ide .ard-sel-ring{fill:none;stroke:var(--acc-2);stroke-width:2;stroke-dasharray:5 4;pointer-events:none}.ide .ard-prop{position:absolute;inset-block-start:10px;inset-inline-end:10px;width:216px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);z-index:6;overflow:hidden}.ide .ard-prop-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-block-end:1px solid var(--line);font-weight:700;font-size:.84rem}.ide .ard-prop-head button{font-size:1.1rem;line-height:1;color:var(--faint);width:22px;height:22px}.ide .ard-prop-body{padding:10px 12px;display:flex;flex-direction:column;gap:9px}.ide .ard-prop-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--mut)}.ide .ard-prop-row input,.ide .ard-prop-row select{flex:0 0 110px;background:var(--code-bg);border:1px solid var(--line);border-radius:6px;padding:4px 7px;color:var(--fg);font-size:.8rem;font-family:var(--font-jetbrains)}.ide .ard-prop-pins{font-size:.72rem;color:var(--faint);font-family:var(--font-jetbrains);direction:ltr;text-align:start}.ide .ard-prop-actions{display:flex;gap:8px;padding:10px 12px;border-block-start:1px solid var(--line)}.ide .ard-prop-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px;border-radius:8px;font-size:.78rem;color:var(--mut);background:var(--code-bg);border:1px solid var(--line);cursor:pointer}.ide .ard-prop-actions button:hover{color:var(--fg)}.ide .ard-prop-actions button.danger:hover{color:var(--err);border-color:var(--err)}.ide .ard-live{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 14px;border-block-end:1px solid var(--line);flex:0 0 auto;background:color-mix(in oklch,var(--code-bg) 70%,transparent)}.ide .ard-live-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.ide .ard-live-name{font-size:.72rem;font-weight:700;color:var(--faint)}.ide .ard-live-ctl{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;color:var(--mut)}.ide .ard-live-ctl input[type=range]{width:110px;accent-color:var(--acc-2)}.ide .ard-live-ctl .val{font-family:var(--font-jetbrains);font-size:.72rem;color:var(--fg);min-width:52px}.ide .ard-live-btn{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--code-bg);color:var(--mut);font-size:.74rem;font-weight:700;cursor:pointer}.ide .ard-live-btn:hover{color:var(--fg);border-color:var(--acc-2)}.ide .ard-live-btn:active{background:color-mix(in oklch,var(--acc-2) 18%,var(--code-bg))}.ide .dc-out{flex:1.1;display:flex;flex-direction:column;min-height:0;gap:8px}.ide .dc-tabs{display:flex;gap:6px;flex:0 0 auto}.ide .dc-tabs button{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--mut);font-size:.76rem;font-weight:700;cursor:pointer}.ide .dc-tabs button:hover{color:var(--fg)}.ide .dc-tabs button.on{color:var(--fg);border-color:var(--acc-2);background:color-mix(in oklch,var(--acc-2) 14%,var(--panel))}.ide .dc-panel{display:none;flex:1;min-height:0}.ide .dc-panel.show{display:flex}.ide .dc-panel>.console,.ide .dc-panel>.dc-dash{flex:1}.ide .dc-dash{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}.ide .dc-dash .dc-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:0 0 auto}.ide .dc-dash .dc-dot.on{background:var(--syn-str);box-shadow:0 0 8px var(--syn-str)}.ide .dc-body{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px}.ide .dc-empty{flex:1;display:grid;place-items:center;color:var(--faint);font-size:.8rem;text-align:center;padding:18px}.ide .dc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.ide .dc-card{border:1px solid var(--line);border-radius:10px;background:var(--code-bg);padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}.ide .dc-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.ide .dc-key{font-family:var(--font-jetbrains);font-size:.72rem;color:var(--faint);direction:ltr;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide .dc-chip{font-size:.66rem;color:var(--mut);background:var(--chip);border-radius:999px;padding:2px 8px;white-space:nowrap;flex:0 0 auto}.ide .dc-val{font-family:var(--font-jetbrains);font-size:1.3rem;font-weight:800;color:var(--fg);direction:ltr;text-align:start;overflow-wrap:anywhere;line-height:1.2}.ide .dc-spark{width:100%;height:30px;color:var(--acc-2);opacity:.9}.ide .dc-controls{border-block-start:1px solid var(--line);padding-block-start:10px;display:flex;flex-direction:column;gap:8px}.ide .dc-controls-head{font-size:.72rem;font-weight:800;color:var(--faint)}.ide .dc-controls-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.ide .dc-btn{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--code-bg);color:var(--mut);font-size:.76rem;font-weight:700;cursor:pointer}.ide .dc-btn:hover{color:var(--fg);border-color:var(--acc-2)}.ide .dc-btn:active{background:color-mix(in oklch,var(--acc-2) 18%,var(--code-bg))}.ide .dc-slider{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;color:var(--mut)}.ide .dc-slider input[type=range]{width:130px;accent-color:var(--acc-2)}.ide .dc-slider-val{font-family:var(--font-jetbrains);font-size:.74rem;color:var(--fg);min-width:34px}.ide .dc-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;color:var(--mut);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ide .dc-toggle input{position:absolute;opacity:0;pointer-events:none}.ide .dc-toggle-pill{width:34px;height:19px;border-radius:999px;background:var(--chip);border:1px solid var(--line);position:relative;transition:background .15s,border-color .15s;flex:0 0 auto}.ide .dc-toggle-pill:after{content:"";position:absolute;inset-block-start:2px;inset-inline-start:2px;width:13px;height:13px;border-radius:50%;background:var(--mut);transition:transform .15s,background .15s}.ide .dc-toggle.on{color:var(--fg)}.ide .dc-toggle.on .dc-toggle-pill{background:color-mix(in oklch,var(--acc-2) 45%,var(--chip));border-color:var(--acc-2)}.ide .dc-toggle.on .dc-toggle-pill:after{transform:translateX(-15px);background:#fff}@media (max-width:1080px){.ide .dc-out{flex:none;min-height:240px}.ide .dc-out .console,.ide .dc-out .dc-dash{min-height:200px}}.cf-overlay{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(7,7,14,.6);backdrop-filter:blur(6px);animation:cfFade .2s ease}.cf-card{position:relative;width:min(440px,92vw);text-align:center;padding:38px 34px 30px;background:var(--panel);border:1px solid var(--line);border-radius:26px;box-shadow:0 40px 90px -30px rgba(0,0,0,.7);color:var(--fg);animation:cfPop .42s cubic-bezier(.2,.9,.3,1.2)}.cf-seal{width:80px;height:80px;border-radius:50%;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));display:grid;place-items:center;margin:0 auto 18px;box-shadow:0 16px 40px -14px var(--acc-glow)}.cf-seal svg{width:40px;height:40px;stroke:#0a0a12;stroke-width:3}.cf-card h2{font-size:1.5rem;font-weight:800;margin-bottom:10px}.cf-card p{color:var(--mut);font-size:1rem;line-height:2;margin-bottom:22px}.cf-card p b{color:var(--fg);font-weight:700}.cf-ok{width:100%;padding:13px;font-size:.98rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;color:#0a0a12;background:linear-gradient(115deg,var(--acc-1),var(--acc-2));transition:filter .15s var(--ease,ease),transform .1s ease}.cf-ok:hover{filter:brightness(1.07)}.cf-ok:active{transform:translateY(1px)}.cf-close{position:absolute;inset-inline-end:14px;inset-block-start:14px;background:none;border:none;color:var(--mut);cursor:pointer;padding:5px;border-radius:8px;line-height:0;transition:color .15s ease,background .15s ease}.cf-close:hover{color:var(--fg);background:color-mix(in oklch,var(--mut) 14%,transparent)}@keyframes cfFade{0%{opacity:0}}@keyframes cfPop{0%{transform:scale(.88) translateY(18px);opacity:0}}.ide-sql .ed-pane{position:relative}.ide-sql .sql-boot{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:color-mix(in oklch,var(--panel) 78%,transparent);backdrop-filter:blur(2px)}.ide-sql .sql-boot-card{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:.9rem;background:var(--code-bg);border:1px solid var(--line);border-radius:12px;padding:12px 18px}.ide-sql .sql-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--acc);animation:sqlSpin .7s linear infinite}@keyframes sqlSpin{to{transform:rotate(1turn)}}.ide-sql .sql-schema-pane{display:none;height:100%;overflow:auto;padding:14px;background:var(--code-bg)}.ide-sql .sql-schema-pane.show{display:block}.ide-sql .se-empty{color:var(--mut);font-size:.88rem;padding:18px;text-align:center}.ide-sql .se-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.ide-sql .se-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.ide-sql .se-tbl{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;background:color-mix(in oklch,var(--acc) 12%,transparent);border-bottom:1px solid var(--line)}.ide-sql .se-name{font-family:var(--font-jetbrains);font-weight:700;font-size:.9rem;color:var(--fg)}.ide-sql .se-tbl .cnt{font-size:.72rem;color:var(--mut)}.ide-sql .se-cols{padding:4px 0}.ide-sql .se-col{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 11px;font-family:var(--font-jetbrains);font-size:.78rem}.ide-sql .se-cn{color:var(--code-fg);display:inline-flex;align-items:center;gap:5px}.ide-sql .se-badge{font-size:.7rem}.ide-sql .se-type{color:var(--mut);font-size:.68rem}.ide-sql .sql-result{display:flex;flex-direction:column;min-height:0;flex:1}.ide-sql .sql-result-body{flex:1;min-height:0;overflow:hidden;display:flex}.ide-sql .rg-empty{color:var(--mut);font-size:.86rem;padding:22px;margin:auto;text-align:center}.ide-sql .rg-wrap{flex:1;min-height:0;overflow:auto;direction:ltr}.ide-sql table.rg{border-collapse:collapse;width:-moz-max-content;width:max-content;min-width:100%;font-family:var(--font-jetbrains);font-size:.82rem}.ide-sql table.rg th{position:sticky;top:0;z-index:1;background:var(--code-bg);color:var(--mut);text-align:left;padding:7px 12px;white-space:nowrap;border-bottom:1px solid var(--line)}.ide-sql table.rg th .rg-h{color:var(--fg);font-weight:700;margin-inline-end:6px}.ide-sql table.rg th .rg-tc{color:var(--faint);font-size:.66rem}.ide-sql table.rg td{padding:6px 12px;border-bottom:1px solid var(--line);color:var(--code-fg);white-space:nowrap}.ide-sql table.rg td bdi{unicode-bidi:isolate}.ide-sql table.rg tbody tr:nth-child(2n) td{background:color-mix(in oklch,var(--mut) 6%,transparent)}.ide-sql .rg-null{color:var(--faint);font-style:italic}.ide-sql .rg-more{padding:6px 12px;color:var(--mut);font-size:.74rem;border-top:1px solid var(--line)}@media (max-width:640px){.ide-sql table.rg td:first-child,.ide-sql table.rg th:first-child{position:sticky;inset-inline-start:0;background:var(--code-bg)}}.ide-sql .sql-diff{padding:6px 12px 12px}.ide-sql .sql-cause{direction:rtl;color:var(--err);font-weight:700;font-size:.86rem;margin:6px 0}.ide-sql .sql-cause.ok{color:var(--acc)}.ide-sql .sql-diff-rows{direction:ltr;font-family:var(--font-jetbrains);font-size:.78rem;display:flex;flex-direction:column;gap:3px;margin-top:6px}.ide-sql .dr{display:flex;align-items:center;gap:8px;padding:3px 8px;border-radius:6px}.ide-sql .dr-ic{font-weight:800;width:1em;text-align:center}.ide-sql .dr.miss{background:color-mix(in oklch,var(--err) 12%,transparent);color:var(--err)}.ide-sql .dr.extra{background:color-mix(in oklch,var(--acc) 12%,transparent);color:var(--acc)}.ide-sql .dr-cells{color:var(--code-fg)}.ide-sql .sql-diff-raw{margin-top:8px}.ide-sql .sql-diff-raw summary{cursor:pointer;color:var(--mut);font-size:.78rem}.ide-sql .sql-diff-raw pre{direction:ltr;white-space:pre-wrap;font-family:var(--font-jetbrains);font-size:.74rem;color:var(--faint);background:var(--code-bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:6px}.ide-git .git-scroll{position:relative;height:100%;overflow:hidden;display:flex;flex-direction:column}.ide-git .ed-par{font-size:.78rem;color:var(--faint)}.ide-git .ed-par,.ide-git .gt{font-family:var(--font-jetbrains);direction:ltr}.ide-git .gt{display:flex;flex-direction:column;height:100%;background:var(--code-bg);cursor:text;font-size:.82rem}.ide-git .gt-body{flex:1 1 auto;overflow-y:auto;padding:14px 16px}.ide-git .gt-line{display:flex;gap:8px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.ide-git .gt-text{flex:1}.ide-git .gt-cmd .gt-text{color:var(--fg);font-weight:600}.ide-git .gt-prompt-inline{color:var(--syn-str);font-weight:700}.ide-git .gt-out .gt-text{color:var(--mut)}.ide-git .gt-err .gt-text{color:var(--err)}.ide-git .gt-info .gt-text{color:var(--faint);font-style:italic}.ide-git .gt-input-row{display:flex;align-items:center;gap:8px;padding:9px 16px;border-block-start:1px solid var(--line);background:color-mix(in oklch,var(--code-bg) 80%,#808080 8%)}.ide-git .gt-prompt{color:var(--acc-1,#8b9cff);font-weight:700;white-space:nowrap;font-size:.8rem}.ide-git .gt-branch{color:var(--gold,#f5b34a)}.ide-git .gt-input{flex:1;background:none;border:none;outline:none;color:var(--fg);font-family:var(--font-jetbrains);font-size:.82rem;caret-color:var(--syn-str)}.ide-git .git-graph-pane{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.ide-git .git-graph-body{flex:1 1 auto;overflow:auto;background:var(--code-bg)}.ide-git .cg-scroll{padding:6px 10px;min-width:100%}.ide-git .cg-svg{display:block}.ide-git .cg-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px;color:var(--faint);font-size:.85rem;direction:rtl;padding:20px;text-align:center}.ide-git .cg-node{filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.ide-git .cg-msg{fill:var(--mut);font-family:var(--font-jetbrains);font-size:11.5px}.ide-git .cg-chip{stroke-width:1}.ide-git .cg-chip-text{fill:#fff;font-size:10.5px;font-weight:700;font-family:var(--font-jetbrains)}.ide-git .cg-chip-branch{fill:#2563eb;stroke:#3b82f6}.ide-git .cg-chip-head{fill:#16a34a;stroke:#22c55e}.ide-git .cg-chip-tag{fill:#b45309;stroke:#f59e0b}.ide-git .cg-chip-remote{fill:#6b7280;stroke:#9ca3af}.ide-git .cg-row{display:flex;align-items:center;gap:5px;height:22px;white-space:nowrap;font-family:var(--font-jetbrains);overflow:visible}.ide-git .cg-chip2{font-size:10.5px;font-weight:700;color:#fff;padding:1px 7px;border-radius:5px;line-height:18px;flex:0 0 auto}.ide-git .cg-chip2.cg-chip-branch{background:#2563eb}.ide-git .cg-chip2.cg-chip-head{background:#16a34a}.ide-git .cg-chip2.cg-chip-tag{background:#b45309}.ide-git .cg-chip2.cg-chip-remote{background:#6b7280}.ide-git .cg-msg2{font-size:11.5px;color:var(--mut);margin-inline-start:3px;flex:0 0 auto}.ide-git .gsb{display:flex;align-items:center;gap:8px;font-size:.76rem;color:var(--mut);flex-wrap:wrap}.ide-git .gsb b{color:var(--fg);font-family:var(--font-jetbrains)}.ide-git .gsb-sep{color:var(--faint)}.ide-git .gsb-clean{color:var(--syn-str)}.ide-git .gsb-dirty{color:var(--gold,#f5b34a)}.ide-git .gf{display:flex;height:100%;min-height:0}.ide-git .gf-editor{flex:1 1 auto;min-width:0}.ide-git .gf .gf-explorer{position:static;transform:none;box-shadow:none;height:100%}.ide-git .gf-mark{margin-inline-start:auto;font-family:var(--font-jetbrains);font-size:.64rem;font-weight:800;min-width:15px;height:15px;padding:0 3px;border-radius:4px;display:inline-grid;place-items:center}.ide-git .tree-row:hover .gf-mark{display:none}.ide-git .gf-mark-staged{background:color-mix(in oklch,var(--syn-str) 20%,transparent);color:var(--syn-str)}.ide-git .gf-mark-modified{background:color-mix(in oklch,var(--gold) 20%,transparent);color:var(--gold)}.ide-git .gf-mark-untracked{background:var(--chip);color:var(--faint)}.ide-git .gf-mark-conflict{background:color-mix(in oklch,var(--err) 20%,transparent);color:var(--err)}.ide-git .gf-empty{padding:20px;color:var(--faint);font-size:.82rem;direction:rtl;text-align:center}.ide-git .git-feedback{margin-top:8px;padding:10px 13px;border-radius:9px;font-size:.83rem;line-height:1.7;color:var(--gold,#f5b34a);background:color-mix(in oklch,var(--gold,#f5b34a) 10%,transparent);border:1px solid color-mix(in oklch,var(--gold,#f5b34a) 30%,transparent)}.ide-git .ghp{height:100%;overflow-y:auto;background:var(--code-bg);font-size:.82rem}.ide-git .gh-empty{padding:18px;color:var(--faint);text-align:center;direction:rtl}.ide-git .ghp-tabs{display:flex;gap:4px;padding:8px 10px;border-block-end:1px solid var(--line);position:sticky;top:0;background:var(--code-bg);z-index:2}.ide-git .ghp-tabs button{padding:6px 11px;border-radius:8px;font-weight:700;font-size:.78rem;color:var(--mut);background:none;border:1px solid transparent;cursor:pointer}.ide-git .ghp-tabs button.on{color:var(--fg);border-color:var(--line);background:var(--panel-2)}.ide-git .ghp-body{padding:12px;display:flex;flex-direction:column;gap:8px}.ide-git .ghp-newrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ide-git .ghp-newrow input,.ide-git .ghp-newrow select{flex:1;min-width:110px;padding:7px 9px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--fg);font-family:var(--font-jetbrains);font-size:.78rem}.ide-git .ghp-newpr{border:1px solid var(--line);border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:7px;background:var(--panel-2)}.ide-git .ghp-arrow{color:var(--faint);font-family:var(--font-jetbrains);font-size:.78rem}.ide-git .ghp-btn{padding:7px 12px;border-radius:7px;font-weight:700;font-size:.76rem;border:1px solid var(--line);color:var(--fg);background:var(--panel);cursor:pointer;white-space:nowrap}.ide-git .ghp-btn:disabled{opacity:.5;cursor:not-allowed}.ide-git .ghp-green{background:#1a7f37;border-color:#1a7f37;color:#fff}.ide-git .ghp-red{background:#cf222e;border-color:#cf222e;color:#fff}.ide-git .ghp-purple{background:#8250df;border-color:#8250df;color:#fff}.ide-git .ghp-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);text-align:start}.ide-git .ghp-prrow{cursor:pointer}.ide-git .ghp-prrow.sel{border-color:var(--acc-1,#8b9cff)}.ide-git .ghp-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.ide-git .ghp-open{background:#1a7f37}.ide-git .ghp-merged{background:#8250df}.ide-git .ghp-closed{background:#cf222e}.ide-git .ghp-title{flex:1;color:var(--fg);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-git .ghp-branch{font-family:var(--font-jetbrains);font-size:.72rem;color:var(--faint)}.ide-git .ghp-state{font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:20px;background:var(--chip);color:var(--mut)}.ide-git .ghp-state.merged{background:color-mix(in oklch,#8250df 22%,transparent);color:#b692f6}.ide-git .ghp-detail{border:1px solid var(--line);border-radius:9px;padding:12px;display:flex;flex-direction:column;gap:9px;background:var(--panel-2)}.ide-git .ghp-detail-head{font-weight:700;color:var(--fg)}.ide-git .ghp-checks{display:flex;flex-wrap:wrap;gap:6px}.ide-git .ghp-check{font-family:var(--font-jetbrains);font-size:.72rem;padding:3px 8px;border-radius:6px;border:1px solid var(--line)}.ide-git .ghp-check-pass{color:#3fb950;border-color:color-mix(in oklch,#3fb950 40%,transparent)}.ide-git .ghp-check-fail{color:#f85149;border-color:color-mix(in oklch,#f85149 40%,transparent)}.ide-git .ghp-check-pending{color:var(--gold)}.ide-git .ghp-reviewers,.ide-git .ghp-reviews{font-size:.76rem;color:var(--mut);display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ide-git .ghp-review{font-size:.7rem;padding:2px 7px;border-radius:6px;background:var(--chip)}.ide-git .ghp-APPROVE{color:#3fb950}.ide-git .ghp-REQUEST_CHANGES{color:#f85149}.ide-git .ghp-actions{display:flex;gap:6px;flex-wrap:wrap}.ide-git .ghp-bp{border:1px solid var(--line);border-radius:9px;padding:12px;background:var(--panel-2);display:flex;flex-direction:column;gap:9px}.ide-git .ghp-bp-title{font-weight:700;color:var(--fg)}.ide-git .ghp-bp-state{font-size:.78rem;color:var(--mut)}.ide-git .ghp-bp-actions{display:flex;gap:6px;flex-wrap:wrap}.ide-regex .rx-editor{padding:18px 16px;display:flex;flex-direction:column;gap:10px}.ide-regex .rx-inputline{display:flex;align-items:center;gap:6px;background:var(--code-bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-family:var(--font-jetbrains)}.ide-regex .rx-slash{color:var(--faint);font-size:1.2rem;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ide-regex .rx-pattern{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--code-fg);font-family:var(--font-jetbrains);font-size:1rem;letter-spacing:.01em}.ide-regex .rx-pattern::-moz-placeholder{color:var(--faint)}.ide-regex .rx-pattern::placeholder{color:var(--faint)}.ide-regex .rx-flagchips{display:flex;gap:4px}.ide-regex .rx-flag{font-family:var(--font-jetbrains);font-size:.82rem;font-weight:700;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--faint);cursor:default}.ide-regex .rx-flag.on{color:var(--acc);border-color:color-mix(in oklch,var(--acc) 45%,transparent);background:color-mix(in oklch,var(--acc) 12%,transparent)}.ide-regex .rx-flag.editable{cursor:pointer}.ide-regex .rx-flag.editable:hover{border-color:var(--acc)}.ide-regex .rx-err{direction:rtl;color:var(--err);font-size:.82rem;font-weight:600}.ide-regex .rx-hint-line{direction:rtl;color:var(--mut);font-size:.8rem}.ide-regex .rx-filename{font-family:var(--font-jetbrains);font-size:.82rem;color:var(--mut);min-width:0}.ide-regex .rx-result{display:flex;flex-direction:column;min-height:0;flex:1}.ide-regex .rx-result-body{flex:1;min-height:0;overflow:auto;padding:14px}.ide-regex .pane-head.sub{margin-top:14px}.ide-regex .rx-empty{color:var(--mut);font-size:.86rem;padding:22px;text-align:center}.ide-regex .rx-sample{direction:ltr;white-space:pre-wrap;word-break:break-word;line-height:2;font-family:var(--font-jetbrains);font-size:.9rem;color:var(--code-fg);background:var(--code-bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.ide-regex .rx-hit{background:color-mix(in oklch,var(--acc) 30%,transparent);color:var(--fg);border-radius:4px;padding:1px;box-shadow:inset 0 -2px 0 color-mix(in oklch,var(--acc) 70%,transparent)}.ide-regex .rx-hit[data-i]:nth-of-type(2n){background:color-mix(in oklch,var(--gold,var(--acc)) 26%,transparent)}.ide-regex .rx-cap-wrap{overflow:auto;direction:ltr;margin-top:8px}.ide-regex table.rx-cap{border-collapse:collapse;width:-moz-max-content;width:max-content;min-width:100%;font-family:var(--font-jetbrains);font-size:.8rem}.ide-regex table.rx-cap th{position:sticky;top:0;background:var(--code-bg);color:var(--mut);text-align:left;font-weight:700}.ide-regex table.rx-cap td,.ide-regex table.rx-cap th{padding:6px 12px;white-space:nowrap;border-bottom:1px solid var(--line)}.ide-regex table.rx-cap td{color:var(--code-fg)}.ide-regex table.rx-cap tbody tr:nth-child(2n) td{background:color-mix(in oklch,var(--mut) 6%,transparent)}.ide-regex .rx-cap-n{color:var(--faint)}.ide-regex .rx-cap-full{color:var(--acc)}.ide-regex .rx-cap-null{color:var(--faint);font-style:italic}.ide-regex .rx-classify{display:flex;flex-direction:column;gap:7px}.ide-regex .rx-cl-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--code-bg)}.ide-regex .rx-cl-row.ok{border-color:color-mix(in oklch,var(--acc) 40%,transparent);background:color-mix(in oklch,var(--acc) 8%,transparent)}.ide-regex .rx-cl-row.bad{border-color:color-mix(in oklch,var(--err) 40%,transparent);background:color-mix(in oklch,var(--err) 8%,transparent)}.ide-regex .rx-cl-icon{display:inline-flex}.ide-regex .rx-cl-row.ok .rx-cl-icon{color:var(--acc)}.ide-regex .rx-cl-row.bad .rx-cl-icon{color:var(--err)}.ide-regex .rx-cl-kind{font-size:.74rem;color:var(--mut);min-width:8.5em}.ide-regex .rx-cl-text{direction:ltr;font-family:var(--font-jetbrains);font-size:.86rem;color:var(--code-fg)}.ide-regex .test-detail{color:var(--err);font-size:.8rem;padding:4px 12px 8px}.ide .peer-note{margin:0 0 10px;padding:7px 11px;border-radius:10px;border:1px solid var(--line);background:color-mix(in oklch,var(--mut) 7%,transparent);color:var(--mut);font-size:.78rem;font-weight:600}.ide .soft-skip{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.ide .soft-skip-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:100px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:.82rem;font-weight:700;transition:color .2s,border-color .2s,background .2s}.ide .soft-skip-btn:not(:disabled):hover{color:var(--fg);border-color:var(--acc-1);background:var(--chip)}.ide .soft-skip-btn:disabled{opacity:.6;cursor:default}.ide .soft-skip-note{margin:8px 0 0;font-size:.74rem;line-height:1.9;color:var(--faint)}.ide .ex-steps .st.skipped{background:repeating-linear-gradient(115deg,var(--faint) 0 5px,transparent 5px 10px)}.ide .outline-item.skipped{color:var(--mut)}.ide .outline-item.skipped .oi-state{background:var(--chip);color:var(--gold);border:1px dashed color-mix(in oklch,var(--gold) 55%,transparent)}.ide .outline-item .oi-tag-skip{color:var(--gold);background:color-mix(in oklch,var(--gold) 14%,transparent)}.ide .pn-skipped{background:var(--chip);color:var(--mut)}.ide .pn-skipped:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px dashed color-mix(in oklch,var(--gold) 60%,transparent);pointer-events:none}.ide .gate .gate-free{margin-bottom:14px;color:var(--fg);font-weight:700}.ide .gate .gate-preview{text-align:start;max-width:340px;margin:0 auto 18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--chip)}.ide .gate .gp-head{font-size:.76rem;font-weight:800;color:var(--faint);margin-bottom:9px}.ide .gate .gp-list{list-style:none;display:flex;flex-direction:column;gap:7px;margin:0;padding:0}.ide .gate .gp-list li{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--mut)}.ide .gate .gp-list li svg{flex:0 0 auto;width:13px;height:13px;stroke:var(--faint)}.ide .gate .gp-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide .gate .gp-more{margin:9px 0 0;font-size:.76rem;color:var(--faint)}.ide .gate .gate-price{margin-bottom:18px}.ide .gate .gate-cta-note{font-size:.74rem;line-height:1.8;color:var(--faint)}.ide .gate .gate-or{font-size:.74rem;font-weight:700;color:var(--faint);margin-block:2px}