:root{--lt-blue:#3f7fbd;--lt-deep:#2f6faa;--lt-pale:#eaf6ff;--lt-line:#b8d7e8;--lt-link:#0372a6;--lt-text:#000}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#fff;color:var(--lt-text);font:16px/1.48 "Atkinson Hyperlegible",Tahoma,Arial,serif}
a{color:var(--lt-link);text-decoration:none}
a:hover{text-decoration:underline}
.skip{position:absolute;left:-999px;top:auto}
.skip:focus{left:38px;top:8px;background:#fff;padding:8px;z-index:20}
.side-rail{position:fixed;left:0;top:0;bottom:0;width:24px;background:#3f7fbd;color:#fff;z-index:10;display:flex;flex-direction:column;justify-content:space-around;align-items:center;border-right:1px solid #2f6faa}
.side-rail span{writing-mode:vertical-rl;transform:rotate(180deg);font-weight:700;font-size:13px;letter-spacing:.01em}
.top-notice{height:58px;background:#eef8ff;border-bottom:1px solid var(--lt-line);display:flex;align-items:center;justify-content:center;gap:4px;text-align:center;font-weight:700;color:#111;padding:0 20px}
.site-head{border-bottom:1px solid #94b7c9;background:#fff}
.head-inner{max-width:1280px;margin:0 auto;padding:8px 0 10px}
.brand{display:block;width:365px;max-width:72vw;height:auto}
.reader-link{display:inline-flex;align-items:center;gap:6px;color:#345b75;font-size:13px;margin:4px 0 0 12px}
.utility{background:#ddd;border-bottom:1px solid #9db4bf}
.utility-inner{max-width:1280px;height:60px;margin:0 auto;display:flex;align-items:center;justify-content:flex-start;gap:10px}
.launch{width:36px;height:36px;border:0;border-radius:4px;background:#fff;color:#387bb5;box-shadow:0 1px 2px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;padding:0}
.launch img{width:18px;height:32px;display:block}
.launch .rocket{font-size:20px;line-height:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.search{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.search input{width:225px;height:36px;border:1px solid #bfc7cf;border-radius:4px;padding:0 12px;color:#555;background:#fff;font:19.2px/1.2 "Atkinson Hyperlegible",Tahoma,Arial,serif}
.signin{display:flex;align-items:center;gap:6px;color:#333;font-size:16px;margin-left:auto;width:110px}
.crumbbar{background:#eef8ff;border-bottom:1px solid #b8d7e8}
.crumb-inner{max-width:1280px;margin:0 auto;min-height:44px;display:flex;align-items:center;gap:10px;color:#4c7898;font-size:14px}
.crumb-inner .contents{font-weight:700}
.crumb-inner a,.crumb-inner span{display:inline-flex;align-items:center;gap:6px}
.crumb-inner .sep{color:#8aa8ba}
.page{margin-left:0}
.page-inner{max-width:1280px;margin:0 auto;padding:24px 0 0}
.title-row{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #e5e7eb;margin-bottom:55px;gap:24px}
.title-row>div{flex:1}
h1{font-size:27.2px;line-height:25px;color:#0372a6;font-weight:400;margin:4px 0;padding:0 0 6.8px}
.modified{font-size:13px;color:#666;margin:0 0 12px 10px}
.modified b{color:#111}
.source-provenance{font-size:13px;color:#4b5563;margin:0 0 14px 10px}
.donate{margin-top:34px;background:#4d7d1d;color:#fff;border:0;border-radius:3px;padding:8px 13px;font-weight:700;font-size:12px}
main{min-height:560px}
main :is(h2,h3,h4){color:#0372a6}
main p{font-size:17.6px;line-height:1.5;margin:12.8px 0}
main img{max-width:100%;height:auto}
main table{border-collapse:separate;border-spacing:0;font-size:16px;line-height:1.2}
main td,main th{border:1px solid #111;padding:16px;font-size:16px;line-height:1.2;vertical-align:middle}
main table.mt-responsive-table{width:100%}
main ul,main ol{margin:16px 0;padding-left:24px}
main li{font-size:17.6px;line-height:1.4;margin:4.4px 0}
main h2{font-size:24px!important;line-height:1.2!important;margin:24px 0 0!important}
main h3{font-size:20.8px!important;line-height:1.2!important;margin:20.8px 0 0!important}
main :is(.box-objectives,.box-example,.box-exercise,.box-note){background:#f1f9fe!important;border-left:4px solid #127abf!important;margin:12.8px 0!important;padding:0 10px 1px!important;display:block!important;clear:both!important}
main :is(.box-objectives,.box-example,.box-exercise,.box-note)>.mt-section{margin:0!important;padding:0!important}
main :is(.box-objectives,.box-example,.box-exercise,.box-note) .box-legend{color:#0372a6!important;font-size:24px!important;line-height:1.2!important;font-weight:700!important;margin:24px 0 0!important;padding:0!important}
main :is(.box-objectives,.box-example,.box-exercise,.box-note) .box-legend .lt-icon-default{color:inherit!important;font:inherit!important}
main .mt-align-center{text-align:center!important}
main .mt-align-left{text-align:left!important}
main .mt-align-right{text-align:right!important}
main figure{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto 4.8px}
main figure img{display:inline-block}
main figcaption{font-size:16px;line-height:20px;color:#444;margin:4.8px 0;text-align:center}
main .source-content-main{display:block}
main .source-accessibility-footer{margin:12px 0 0;padding:0}
main .source-accessibility-footer p{font-size:13px;line-height:1.5;margin:12.8px 0}
main .source-accessibility-footer small{font-size:100%}
main mjx-container[jax="SVG"][display="true"]{display:block;text-align:center;margin:1em 0;font-size:85%;line-height:1.2}
main mjx-container[jax="SVG"]>svg{overflow:visible}
main .mt-dekiscript-error{display:none!important}
main .mt-video-widget{margin-left:auto!important;margin-right:auto!important}
main .mt-video-width-55{width:55%!important}
main iframe[style*="position: absolute"]{left:0!important;top:0!important}
main .youtubeImageContainer{display:none!important}
main img.right,main .internal.right{float:right;margin:0 0 18px 26px}
main img.left,main .internal.left{float:left;margin:0 26px 18px 0}
main .mt-section:after{content:"";display:block;clear:both}
main .mt-topic-hierarchy-listings.mt-guide-listings{list-style:none!important;margin:42px 0 0!important;padding:0 24px!important;display:grid!important;grid-template-columns:repeat(2,598px)!important;column-gap:18px!important;row-gap:36px!important;align-items:start!important;justify-content:start!important}
main .mt-topic-hierarchy-listings.mt-guide-listings>li{margin:0!important;padding:0!important}
main .mt-topic-hierarchy-listings.mt-guide-listings .mt-listing-detailed{margin:0!important;padding:0 0 0 32px!important;position:relative!important}
main .mt-topic-hierarchy-listings.mt-guide-listings .mt-listing-detailed-title{margin:0 0 8px!important;padding:0!important;font-size:21px!important;line-height:1.25!important;font-weight:500!important;color:#2f7293!important}
main .mt-topic-hierarchy-listings.mt-guide-listings .mt-listing-detailed-title:before{content:"";position:absolute;left:0;top:2px;width:18px;height:23px;border:2px solid #777;border-radius:1px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 4px,#777 4px,#777 5px,transparent 5px,transparent 8px)}
main .mt-topic-hierarchy-listings.mt-guide-listings .mt-listing-detailed-title a{color:#2f7293!important;font-weight:500!important;text-decoration:none!important}
main .mt-topic-hierarchy-listings.mt-guide-listings .mt-listing-detailed-overview{margin:0!important;padding:0!important;color:#111!important;font-size:17px!important;line-height:1.42!important}
main .ch-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:16px!important;margin:18px 0 20px!important}
main .ch-card{border:2px dashed #ccc!important;border-radius:0!important;padding:20px!important;text-align:center!important;min-height:156px!important;background:#fff!important}
main .ch-card .ico{width:160px!important;height:96px!important;margin:0 auto 12px!important;background:#eaf6ff!important;border-radius:3px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:30px!important;color:#0089c4!important}
main .ch-card a{font-size:14px!important;color:#276d9a!important;font-weight:500!important}
/* CXone's chapter tiles (a book or chapter landing page). The same card look as
   .ch-grid above, so a cloned book and a hand-built demo course sit side by side. */
main .mt-sortable-listings-container{list-style:none!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:16px!important;margin:18px 0 20px!important;padding:0!important}
main .mt-sortable-listing{margin:0!important;padding:0!important;border:2px dashed #ccc!important;min-height:156px!important;background:#fff!important}
main .mt-sortable-listing:hover{border-color:#276d9a!important}
main .mt-sortable-listing-link{display:block!important;padding:20px!important;text-align:center!important;font-size:14px!important;color:#276d9a!important;font-weight:500!important;text-decoration:none!important}
main .mt-sortable-listing-image{display:flex!important;align-items:center!important;justify-content:center!important;width:160px!important;height:96px!important;margin:0 auto 12px!important;background:#eaf6ff!important;border-radius:3px!important;overflow:hidden!important;font-size:12px;color:#40596b}
main .mt-sortable-listing-image img{width:100%!important;height:100%!important;object-fit:cover!important;margin:0!important;float:none!important}
main .mt-sortable-listing-title{display:block!important}
.site-foot{background:#eef8ff;border-top:1px solid #6fc2d4;margin-top:40px;min-height:164px}
.foot-inner{max-width:1280px;margin:0 auto;padding:20px 0;color:#111;font-size:14px}
.sponsors{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 48px;margin-top:22px;align-items:center;min-height:34px}
.sponsors span{font-weight:700;color:#40596b;font-size:13px;white-space:nowrap}
.corner-tools{position:fixed;right:8px;top:0;width:24px;display:flex;flex-direction:column;gap:8px;z-index:10}
.corner-tools span{width:23px;height:23px;background:#fff;border:1px solid #cfd8df;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#777;font-size:14px}
@media(max-width:900px){
  .side-rail,.corner-tools{display:none}
  .head-inner,.utility-inner,.crumb-inner,.page-inner,.foot-inner{padding-left:18px;padding-right:18px}
  .utility-inner{justify-content:flex-start}
  .signin{margin-left:auto}
  .title-row{margin-bottom:28px}
  main .mt-topic-hierarchy-listings.mt-guide-listings{grid-template-columns:1fr!important;padding:0!important}
  main .ch-grid{grid-template-columns:repeat(2,1fr)!important}
  main .mt-sortable-listings-container{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:560px){
  .top-notice{height:auto;min-height:46px;font-size:13px}
  .brand{width:310px}
  .search{display:none}
  .crumb-inner{flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
  .title-row{display:block}
  .donate{margin:0 0 16px 0}
  main .ch-grid{grid-template-columns:1fr!important}
}

/* MathJax emits a hidden MathML copy of every expression for screen readers and
   hides it with a stylesheet it injects at runtime. This site's CSP (style-src
   without unsafe-inline) blocks that injection, so the copy rendered ON SCREEN
   as a stacked column beside each equation. These are MathJax 3.2.2's own
   rules, served from a file so the CSP allows them. The element stays in the
   DOM so assistive technology still works; only its layout is corrected. */
mjx-assistive-mml{position:absolute!important;top:0;left:0;clip:rect(1px,1px,1px,1px);padding:1px 0 0 0!important;border:0!important;display:block!important;width:auto!important;overflow:hidden!important}
mjx-assistive-mml[display="block"]{width:100%!important}