body{margin:0}.python-page{--shell-bg:#f4f6f9;--panel-bg:#fff;--ink:#172337;--muted:#68778d;--line:#e2e7ee;--accent:#2563eb;background:var(--shell-bg);min-height:100vh;color:var(--ink)}html.dark .python-page{--shell-bg:#0d1420;--panel-bg:#111b2a;--ink:#e5edf6;--muted:#91a0b4;--line:#253247;--accent:#73a7ff}.python-app{--tool-header-height:6.1rem;--tool-header-main-height:3.65rem;min-height:100svh}.python-stage{min-height:620px;height:calc(100svh - var(--tool-header-height));grid-template-columns:15rem minmax(0,1fr);display:grid}.examples-sidebar{background:var(--panel-bg);border-right:1px solid var(--line);flex-direction:column;padding:1.45rem .8rem 1rem;display:flex;overflow-y:auto}.sidebar-heading{padding:0 .65rem 1.1rem}.sidebar-kicker,.guide-kicker{color:var(--accent);letter-spacing:.12em;margin:0 0 .45rem;font:700 .62rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.sidebar-heading h1{color:var(--ink);letter-spacing:-.025em;margin:0;font-size:1.05rem;font-weight:720}.sidebar-heading p:last-child{color:var(--muted);margin:.35rem 0 0;font-size:.72rem;line-height:1.55}.example-group{margin-top:.85rem}.example-group h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 .65rem .4rem;font-size:.64rem;font-weight:700}.example-item{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.45rem;align-items:center;gap:.7rem;padding:.62rem .65rem;transition:background .15s,color .15s;display:flex}.example-item:hover{background:color-mix(in srgb, var(--accent) 7%, transparent)}.example-item.active{background:color-mix(in srgb, var(--accent) 11%, transparent);color:var(--accent)}.example-item>span:last-child{gap:.18rem;min-width:0;display:grid}.example-item strong{font-size:.74rem;font-weight:650}.example-item small{color:var(--muted);font-size:.63rem;line-height:1.3}.example-icon{border:1px solid var(--line);height:1.8rem;color:var(--muted);border-radius:.4rem;flex:0 0 1.8rem;place-items:center;font:600 .58rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;display:grid}.example-item.active .example-icon{border-color:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent)}.sidebar-footnote{border-top:1px solid var(--line);align-items:flex-start;gap:.6rem;margin:auto .55rem 0;padding:.85rem .15rem 0;display:flex}.privacy-mark{color:#16834f;background:#e8f7ee;border-radius:50%;place-items:center;width:1.3rem;height:1.3rem;font-size:.75rem;display:grid}.sidebar-footnote>span:last-child{gap:.25rem;display:grid}.sidebar-footnote strong{color:var(--ink);font-size:.64rem;font-weight:650}.sidebar-footnote small{color:var(--muted);font-size:.59rem;line-height:1.45}.python-workbench{background:#0d1420;flex-direction:column;min-width:0;min-height:0;display:flex}.python-workspace{min-height:0;scroll-margin-top:var(--tool-header-height);flex:1;grid-template-rows:minmax(0,1fr) minmax(175px,29%);display:grid;overflow:hidden}.editor-panel,.output-panel{flex-direction:column;min-width:0;min-height:0;display:flex}.panel-toolbar,.output-toolbar{background:#111b2a;border-bottom:1px solid #243145;justify-content:space-between;align-items:center;gap:1rem;min-height:3.05rem;padding:.45rem 1rem;display:flex}.file-label{color:#d5deea;align-items:center;gap:.55rem;font:500 .72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.file-dot{background:#f0bd4f;border-radius:50%;width:.4rem;height:.4rem}.file-dirty{color:#f0bd4f;font-size:.46rem}.editor-actions,.output-actions{align-items:center;gap:.5rem;display:flex}.quiet-button{color:#aab8c9;cursor:pointer;background:0 0;border:0;border-radius:.38rem;padding:.48rem .58rem;font:500 .69rem/1 ui-sans-serif,system-ui,sans-serif}.quiet-button:hover:not(:disabled){color:#fff;background:#1e2b3c}.quiet-button:disabled{opacity:.38;cursor:not-allowed}.run-button{color:#fff;cursor:pointer;background:#238636;border:1px solid #238636;border-radius:.42rem;align-items:center;gap:.42rem;padding:.5rem .72rem;font:650 .72rem/1 ui-sans-serif,system-ui,sans-serif;transition:background .15s,transform .15s;display:inline-flex}.run-button:hover:not(:disabled){background:#2ea043;transform:translateY(-1px)}.run-button:disabled{opacity:.48;cursor:wait}.run-button svg{width:.8rem;height:.8rem}.run-button kbd{color:#ffffffb3;margin-left:.16rem;font:500 .58rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}.code-editor{background:#0d1420;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.code-editor .cm-editor{flex:1;min-height:0}.editor-hint{color:#77869a;border-top:1px solid #243145;justify-content:space-between;align-items:center;gap:.75rem;min-height:2.25rem;padding:.4rem 1rem;font:500 .61rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.output-panel{border-top:1px solid #243145}.output-toolbar{border-bottom:1px solid #243145;min-height:2.7rem}.output-heading{align-items:center;gap:.55rem;display:flex}.terminal-prompt{color:#6b9eff;font:650 .68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}.output-toolbar h2{color:#c8d3e1;margin:0;font-size:.69rem;font-weight:650}.runtime-status{color:#d9a441;font-size:.64rem}.runtime-status[data-state=ready]{color:#54d39a}.runtime-status[data-state=running]{color:#79c0ff}.runtime-status[data-state=error]{color:#ff7b72}.terminal-output{color:#d1deed;white-space:pre-wrap;overflow-wrap:anywhere;flex:1;min-height:0;margin:0;padding:.8rem 1rem 1rem;font:400 .76rem/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.output-placeholder{color:#728197}.mobile-tabs{display:none}.python-guide{max-width:70rem;scroll-margin-top:var(--tool-header-height);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,7vw,7rem);margin:0 auto;padding:4rem 2rem 4.5rem;display:grid}.python-guide h2{max-width:25rem;color:var(--ink);letter-spacing:-.035em;margin:0;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:730;line-height:1.2}.guide-intro{max-width:31rem;color:var(--muted);margin:.8rem 0 0;font-size:.84rem;line-height:1.75}.guide-example-description{max-width:31rem;color:var(--muted);margin:.45rem 0 0;font-size:.78rem;line-height:1.7}.python-related-reading{max-width:31rem;color:var(--muted);margin:.65rem 0 0;font-size:.78rem;line-height:1.7}.python-related-reading a{color:var(--accent);text-underline-offset:.16em;text-decoration:underline}.python-guide h3{color:var(--ink);margin:1.35rem 0 .4rem;font-size:.88rem;font-weight:700}.guide-code{color:#dce7f5;background:#111b2a;border:1px solid #253247;border-radius:.55rem;max-width:100%;margin:.65rem 0 0;padding:1rem 1.1rem;font:400 .74rem/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.python-example-library{max-width:70rem;scroll-margin-top:var(--tool-header-height);margin:0 auto;padding:0 2rem 4.5rem}.example-library-heading{max-width:48rem;margin-bottom:2rem}.example-library-heading h2{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:730;line-height:1.25}.example-library-heading>p:last-child{color:var(--muted);margin:.7rem 0 0;font-size:.82rem;line-height:1.7}.example-library-group+.example-library-group{margin-top:2rem}.example-library-group>h3{color:var(--accent);margin:0 0 .6rem;font-size:.9rem;font-weight:700}.example-library-list{-moz-column-gap:2rem;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem;display:grid}.example-library-item{border-top:1px solid var(--line);min-width:0;padding:1rem 0 1.25rem}.example-library-item h4{color:var(--ink);margin:0;font-size:.82rem;font-weight:700}.example-library-item p{color:var(--muted);margin:.4rem 0 0;font-size:.74rem;line-height:1.65}.example-library-code{color:#dce7f5;background:#111b2a;border:1px solid #253247;border-radius:.5rem;max-width:100%;margin:.7rem 0 0;padding:.85rem 1rem;font:400 .68rem/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.guide-details{align-content:start;gap:1.25rem;display:grid}.guide-details article{gap:.35rem;display:grid}.guide-details h3{color:var(--ink);margin:0;font-size:.78rem;font-weight:700}.guide-details p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.7}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.python-app{--tool-header-height:5.75rem;--tool-header-main-height:3.4rem}.python-stage{height:auto;min-height:calc(100svh - var(--tool-header-height));flex-direction:column;display:flex}.examples-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:.45rem .65rem;display:block;overflow-x:auto}.sidebar-heading,.example-group h2,.sidebar-footnote{display:none}.example-group{display:contents}.example-item{white-space:nowrap;width:auto;min-height:2.65rem;margin-right:.2rem;padding:.4rem .55rem;display:inline-flex}.example-item>span:last-child{display:block}.example-item small,.example-icon{display:none}.python-workbench{min-height:590px;height:calc(100svh - var(--tool-header-height) - 2.7rem)}.mobile-tabs{background:#111b2a;border-bottom:1px solid #243145;gap:.25rem;padding:.5rem .7rem 0;display:flex}.mobile-tabs button{color:#94a3b8;background:0 0;border:0;border-bottom:2px solid #0000;padding:.52rem .7rem;font:600 .68rem/1 ui-sans-serif,system-ui,sans-serif}.mobile-tabs button[aria-selected=true]{color:#e5edf6;border-bottom-color:#73a7ff}.python-workspace{display:block}.python-workspace .editor-panel,.python-workspace .output-panel{height:100%}.python-workspace[data-active-panel=editor] .output-panel,.python-workspace[data-active-panel=output] .editor-panel{display:none}.panel-toolbar{padding-inline:.55rem}.editor-actions{gap:.12rem}.quiet-button{padding-inline:.42rem}.run-button{padding:.5rem .58rem}.run-button kbd{display:none}.code-editor .cm-scroller{font-size:.78rem}.code-editor .cm-content{padding-inline:.85rem}.editor-hint{padding-inline:.7rem;font-size:.57rem}.runtime-status{font-size:.58rem}.python-guide{grid-template-columns:1fr;gap:1.5rem;padding:2.75rem 1.2rem 3.5rem}.python-example-library{padding:0 1.2rem 3.5rem}.example-library-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.example-item,.run-button{transition:none}}
