:root{color-scheme:dark;--bg:#03080f;--panel:#081722;--line:#17465c;--text:#e8fbff;--muted:#9cbfce;--accent:#44e5ff;font-family:system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}header{padding:24px 5%;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:650}.logo{background:var(--accent);color:var(--bg);padding:7px;border-radius:8px;font:700 18px monospace}.version,.section-label,.section-heading>span,.actions>span{color:var(--muted);font-size:14px}.section-label{letter-spacing:.13em;font-weight:600}main{max-width:1440px;margin:auto;padding:36px 5%}h1{font-size:32px;letter-spacing:-1px;margin:12px 0}p{line-height:1.65;color:var(--muted)}label{display:block;margin:24px 0 10px;font-weight:600}textarea{width:100%;resize:vertical;background:#020a12;color:var(--accent);border:1px solid var(--line);border-radius:10px;padding:20px;font:16px/1.6 ui-monospace,monospace;min-height:125px}.actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px}button{cursor:pointer;font:inherit}#analyze{border:0;background:var(--accent);color:#02131d;padding:12px 24px;border-radius:7px;font-weight:700}#analyze:disabled{opacity:.5}#status{min-height:26px;font-size:14px;margin-bottom:24px}.workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.anatomy,aside{padding:28px;min-width:0}.anatomy{background:radial-gradient(#103044 1px,transparent 1px);background-size:18px 18px}aside{background:var(--panel);border-left:1px solid var(--line)}h2{font-size:21px;letter-spacing:-.4px}h3{font-size:14px;margin-top:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.root,ul{list-style:none;padding:0;margin:0}li>ul{margin-left:18px;padding-left:22px;border-left:1px solid #26627a}li{position:relative;margin:9px 0}li>ul>li:before{content:'';position:absolute;width:22px;height:1px;background:#26627a;left:-22px;top:21px}.node{display:inline-flex;align-items:center;gap:20px;border:1px solid var(--line);border-radius:7px;background:#0a1d2b;color:var(--text);padding:10px 14px;max-width:100%;text-align:left}.node span{font:15px ui-monospace,monospace;overflow-wrap:anywhere}.node small{font-size:12px;color:var(--muted)}.node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:#093849}.node:hover{background:#103447}.quote,.separator,.list_delimiter{padding:7px 12px}.tag{display:inline-block;border:1px solid #28758c;color:var(--accent);border-radius:4px;padding:4px 8px;font-size:13px}dt{color:var(--muted);font-size:14px;margin-top:22px}dd{margin:6px 0;line-height:1.5}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#020a12;border-radius:6px;padding:16px;font:15px/1.8 ui-monospace,monospace}mark{background:var(--accent);color:#02131d;border-radius:2px}.note{font-size:14px}footer{padding:0 5% 30px;color:var(--muted);font-size:14px}button:focus-visible,textarea:focus-visible{outline:3px solid #a3f5ff;outline-offset:4px}@media(max-width:800px){.workspace{grid-template-columns:1fr}aside{border-left:0;border-top:1px solid var(--line)}header{align-items:flex-start;gap:15px;flex-direction:column}.anatomy,aside{padding:20px}.section-heading{display:block}.actions>span{max-width:55%}li>ul{margin-left:8px;padding-left:16px}li>ul>li:before{width:16px;left:-16px}.node{gap:10px}}
/* The diagram uses source positions at 0% and hierarchy positions at 100%. */
.workspace{grid-template-columns:minmax(0,1fr) 320px}.anatomy{padding:24px 0;background:#040e18}.anatomy>.section-label,.anatomy>.section-heading,.explode-controls,.stage-hint,.anatomy>details{margin-left:24px;margin-right:24px}.explode-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.explode-controls label{margin:0;font-size:14px}.explode-controls output{color:var(--accent);margin-left:8px;font-variant-numeric:tabular-nums}.explode-controls input[type="range"]{flex:1;min-width:100px;accent-color:var(--accent)}#reassemble{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);padding:9px 12px;font-size:14px}.stage-hint{font-size:14px}#viewport{overflow:auto;max-height:670px;border-block:1px solid #164155;background:radial-gradient(ellipse at 45% 35%,#07384c80,transparent 65%),radial-gradient(#17465c 1px,transparent 1px);background-size:auto,24px 24px}#stage{position:relative;min-height:640px}#connections,#pieces{position:absolute;inset:0}#connections path{stroke:#39c5ed;stroke-width:1.5;fill:none}.piece{position:absolute;transform:translate(-50%,-50%);white-space:pre;font:16px/20px ui-monospace,monospace;min-width:20px;border:1px solid transparent;border-radius:7px;padding:7px 10px;background:rgba(5,25,40,var(--separation));color:#ddf7ff;transition:filter .2s,box-shadow .2s}.piece.name{color:#44e5ff}.piece.string{color:#a4f3ff}.piece.assignment_operator{color:#f0fcff}.piece.quote,.piece.separator,.piece.list_delimiter{color:#70baff}.piece.assignment,.piece.list,.piece.element{color:#d9f6ff;border-color:#20566e;font-family:system-ui,sans-serif;font-size:14px}.piece.dimmed{filter:brightness(.65)}.piece:hover,.piece.selected{filter:none;background:#0d3548;border-color:var(--accent);box-shadow:0 0 20px #44e5ff25;z-index:2}.piece:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.anatomy>details{margin-top:20px}.anatomy summary{cursor:pointer;color:var(--muted);font-size:14px}aside{position:sticky;top:0;align-self:start;min-height:100%}.editor textarea{min-height:90px;height:90px}main{max-width:1600px}.editor h1{font-size:28px}@media(max-width:1000px){.workspace{grid-template-columns:1fr}aside{position:static;border-left:0;border-top:1px solid var(--line)}#viewport{max-height:570px}}@media(prefers-reduced-motion:reduce){.piece{transition:none}}

#example{font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;max-width:100%}.piece.integer,.piece.float,.piece.boolean,.piece.none{color:#a4f3ff}.piece.tuple,.piece.dictionary,.piece.set,.piece.entry,.piece.signed_number{color:#d9f6ff;border-color:#20566e;font-family:system-ui,sans-serif;font-size:14px}.piece.tuple_delimiter,.piece.dictionary_delimiter,.piece.set_delimiter,.piece.key_value_separator{color:#70baff}.piece.sign_operator{color:#f0fcff}select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#breadcrumbs{display:flex;gap:7px;flex-wrap:wrap;margin:0 24px 22px}#breadcrumbs button,#explore,#related button{background:#0b2332;border:1px solid #256078;color:var(--text);border-radius:6px;padding:9px 12px;font:inherit;font-size:14px;cursor:pointer}#breadcrumbs button+button:before{content:'› ';color:var(--accent)}#breadcrumbs [aria-current]{border-color:var(--accent)}#explore{background:var(--accent);color:#02131d;font-weight:700}#explore:disabled{opacity:.4;cursor:default}#related{display:grid;gap:8px;font-size:14px;color:var(--muted)}#related button{text-align:left}.zoom-controls{display:flex;align-items:center;gap:12px;margin:0 24px 18px;font-size:14px}.zoom-controls label{margin:0}.zoom-controls input{width:120px;accent-color:var(--accent)}.program-piece{position:absolute;text-align:left;padding:0;border:1px solid transparent;border-radius:7px;background:rgba(6,28,43,var(--separation));color:#d7f7ff;cursor:pointer}.program-piece code{display:block;white-space:pre;font:15px/22px ui-monospace,monospace}.piece-heading{position:absolute;left:0;bottom:100%;padding-bottom:5px;font:13px/18px system-ui,sans-serif;color:var(--accent);white-space:nowrap}.program-piece:hover,.program-piece.selected{border-color:var(--accent);box-shadow:0 0 20px #44e5ff22;z-index:2}.program-piece.dimmed{color:#91b5c7}.binding-line{stroke:#f0fcff!important;stroke-dasharray:6 5}.editor textarea{height:180px}.piece.parameter,.piece.function_name,.piece.module_name{color:#44e5ff}.piece.syntax,.piece.attribute_name{color:#70baff}.piece.call,.piece.attribute,.piece.lookup,.piece.calculation,.piece.comparison,.piece.argument,.piece.return,.piece.expression_statement,.piece.import{color:#d9f6ff;border-color:#20566e;font-family:system-ui,sans-serif;font-size:14px}

/* Tron-inspired cyan light against a near-black grid. */
header{box-shadow:0 1px 18px #44e5ff12}.logo{box-shadow:0 0 18px #44e5ff45}.section-label{color:#68d7ee}.workspace{box-shadow:0 0 28px #24bce60c}#analyze,#explore:not(:disabled){box-shadow:0 0 16px #44e5ff24}#viewport{background:radial-gradient(ellipse at 45% 35%,#07384c65,transparent 65%),linear-gradient(#1c779b16 1px,transparent 1px),linear-gradient(90deg,#1c779b16 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}#connections path{filter:drop-shadow(0 0 3px #44e5ff60)}.binding-line{stroke:#a3f5ff!important}.piece.selected,.program-piece.selected,.node.selected{box-shadow:0 0 0 1px #44e5ff,0 0 22px #44e5ff30}.piece-heading{text-shadow:0 0 10px #44e5ff35}mark{box-shadow:0 0 10px #44e5ff20}

/* Labels must not intercept code while fading in or out. */
.piece-heading{pointer-events:none}.piece.dimmed{filter:brightness(.85)}.program-piece.dimmed{color:#b9dce8}

#overview-panel{border-top:1px solid var(--line);margin:20px 0;padding-top:4px}#overview-steps{padding-left:22px;color:var(--text);font-size:15px;line-height:1.65}#overview-steps li{padding-left:4px;margin:12px 0;overflow-wrap:anywhere}

.piece.boolean_operator{color:#70baff}.piece.boolean_logic,.piece.break,.piece.continue{color:#d9f6ff;border-color:#20566e;font-family:system-ui,sans-serif;font-size:14px}

#structure-panel{margin:0 24px 22px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#081722}#structure-panel h3{margin:0 0 12px;color:var(--text)}#structure-links{display:flex;flex-wrap:wrap;gap:8px}#structure-links button{font:14px/1.5 system-ui,sans-serif;padding:8px 12px;border:1px solid #256078;background:#0b2332;color:#a4f3ff;border-radius:6px}#structure-links button:hover,#structure-links button[aria-current]{border-color:var(--accent);background:#093849}

.piece.comment{color:#a3c4d2}.piece.indentation{color:#70baff;letter-spacing:2px}.piece.class_name,.piece.import_alias{color:#44e5ff}.piece.default_value,.piece.import_item,.piece.augmented_assignment{color:#d9f6ff;border-color:#20566e;font-family:system-ui,sans-serif;font-size:14px}#source-preview{max-height:360px;overflow:auto}#structure-links{max-height:220px;overflow:auto}.program-piece code{tab-size:4}
.comment-toggle{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--text);font-size:14px;white-space:nowrap}.comment-toggle input{width:17px;height:17px;margin:0;accent-color:var(--accent)}
#concept-panel{margin:0 24px 22px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#06131e}#concept-panel>summary{color:var(--text);font-weight:650}#concept-groups{display:grid;gap:12px;margin-top:14px}#concept-groups h4{margin:0 0 7px;color:var(--muted);font-size:13px}.concept-links{display:flex;flex-wrap:wrap;gap:7px}.concept-links button{border:1px solid #17465c;border-radius:999px;background:#071d2b;color:#bceeff;padding:6px 10px;font:13px/1.4 system-ui,sans-serif}.concept-links button:hover,.concept-links button:focus-visible{border-color:var(--accent);background:#093849}
