[data-chapter=drivers] .stage{background:0 0;height:auto;min-height:560px;padding:20px 0 25px 24px;overflow:visible}[data-chapter=drivers] .stage-head{display:none}.driver-lab{--dl-peach:#e6bca0;--dl-muted:#aaa3a0;--dl-line:#d8c4b125;--dl-good:#bed4ac;--dl-fault:#f3aa9d;--dl-sans:var(--sans,Calibre, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--dl-serif:var(--serif,Georgia, serif);--dl-mono:var(--mono,"SFMono-Regular", Consolas, monospace);isolation:isolate;color:#efebe4;width:100%;min-width:0;font:14px/1.35 var(--dl-sans);position:relative;container:driver-workbench/inline-size}.scene>.driver-lab{animation:none}.driver-lab *,.driver-lab :before,.driver-lab :after{box-sizing:border-box}.driver-lab [hidden]{display:none!important}.driver-lab p,.driver-lab h4,.driver-lab h5{margin:0}.driver-lab button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0}.driver-lab button:focus-visible,.driver-lab a:focus-visible,.driver-lab summary:focus-visible{outline:2px solid var(--dl-peach);outline-offset:3px}.dl-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 12px;display:flex}.dl-eyebrow{font:8px/1.5 var(--dl-mono);letter-spacing:.055em;text-transform:uppercase;color:var(--dl-peach)}.dl-simulation{color:#9a9592;font:8px/1.4 var(--dl-mono)}.dl-intro{min-height:79px;margin:12px 0 15px}.dl-intro h4{font:400 27px/1.12 var(--dl-serif);letter-spacing:-.045em;text-wrap:balance;margin-bottom:8px}.dl-intro p{color:#b0aaa8;font:13px/1.4 var(--dl-sans);max-width:640px}.dl-settings{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px;margin-bottom:13px;display:flex}.dl-switch{border:1px solid var(--dl-line);background:#1a181a;border-radius:5px;min-width:0;padding:3px;display:flex}.dl-switch button{color:#aaa19c;border-radius:3px;min-height:30px;padding:5px 9px;font-size:12px}.dl-switch button[aria-pressed=true]{color:#f1d8c5;background:#e9bc9b1e;box-shadow:inset 0 0 0 1px #e8bc9b24}.dl-switch button:hover{color:#f6e1d1}.dl-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:17px;display:grid}.dl-steps button{text-align:left;color:#a8a09a;min-width:0;padding:0 0 5px;font-size:11px;line-height:1.25}.dl-step-track{background:#4e4641;height:2px;margin-bottom:7px;display:block}.dl-step-number{font:8px var(--dl-mono);opacity:.7;display:none}.dl-steps [data-dl-complete=true] .dl-step-track{background:#9f7960}.dl-steps [aria-current] .dl-step-track{background:var(--dl-peach)}.dl-steps [aria-current],.dl-steps button:hover{color:#efd4bf}.dl-workspace{grid-template-columns:minmax(0,1fr);align-items:start;gap:17px;display:grid}.dl-diagram{min-width:0;position:relative}.dl-wire{min-width:0;padding:15px 0 65px;position:relative}.dl-wire-edges{color:#9a9088;font:10px/1.3 var(--dl-mono);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;display:flex;margin:0 0 16px!important}.dl-wire-tokens{flex-wrap:wrap;gap:5px;margin:0 0 22px;padding:0;list-style:none;display:flex}.dl-wire-tokens li{color:#e2c7ae;font:9px/1.2 var(--dl-mono);white-space:nowrap;background:#e6bca01a;border:1px solid #e6bca030;border-radius:5px;padding:5px 7px}.dl-wire-rail{background:#d0b09361;height:2px;position:absolute;bottom:36px;left:10%;right:10%}.dl-wire-net{background-image:repeating-linear-gradient(90deg,#b8a48f 0 4px,#0000 4px 8px);position:absolute;inset:0 0 0 80%}.dl-wire-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid}.driver-lab .dl-wire-node{background:#212024;border:1px solid #dfcaba24;border-radius:8px;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:13px 4px;display:flex}.dl-wire-icon{color:#d1b59f;width:38px;height:38px}.dl-wire-label{font:13px/1.1 var(--dl-sans);color:#cfc6bf}.dl-wire-node small{color:#ac9c8e;font:9px/1.2 var(--dl-mono)}.driver-lab .dl-wire-node[aria-pressed=true]{background:#342c29;border-color:#efc9a6a8}.driver-lab .dl-wire-node:hover{border-color:#e2b18c8c}.driver-lab .dl-wire-node[data-dl-fault=true]{background:#51302c80;border-color:#e899838f}.dl-wire-node[data-dl-mismatch=true] .dl-wire-label{color:var(--dl-fault)}.dl-wire-packet,.dl-wire-rows{opacity:0;font:9px/1.3 var(--dl-mono);white-space:nowrap;pointer-events:none;border-radius:999px;padding:4px 7px;transition:left .12s linear,opacity .2s;position:absolute;bottom:26px;transform:translate(-50%)}.dl-wire-packet{color:#241b16;background:#e6bca0}.dl-wire-rows{color:#182014;background:#bed4ac}.dl-wire-packet[data-dl-active=true],.dl-wire-rows[data-dl-active=true]{opacity:1}.dl-wire-execution{background:#abc29b0a;border:1px solid #acb4932b;border-radius:6px;padding:12px 14px}.dl-wire-execution[hidden]{visibility:hidden;display:block!important}.dl-wire-execution span{color:#9dad94;font:9px/1.5 var(--dl-mono);margin-bottom:5px;display:block}.dl-wire-execution strong{color:#d1ddc4;font:400 16px/1.3 var(--dl-sans)}.driver-lab[data-dl-mode=wire] .dl-workspace{flex-direction:column;justify-content:center;gap:16px;height:100%;display:flex}.driver-lab[data-dl-mode=wire] .dl-diagram,.driver-lab[data-dl-mode=wire] .dl-reading{width:100%}.driver-lab[data-dl-mode=wire] .dl-reading{padding:0}.driver-lab[data-dl-mode=wire] .dl-inspector{display:none}.driver-lab[data-dl-mode=wire][data-dl-step="4"] .dl-wire-execution{display:none!important}@container driver-workbench (width>=601px){.driver-lab[data-dl-mode=wire][data-dl-step="4"] .dl-workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:20px;display:grid}}@container driver-workbench (width<=600px){.dl-wire{padding:8px 0 47px}.dl-wire-edges{font-size:8px;margin-bottom:10px!important}.dl-wire-tokens{gap:4px;margin-bottom:12px}.dl-wire-tokens li{padding:3px 4px;font-size:7px}.driver-lab .dl-wire-node{gap:4px;padding:8px 2px}.dl-wire-icon{width:27px;height:27px}.dl-wire-label{font-size:10px}.dl-wire-node small{font-size:7px}.dl-wire-packet,.dl-wire-rows{padding:3px 5px;font-size:7px;bottom:16px}.dl-wire-rail{bottom:25px}.dl-wire-execution{padding:7px 9px}.dl-wire-execution span{margin-bottom:3px;font-size:7px}.dl-wire-execution strong{font-size:12px}.driver-lab[data-dl-mode=wire] .dl-workspace,.driver-lab[data-dl-mode=wire] .dl-reading{gap:8px}.driver-lab[data-dl-mode=wire][data-dl-step="4"] .dl-wire-execution{display:none!important}}.dl-process-label{color:#c0b4ab;font:8px/1.4 var(--dl-mono);align-items:center;gap:6px;padding:0 3px 8px;display:flex}.dl-process-label>span:last-child{color:#9f938d;margin-left:auto}.dl-process-dot{background:var(--dl-peach);border-radius:50%;width:5px;height:5px}.dl-process{background:radial-gradient(at 50% 66%,#75573d15,#0000 70%),#17171a;border:1px solid #d2b99e30;border-radius:10px;padding:10px;box-shadow:0 12px 26px #0002,inset 0 1px #dfc09f06}.driver-lab .dl-layer{text-align:left;background:#212024;border:1px solid #dfcaba24;border-radius:5px;align-items:center;gap:10px;width:100%;min-width:0;padding:9px 10px;display:flex;position:relative}.dl-layer-name{flex:1;min-width:0}.dl-layer-name strong{font-size:13px;font-weight:500;line-height:1.2;display:block}.dl-layer-name small{color:#aaa09a;margin-top:3px;font-size:10px;line-height:1.25;display:block}.dl-layer-icon{text-align:center;color:#d1b59f;width:21px;font:20px/1 var(--dl-serif);flex-shrink:0}.dl-arch{color:#b9b3ac;font:8px/1 var(--dl-mono);white-space:nowrap;background:#d9c6af08;border:1px solid #c4b8a830;border-radius:4px;flex-shrink:0;padding:4px 5px}.dl-arch[data-dl-mismatch=true]{color:var(--dl-fault);background:#f18b7012;border-color:#d686695c}.dl-application{background:#121317;border:1px solid #dbc2a52e;border-radius:6px;overflow:hidden}.driver-lab .dl-app{background:#242125;border:0;border-bottom:1px solid #cbb4a016;border-radius:0}.dl-query{color:#c7bdba;font:9px/1.6 var(--dl-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 12px}.dl-query code{font:inherit}.dl-query span{color:#e4bca1}.dl-connector{justify-content:center;align-items:center;height:16px;display:flex;position:relative}.dl-connector:before{content:"";background:#d0b09361;width:1px;height:100%}.dl-connector:after{content:"";border-bottom:1px solid #d0b093;border-right:1px solid #d0b093;width:4px;height:4px;position:absolute;bottom:1px;left:calc(50% - 2px);transform:rotate(45deg)}.dl-connector>span{color:#958a81;font:7px/1 var(--dl-mono);background:#17171a;padding:2px 3px;position:absolute;left:calc(50% + 9px)}.driver-lab .dl-driver{background:linear-gradient(110deg,#5b3e303d,#292227 75%);border-color:#bf927166;padding-block:12px;box-shadow:0 2px 10px #0003}.dl-driver .dl-layer-name strong{color:#f2d8c2}.dl-driver .dl-layer-name small{color:#c2a58e;font:7px/1.3 var(--dl-mono);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px}.dl-chip{color:#eec09b;background:#2e2320;border:1px solid #ac896866;border-radius:3px;flex-shrink:0;place-items:center;width:34px;height:36px;margin-right:3px;display:grid;position:relative}.dl-chip:before,.dl-chip:after{content:"";background:repeating-linear-gradient(0deg,#bc957866 0 3px,#0000 3px 6px);width:4px;position:absolute;top:5px;bottom:5px}.dl-chip:before{right:100%}.dl-chip:after{left:100%}.dl-chip>span{font:8px var(--dl-mono)}.driver-lab .dl-layer[aria-pressed=true]{background-color:#342c29;border-color:#efc9a6a8;outline:1px solid #e1b48e12}.driver-lab .dl-layer:hover{border-color:#e2b18c8c}.driver-lab .dl-layer[data-dl-fault=true]{background:#51302c80;border-color:#e899838f}.dl-network{color:#c9ae98;font:8px/1.4 var(--dl-mono);justify-content:center;align-items:center;gap:17px;padding:9px 15px;display:flex}.dl-network>span:first-child,.dl-network>span:last-child{color:#a89785;font-size:18px}.dl-network small{font:7px/1.5 var(--dl-mono);color:#958d84;text-align:center;display:block}.driver-lab .dl-database{background:#202321;border-color:#b1bdaa38;padding:10px 12px}.dl-database .dl-layer-name strong{color:#d9e2ce}.dl-database-icon{fill:#9fb58e0e;stroke:#b5c6a5;stroke-width:1.3px;flex-shrink:0;width:26px;height:31px}.dl-remote{color:#9ca58f;font:7px var(--dl-mono);margin-left:auto}.driver-lab .dl-diagram-hint{color:#99918a;text-align:center;margin-top:8px;font-size:10px}.dl-reading{flex-direction:column;gap:14px;min-width:0;display:flex}.dl-diagnostic{color:#c4d7b1;background:#a5b88c07;border:1px solid #bac9a431;border-radius:6px;align-items:flex-start;gap:9px;min-width:0;padding:12px;display:flex}.dl-diagnostic[data-dl-tone=idle]{border-color:var(--dl-line);color:#d9bda5;background:#bda28108}.dl-diagnostic[data-dl-tone=fault]{color:var(--dl-fault);background:#a04e3510;border-color:#d28b694d}.dl-diagnostic-icon{font:15px/1 var(--dl-mono);padding-top:2px}.dl-diagnostic strong{font-size:13px;font-weight:500;line-height:1.2;display:block}.dl-diagnostic small{color:#b6aca3;margin-top:5px;font-size:11px;line-height:1.4;display:block}.dl-inspector{min-width:0;padding:0 2px}.dl-inspector>.dl-eyebrow{color:#b89d87;font-size:7px;line-height:1.5;display:block}.dl-inspector h5{font:400 22px/1.13 var(--dl-serif);letter-spacing:-.035em;text-wrap:balance;margin-top:8px}.dl-inspector p{color:#b7ada8;margin-top:9px;font-size:12px;line-height:1.45}.dl-api{font:8px/1.65 var(--dl-mono);color:#d5b79e;overflow-wrap:anywhere;background:#b4987b07;border-left:2px solid #bf93713f;margin-top:11px;padding:8px 9px;display:block}.dl-source{color:#a99b8f;margin-top:7px;font-size:10px}.dl-source a,.dl-reference-links a{text-underline-offset:3px;text-decoration:underline #b9a28a40}.dl-source a:hover,.dl-reference-links a:hover{color:#ead2bc}.dl-port-plan>.dl-eyebrow{color:#b6a28c;font-size:7px}.dl-port-plan ol{margin:8px 0 0;padding:0;list-style:none}.dl-port-plan li{border-top:1px solid var(--dl-line);color:#b3aaa3;align-items:flex-start;gap:9px;padding:8px 0;display:flex}.dl-check-mark{color:#9f9284;width:18px;height:18px;font:8px/1 var(--dl-mono);border:1px solid #c6b1983d;border-radius:50%;flex-shrink:0;place-items:center;margin-top:1px;display:grid}.dl-port-plan strong{font-size:12px;font-weight:400;display:block}.dl-port-plan small{color:#a3988d;margin-top:2px;font-size:10px;display:block}.dl-port-plan [data-dl-done=true] .dl-check-mark{color:#c8dbb5;background:#b7d69c12;border-color:#b7d69c66}.dl-port-plan [data-dl-done=true] strong{color:#d0dabe}.dl-result{background:#171d1a;border:1px solid #c9d2bb30;border-radius:6px;overflow:hidden}.dl-result-head{color:#d4e2c6;background:#b3c9960c;justify-content:space-between;gap:10px;padding:9px 11px;font-size:12px;display:flex}.dl-result-head>span:last-child{font:8px/1.5 var(--dl-mono)}.dl-result table{border-collapse:collapse;color:#d1d8c9;width:100%;font:10px/1.5 var(--dl-mono)}.dl-result caption{text-align:left;color:#a3ad9b;font:9px/1.4 var(--dl-sans);padding:8px 11px 4px}.dl-result th,.dl-result td{text-align:left;border-bottom:1px solid #c7d6b410;padding:7px 11px;font-weight:400}.dl-result th{color:#a6b697;font-size:9px}.dl-result th:last-child,.dl-result td:last-child{text-align:right}.dl-result p{color:#aeb8a2;padding:9px 11px;font-size:10px;line-height:1.4}.dl-controls{border-top:1px solid var(--dl-line);justify-content:space-between;align-items:center;gap:12px;margin-top:17px;padding-top:13px;display:flex}.dl-status{font:8px/1.6 var(--dl-mono);color:#b4a391;max-width:230px}.driver-lab .dl-next{background:var(--dl-peach);color:#2b211b;text-align:left;border:1px solid #eecdb6;border-radius:5px;flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;min-height:41px;padding:10px 12px;font-size:12px;font-weight:500;display:flex}.driver-lab .dl-next:hover{background:#f2d3bb}.dl-next>span:last-child{font-size:16px}.dl-notes{color:#a69b92;border-top:1px solid #d8c4b114;margin-top:11px;font-size:11px}.dl-notes summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:40px;padding:12px 1px;list-style:none;display:flex}.dl-notes summary::-webkit-details-marker{display:none}.dl-notes summary>span{font:17px/1 var(--dl-sans);color:#c2a98e}.dl-notes[open] summary>span{transform:rotate(45deg)}.dl-notes p{color:#afa49c;max-width:800px;margin:0 0 11px;font-size:12px;line-height:1.45}.dl-notes strong{color:#d4c2b0;font-weight:500}.dl-reference-links{flex-wrap:wrap;gap:8px 16px;margin:14px 0 10px;display:flex}@container driver-workbench (width>=540px){.dl-workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:19px}.dl-reading{padding-top:20px}.dl-step-number{display:inline}.dl-intro{min-height:75px}.dl-layer-name strong{font-size:12px}.driver-lab .dl-layer{gap:8px;padding-inline:8px}.dl-query{font-size:8px}}@container driver-workbench (width<=539px){.dl-reading{grid-template-columns:minmax(0,1fr);gap:13px;display:grid}.dl-inspector{border-left:2px solid #b093782a;padding-left:12px}.dl-inspector h5{margin-top:5px;font-size:21px}.dl-intro{min-height:0}.dl-status{max-width:none}.dl-controls{flex-direction:column-reverse;align-items:stretch;gap:9px}.dl-controls .dl-next{width:100%;min-height:44px}.dl-status{text-align:center}}@container driver-workbench (width<=350px){.dl-settings{grid-template-columns:1fr 1fr;align-items:stretch;gap:6px;display:grid}.dl-switch{grid-template-columns:1fr;padding:2px;display:grid}.dl-switch button{min-height:31px;padding:4px 6px;font-size:12px}.dl-steps{gap:5px}.dl-steps button{font-size:10px}.dl-layer-name strong{font-size:12px}.dl-layer-name small{font-size:9px}.driver-lab .dl-layer{gap:7px;padding-inline:7px}.dl-layer-icon{width:17px}.dl-chip{width:27px;height:31px;margin-right:1px}.dl-arch{padding:4px;font-size:7px}.dl-query{padding:9px;font-size:8px}.dl-process{padding:8px}.dl-intro h4{font-size:26px}.dl-process-label{font-size:7px}.dl-wire-icon{font-size:10px}.dl-wire-label{font-size:7px}.dl-wire-packet,.dl-wire-rows{padding:3px 5px;font-size:6px}.dl-wire-tokens li{padding:2px 5px;font-size:6px}}@container driver-workbench (width>=850px){.dl-heading{margin-bottom:16px}.dl-eyebrow,.dl-simulation{font-size:10px}.dl-intro{min-height:0;margin-bottom:22px}.dl-intro h4{margin-bottom:11px;font-size:clamp(37px,4cqi,52px)}.dl-intro p{max-width:850px;font-size:17px}.dl-settings{margin-bottom:20px}.dl-switch button{padding:8px 16px;font-size:15px}.dl-steps{gap:15px;margin-bottom:25px}.dl-steps button{font-size:14px}.dl-step-number{font-size:10px}.dl-workspace{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:38px}.dl-process{border-radius:13px;padding:16px}.dl-process-label{padding-bottom:10px;font-size:11px}.dl-wire{padding-bottom:40px}.dl-wire-edges{font-size:9px}.dl-wire-icon{font-size:15px}.dl-wire-label{font-size:11px}.dl-wire-packet,.dl-wire-rows{padding:5px 10px;font-size:10px}.dl-wire-rows{margin-top:26px}.dl-wire-tokens li{padding:4px 9px;font-size:10px}.driver-lab .dl-layer{border-radius:7px;gap:14px;padding:12px 15px}.driver-lab .dl-app{border-radius:0}.dl-layer-name strong{font-size:18px}.dl-layer-name small{font-size:13px}.dl-driver .dl-layer-name small{font-size:9px}.dl-arch{padding:6px 8px;font-size:11px}.dl-layer-icon{width:26px;font-size:25px}.dl-chip{width:41px;height:43px}.dl-chip>span{font-size:11px}.dl-query{padding:14px 18px;font-size:12px}.dl-connector{height:22px}.dl-connector>span{font-size:9px}.dl-network{padding-block:13px;font-size:11px}.dl-network small,.dl-remote{font-size:9px}.dl-database-icon{width:32px;height:37px}.driver-lab .dl-diagram-hint{margin-top:10px;font-size:12px}.dl-reading{gap:24px;padding-top:26px}.dl-diagnostic{gap:13px;padding:18px}.dl-diagnostic strong{font-size:18px}.dl-diagnostic small{font-size:14px}.dl-diagnostic-icon{font-size:20px}.dl-inspector>.dl-eyebrow{font-size:9px}.dl-inspector h5{margin-top:11px;font-size:31px}.dl-inspector p{max-width:470px;margin-top:13px;font-size:16px;line-height:1.5}.dl-api{margin-top:16px;padding:12px;font-size:11px}.dl-source{margin-top:11px;font-size:12px}.dl-port-plan>.dl-eyebrow{font-size:9px}.dl-port-plan li{gap:12px;padding-block:12px}.dl-port-plan strong{font-size:16px}.dl-port-plan small{font-size:13px}.dl-check-mark{width:23px;height:23px;font-size:10px}.dl-result-head{padding:13px 16px;font-size:16px}.dl-result-head>span:last-child{font-size:11px}.dl-result table{font-size:13px}.dl-result caption{padding:12px 16px 6px;font-size:12px}.dl-result th,.dl-result td{padding:10px 16px}.dl-result th{font-size:11px}.dl-result p{padding:12px 16px;font-size:13px}.dl-controls{margin-top:25px;padding-top:19px}.dl-status{max-width:440px;font-size:10px}.driver-lab .dl-next{gap:30px;min-height:48px;padding:13px 20px;font-size:16px}.dl-notes{margin-top:16px;font-size:13px}.dl-notes p{font-size:14px}}@media (width<=900px){[data-chapter=drivers] .stage{padding:18px 0 15px}}@media (prefers-reduced-motion:reduce){.driver-lab,.driver-lab *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
