:root{--ink:#202b30;--muted:#677174;--paper:#fff;--panel:#f4f5f6;--line:#e0e2e5;--accent:#243f68;--code:#f0f1f2;--size:19px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:var(--size);line-height:1.78}a{color:var(--accent);text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}a,button,input,select{outline-offset:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:15px;top:10px;background:white;z-index:100;padding:10px}.topbar{height:70px;position:fixed;inset:0 0 auto;z-index:20;border-bottom:1px solid var(--line);background:var(--paper);display:flex;align-items:center;gap:18px;padding:0 28px}.brand{font-size:13px;letter-spacing:.12em;font-weight:700;text-decoration:none;color:var(--ink)}.topbar .byline{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:18px}.tools{margin-left:auto;display:flex;gap:12px;align-items:center}.tools a,.tools select,.tools button{font-size:13px;background:none;border:1px solid var(--line);border-radius:6px;padding:5px 10px;color:var(--ink);text-decoration:none}.sidebar{position:fixed;top:70px;bottom:0;width:280px;overflow:auto;border-right:1px solid var(--line);padding:28px 20px;background:var(--paper)}.series-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}.sidebar h2{font-size:19px;line-height:1.4;margin:10px 0 24px}.sidebar input{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:14px;background:var(--panel);color:var(--ink)}.sidebar nav a{display:block;color:var(--muted);font-size:13px;line-height:1.5;padding:9px 10px;border-radius:6px;text-decoration:none;margin:2px 0}.sidebar nav a.active{color:var(--accent);background:#eaedf2;font-weight:650}.sidebar nav .group{font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin:24px 10px 10px;color:var(--muted)}.sidebar .source-link{font-size:12px;display:block;margin:25px 10px}.search-results a{display:block;font-size:13px;line-height:1.45;padding:9px 0}.search-results{margin-top:12px}.layout{margin-left:280px;padding:112px 64px 70px}main{max-width:820px;margin:auto}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}article h1{font-size:42px;line-height:1.2;letter-spacing:-.035em;margin:0 0 35px;font-weight:730}article h2{font-size:28px;line-height:1.35;letter-spacing:-.015em;margin:58px 0 20px;padding-top:12px;border-top:1px solid var(--line)}article h3{font-size:21px;line-height:1.45;margin:34px 0 15px}article p{margin:0 0 20px}article ul,article ol{padding-left:27px;margin:18px 0 26px}article li{padding-left:5px;margin:7px 0}article strong{font-weight:650}article hr{border:0;border-top:1px solid var(--line);margin:45px 0}blockquote{border-left:3px solid #8297b6;background:#f3f5f7;padding:18px 24px;margin:25px 0;border-radius:0 8px 8px 0}blockquote p:last-child{margin-bottom:0}pre{background:var(--code);padding:24px 26px;border:1px solid var(--line);border-radius:16px;overflow:auto;font-size:15px;line-height:1.65;tab-size:4;margin:25px 0}code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.87em}p code,li code{background:var(--panel);padding:2px 5px;border-radius:4px}pre code{font-size:inherit;background:none;padding:0}.sourceCode span.kw{color:#7b3294}.sourceCode span.st{color:#2b4977}.sourceCode span.dv{color:#9b5b24}table{border-collapse:collapse;width:100%;margin:26px 0 32px;font-size:16px;line-height:1.6}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:650;background:var(--panel)}figure{margin:32px 0;border:1px solid var(--line);border-radius:14px;padding:20px;background:#fdfdfe}figure img{max-width:100%;height:auto;display:block;margin:auto}figure figcaption{font-size:14px;line-height:1.5;color:var(--muted);margin-top:16px;text-align:left}p:has(>img){text-align:center}article>p>img{max-width:100%;height:auto}math[display=block],.math.display{display:block;text-align:center;padding:18px 0;font-size:1.2em;overflow:auto}.page-nav{margin-top:60px;border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;gap:20px}.page-nav a{font-size:14px;max-width:45%;text-decoration:none}.book-footer{font-size:12px;color:var(--muted);margin-top:50px;border-top:1px solid var(--line);padding-top:20px}.chapter-toc{border:1px solid var(--line);padding:22px 25px;border-radius:10px;background:var(--panel);margin-bottom:35px}.chapter-toc summary{font-size:15px;font-weight:650;cursor:pointer}.chapter-toc a{display:block;font-size:14px;line-height:1.6;margin:7px 0}.menu{display:none}.cover{background:#eef0f4;border:1px solid #d9dee6;border-radius:16px;padding:45px;margin-bottom:30px}.cover .book-number{letter-spacing:.2em;font-size:11px;color:var(--accent)}.cover h1{margin-top:20px;font-size:45px}.cover .author{font-size:21px;margin-top:30px}.reading-links{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.reading-links a{padding:9px 16px;border:1px solid var(--line);border-radius:7px;font-size:14px;text-decoration:none}.reading-links a.primary{background:var(--accent);color:white}.search-empty{font-size:13px;color:var(--muted)}.dark{--ink:#e8eaed;--muted:#aaafb6;--paper:#181c21;--panel:#23272d;--line:#383e48;--accent:#9eb3d2;--code:#24282d}.dark blockquote,.dark .cover,.dark figure{background:#20262f}.dark .sidebar nav a.active{background:#2b333f}.print-only{display:none}
@media(min-width:1550px){.layout{padding-left:100px;padding-right:100px}main{max-width:850px}}@media(max-width:1050px){.sidebar{width:240px}.layout{margin-left:240px;padding:105px 35px 50px}.topbar .byline{display:none}article h1{font-size:36px}}@media(max-width:760px){.topbar{padding:0 16px;height:62px;gap:10px}.brand{font-size:10px;max-width:155px}.menu{display:inline-block;font-size:20px;border:0;background:none;color:var(--ink)}.sidebar{top:62px;z-index:19;transform:translateX(-101%);width:285px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.layout{margin-left:0;padding:92px 23px 45px}.tools{gap:6px}.tools a,.tools select,.tools button{font-size:11px;padding:4px 7px}.tools select{display:none}body{font-size:17px}article h1,.cover h1{font-size:33px}article h2{font-size:25px}pre{padding:18px;font-size:13px}table{font-size:13px}th,td{padding:10px 7px}.cover{padding:25px}.chapter-toc{padding:16px}}
@page{size:177.8mm 254mm;margin:19mm 19mm 20mm 21mm}@media print{html,body{background:white!important;color:#17191c!important;font-size:10.5pt;line-height:1.57;font-family:Georgia,"Times New Roman",serif}.topbar,.sidebar,.chapter-toc,.page-nav,.book-footer,.eyebrow,.no-print,.reading-links{display:none!important}.layout{margin:0;padding:0}main{max-width:none}article h1{font-family:Arial,sans-serif;font-size:26pt;line-height:1.2;margin:0 0 24pt}article h2{font-family:Arial,sans-serif;font-size:16pt;margin:24pt 0 12pt;padding-top:10pt;border:0;break-after:avoid}article h3{font-family:Arial,sans-serif;font-size:12pt;margin:17pt 0 8pt;break-after:avoid}article p{margin:0 0 9pt;orphans:3;widows:3}article ul,article ol{margin:8pt 0 12pt}article li{margin:3pt 0}pre{font-size:8pt;line-height:1.45;padding:11pt 13pt;border-radius:5pt;margin:13pt 0;white-space:pre-wrap;overflow-wrap:anywhere;break-inside:avoid;background:#f1f2f2!important}blockquote{padding:9pt 13pt;margin:12pt 0;break-inside:avoid;background:#f5f5f6!important}table{font-size:9pt;line-height:1.45;margin:12pt 0 17pt}th,td{padding:6pt 8pt}tr{break-inside:avoid}thead{display:table-header-group}figure{padding:10pt;margin:16pt 0;break-inside:avoid}figure img{max-height:165mm;max-width:100%;width:auto}figure figcaption{font-size:8pt;margin-top:7pt}a{color:inherit;text-decoration:none}article>section.book-part{break-before:page}article>section.book-part:first-child{break-before:auto}.print-title{padding-top:25mm;min-height:165mm}.print-title h1{font-size:31pt}.print-title .series-label{font-size:9pt}.print-title .author{margin-top:20mm;font-size:15pt}.print-only{display:block}.cover{background:none;border:0;padding:0}.math.display{font-size:1.1em;padding:8pt 0}span[id]{scroll-margin-top:0}}
.equation{text-align:center;margin:25px 0;padding:10px 0}.equation math{display:inline math;font-size:1.15em}@media print{.heading-lead{break-inside:avoid}.equation{margin:10pt 0;padding:5pt 0}.equation math{display:inline math;font-size:1.12em}}

/* Approved AI prompt style: prose, selectable text, visible left rule. */
.ai-prompt blockquote{border-left:3px solid #526279;background:#f3f5f7;padding:18px 24px;margin:18px 0 26px;border-radius:0 8px 8px 0;color:inherit;overflow-wrap:anywhere}.ai-prompt blockquote p:last-child{margin-bottom:0}.ai-prompt pre{white-space:pre-wrap}.dark .ai-prompt blockquote{background:#20262f;border-left-color:#9eb3d2}h4{font-size:1.05em;line-height:1.4;break-after:avoid;margin:28px 0 12px}@media print{.ai-prompt blockquote{border-left:2pt solid #666;background:#f5f5f5!important;padding:9pt 12pt;margin:10pt 0 14pt;break-inside:avoid;color:#17191c}.ai-prompt{break-inside:auto}h4{font-size:10.5pt;break-after:avoid}}

/* Approved Try It Yourself activity outline. */
.practice{border:1px solid #cbcfd4;border-radius:6px;padding:22px 26px;margin:30px 0;background:#fff;color:inherit}.practice :is(h3,h4){margin:0 0 16px;font-size:21px;line-height:1.45;break-after:avoid}.practice p:last-child{margin-bottom:0}.dark .practice{background:var(--paper);border-color:#727a87}@media(max-width:600px){.practice{padding:18px 20px}}@media print{.practice{border:.6pt solid #999;background:#fff!important;padding:11pt 13pt;margin:14pt 0;break-inside:avoid}.practice :is(h3,h4){font-size:12pt;margin:0 0 8pt;break-after:avoid}.practice p:last-child{margin-bottom:0}}

/* Instructor links contain destinations only; private content lives in the Studio. */
.has-solution{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.solution-link{display:inline-block;flex-shrink:0;border:1px solid var(--line);border-radius:5px;padding:3px 8px;font:500 11px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;text-decoration:none;color:var(--accent);background:var(--panel);white-space:nowrap}.solution-link:hover{border-color:var(--accent);text-decoration:underline}.solution-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.solution-row{text-align:right;margin:8px 0 -15px}.ai-prompt+.solution-row{margin:-12px 0 20px}.solution-row+div.sourceCode pre{margin-top:20px}@media print{.solution-link,.solution-row{display:none!important}}

p.has-solution>strong{flex:1 1 250px}

/* Screen-only chapter rail. Print and EPUB source styles are unchanged. */
@media screen{
 .chapter-outline-links a{display:block;text-decoration:none;border-left:2px solid transparent;padding:5px 10px;margin:2px 0;font-size:13px;line-height:1.45;color:var(--muted)}
 .chapter-outline-links a[data-level="3"]{padding-left:22px;font-size:12px}
 .chapter-outline-links a[data-level="4"]{padding-left:32px;font-size:12px}
 .chapter-outline-links a:hover{color:var(--accent);text-decoration:underline}
 .chapter-outline-links a[aria-current="location"]{color:var(--accent);border-left-color:var(--accent);background:var(--panel);font-weight:650}
 @media(min-width:1280px){
  body.has-chapter-outline .layout{padding-left:45px;padding-right:295px}
  body.has-chapter-outline main{max-width:820px}
  .has-chapter-outline .chapter-toc{position:fixed;right:18px;top:94px;bottom:24px;width:238px;overflow:auto;margin:0;padding:10px 12px 20px;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--paper);z-index:5;scrollbar-width:thin}
  .has-chapter-outline .chapter-toc summary{position:sticky;top:-10px;background:var(--paper);padding:8px 5px 14px;list-style:none;pointer-events:none;font-size:12px;text-transform:uppercase;letter-spacing:.07em}
  .has-chapter-outline .chapter-toc summary::-webkit-details-marker{display:none}
 }
 @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
}

@media screen{
 .web-reading-section.section-inactive{display:none}
 .web-reading-section{scroll-margin-top:95px}
 .reading-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:22px 0 26px;font-size:12px;color:var(--muted)}
 .reading-mode-bar button,.section-pager button{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--accent);font:inherit;padding:8px 12px;cursor:pointer}
 .reading-mode-bar button{white-space:nowrap}
 .section-pager{display:flex;justify-content:space-between;gap:20px;margin:36px 0;border-top:1px solid var(--line);padding-top:20px;font-size:13px;line-height:1.5}
 .section-pager[hidden]{display:none}.section-pager button{max-width:48%;text-align:left}.section-pager button:last-child{text-align:right}.section-pager button:disabled{opacity:.45;cursor:default}
 .web-reading-section h2{margin-top:30px}.web-reading-section h3{margin-top:26px}.web-reading-section p{margin-bottom:16px}
 .web-reading-section .practice{margin:24px 0;padding:18px 22px}
}
@media print{.web-reading-section.section-inactive{display:block!important}.reading-mode-bar,.section-pager{display:none!important}}

/* Deeper subtopics retain readable type in the six-section hierarchy. */
h5{font-size:1em;line-height:1.45;margin:24px 0 12px;break-after:avoid}

/* Compact Chapter 1 diagrams; preserve natural aspect ratio and mobile width. */
figure img[src$="input-processing-output.svg"]{width:600px;max-width:100%;height:auto;}
figure img[src$="museum-flowchart.svg"]{width:420px;max-width:100%;height:auto;}
figure img[src$="program-application.svg"]{width:600px;max-width:100%;height:auto;}
figure img[src$="human-ai.svg"]{width:600px;max-width:100%;height:auto;}
figure img[src$="learning-workflow.svg"]{width:520px;max-width:100%;height:auto;}
figure img[src$="ticket-interface.svg"]{width:480px;max-width:100%;height:auto;}
figure img[src$="application-roadmap.svg"]{width:520px;max-width:100%;height:auto;}
@media screen{figure:has(img[src$="museum-flowchart.svg"]),figure:has(img[src$="learning-workflow.svg"]),figure:has(img[src$="application-roadmap.svg"]){padding:12px;margin:22px 0;}}
@media print{figure img[src$="museum-flowchart.svg"]{width:79mm;max-height:105mm;}figure img[src$="learning-workflow.svg"],figure img[src$="application-roadmap.svg"]{width:100mm;max-height:90mm;}figure img[src$="ticket-interface.svg"]{width:95mm;}figure{margin:11pt 0;padding:7pt;}}

/* KCS company palette: blue primary, gold supporting accent. */
:root{--accent:#0d397a;--gold:#f6b914;--ink:#172440;--muted:#657186;--panel:#f5f8fb;--line:#dfe6ec}.dark{--accent:#9bc4ff;--paper:#101b2d;--panel:#192942;--ink:#e8eef8;--muted:#afbed3;--line:#33465e}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-color:var(--accent)}

@media print { .studio-solution-icon, .studio-solutions-access, .studio-resource-link.no-print { display: none !important; } }
