:root{--ink:#15213a;--paper:#f7f5ef;--line:#d9d5ca;--blue:#1769aa}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 Georgia,serif}.masthead,main,footer{max-width:1160px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;padding:28px;border-bottom:1px solid var(--line);font-family:Arial,sans-serif}.brand{color:var(--ink);text-decoration:none;font-size:21px;font-weight:800;letter-spacing:-.5px}.brand span{color:var(--blue)}nav{display:flex;gap:23px;align-items:center}nav a{color:var(--ink);font-size:14px;text-decoration:none}.languages{display:flex;gap:8px;font:700 11px Arial,sans-serif;letter-spacing:.04em;border-left:1px solid var(--line);padding-left:14px}.languages a{color:var(--blue)}.hero{padding:105px 28px 115px;max-width:850px}.eyebrow{font:700 12px/1.2 Arial,sans-serif;letter-spacing:.13em;color:var(--blue);margin:0 0 16px}.hero h1,.article-shell h1{font-size:clamp(43px,8vw,84px);letter-spacing:-.06em;line-height:.96;margin:0 0 30px}.hero>p:not(.eyebrow){font-size:22px;max-width:680px}.button{display:inline-block;background:var(--blue);color:white;padding:13px 20px;text-decoration:none;font:700 14px Arial,sans-serif;margin-top:15px}.article-index{padding:75px 28px;background:#fff;border-top:1px solid var(--line)}h2{font-size:37px;line-height:1.05;letter-spacing:-.035em;margin:0 0 36px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{border:1px solid var(--line);padding:26px;min-height:245px;text-decoration:none;color:var(--ink);background:#fff;transition:transform .15s}.card:hover{transform:translateY(-3px);border-color:var(--blue)}.card span{font:700 12px Arial,sans-serif;color:var(--blue)}.card h3{font-size:25px;line-height:1.12;margin:14px 0}.card p{font-size:15px;margin:0 0 18px}.card b{font:700 13px Arial,sans-serif}.principles{padding:100px 28px;max-width:850px}.principles>p:last-child{font-size:21px}.article-shell{max-width:820px;padding:76px 28px}.dek{font-size:23px;line-height:1.45}.meta{font:13px Arial,sans-serif;color:#52606f;margin:28px 0 45px}.article-content h2{font-size:30px;margin:55px 0 12px}.article-content img{max-width:100%;height:auto;border:1px solid var(--line);margin:24px 0}.article-content pre{overflow:auto;background:#172033;color:#eff6ff;padding:18px;font-size:13px;line-height:1.45}.article-content a{color:var(--blue)}.article-content li{margin-bottom:7px}.back{margin-top:60px;font-family:Arial,sans-serif}.back a{color:var(--blue)}footer{padding:36px 28px;border-top:1px solid var(--line);font-size:13px;font-family:Arial,sans-serif;color:#52606f}@media(max-width:760px){.masthead{padding:20px;align-items:flex-start;gap:14px;flex-direction:column}.masthead nav{gap:12px;flex-wrap:wrap}.languages{padding-left:10px}.hero{padding:75px 22px}.cards{grid-template-columns:1fr}.article-index,.principles,.article-shell{padding-left:22px;padding-right:22px}}
/* ArmSoM brand palette: exact primary for surfaces, darker companion for readable text. */
:root{--primary:#34C5DD;--blue:#087689;--paper:#f6fafb;--line:#d4e4e7;--brand-soft:#e7f8fb}
.brand{display:flex;flex-direction:column;gap:2px;flex-shrink:0;max-width:100%}
.brand-logo{display:block;position:relative;overflow:hidden;width:190px;height:46px}
.brand-logo img{position:absolute;width:270px;height:auto;max-width:none;left:-40px;top:-22px}
.brand .brand-caption{color:var(--ink);font:600 11px/1.4 Arial,sans-serif;letter-spacing:.025em}
.masthead{gap:24px}
/* Article discovery, keyboard navigation and responsive reading. */
:root{--muted:#52606f}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1769aa;outline-offset:4px}
.skip-link{position:absolute;top:-80px;left:20px;background:white;padding:12px;z-index:10}.skip-link:focus{top:10px}
.hero{padding:70px 28px;max-width:960px}.hero h1{font-size:clamp(42px,6vw,68px);line-height:1.04;letter-spacing:-.045em}
.home-search{margin:30px 0 22px}.home-search label,.filters label{display:block;font:700 14px Arial,sans-serif;margin-bottom:8px}
input,select,button{font:16px Arial,sans-serif;border:1px solid #9ba5b2;border-radius:6px;min-height:46px;padding:10px 12px;max-width:100%;background:white;color:var(--ink)}
input{width:100%}button{background:var(--blue);border-color:var(--blue);color:white;cursor:pointer}.secondary{background:white;color:var(--blue)}.search-row{display:flex;gap:10px}.search-row input{flex:1;min-width:0}.search-row button{white-space:nowrap}
.text-link{font:700 15px Arial,sans-serif;color:var(--blue)}.topic-section{padding:35px 28px 55px}.topic-section h2{font-size:28px;margin-bottom:22px}
.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.topic-grid a{display:flex;flex-direction:column;background:#fff;padding:18px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;font:700 16px Arial,sans-serif}.topic-grid a:hover{border-color:var(--blue)}.topic-grid small{font-weight:400;color:var(--muted);margin-top:8px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.section-heading h2{margin-bottom:12px}.section-heading p{margin-bottom:0}.article-index{padding:45px 28px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{display:flex;flex-direction:column;min-height:0;border-radius:10px;padding:23px}.card h3{font-size:23px;line-height:1.2}.card p{flex:1}.card-labels{display:flex;gap:8px;flex-direction:column}.card-labels span{font-size:11px;line-height:1.5}.card-meta{display:flex;justify-content:space-between;gap:10px;font:12px Arial,sans-serif;color:var(--muted);margin-top:8px}.card-meta span{font:12px Arial,sans-serif;color:var(--muted)}
.library-shell{padding:35px 28px 75px}.library-shell>h1{font-size:46px;line-height:1.1;margin:28px 0}.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;font:14px/1.5 Arial,sans-serif;margin-bottom:30px}.breadcrumbs a{color:var(--blue)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;padding:22px;border:1px solid var(--line);background:#fff;border-radius:10px}.filters select{width:100%}.filters button{justify-self:start}.result-status{color:var(--muted);font:14px Arial,sans-serif;margin:25px 0}.pagination{display:flex;gap:10px;justify-content:center;margin:32px 0 0}.pagination a{padding:8px 16px;border:1px solid var(--line);border-radius:6px;color:var(--blue);background:white}.pagination a[aria-current=page]{background:var(--blue);color:white;border-color:var(--blue)}
.empty-state{grid-column:1/-1;padding:30px;border:1px dashed var(--line)}.product-links{display:flex;flex-wrap:wrap;gap:8px;margin:-20px 0 30px}.product-links a{border:1px solid var(--line);border-radius:20px;padding:5px 12px;font:13px Arial,sans-serif;text-decoration:none;color:var(--blue)}
.article-shell{max-width:1000px;padding-top:35px}.article-shell h1{font-size:clamp(34px,5vw,58px);line-height:1.08;letter-spacing:-.035em}.article-content{max-width:780px;margin:0 auto}.article-content img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:contain;background:#f2f2f2}.article-content table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse}.article-content td,.article-content th{padding:8px;border:1px solid var(--line)}.related{margin-top:60px;padding-top:30px;border-top:1px solid var(--line)}.related h2{font-size:30px}.related .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.related .card h3{font-size:20px}
.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:30px 0}.route{background:white;border:1px solid var(--line);border-radius:10px;padding:24px}.route h2{font-size:25px;margin-bottom:15px}.route p{font-size:16px}.route ol{padding-left:22px}.route li{margin:18px 0;font-size:16px}.route a,footer a{color:var(--blue)}.languages a[aria-current]{text-decoration:underline;text-underline-offset:5px}
@media(max-width:960px){.cards,.related .cards,.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.masthead{gap:18px;flex-wrap:wrap}}
@media(max-width:600px){.cards,.related .cards,.route-grid,.topic-grid,.filters{grid-template-columns:1fr}.hero{padding:45px 22px}.hero>p:not(.eyebrow){font-size:19px}.section-heading{align-items:flex-start;flex-direction:column}.search-row{flex-direction:column}.library-shell,.topic-section{padding-left:22px;padding-right:22px}.library-shell>h1{font-size:34px}.article-shell .dek{font-size:20px}.article-content pre{font-size:12px}.card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.article-toc[hidden]{display:none}.article-toc{font:14px/1.5 Arial,"Microsoft YaHei",sans-serif;min-width:0;margin-bottom:24px}.article-toc details{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.article-toc summary{font-weight:700;cursor:pointer;color:var(--ink)}.article-toc nav{display:block;max-height:55vh;overflow-y:auto;overscroll-behavior:contain;margin-top:12px}.article-toc ol{list-style:none;margin:0;padding:0}.article-toc li{margin:0}.article-toc a{display:block;padding:6px 8px 6px calc(8px + var(--toc-depth)*12px);border-left:2px solid transparent;font-size:13px;overflow-wrap:anywhere}.article-toc a:hover,.article-toc a:focus-visible{background:#eef4fa;color:var(--blue)}.article-toc a[aria-current]{border-left-color:var(--blue);background:#eef4fa;color:var(--blue);font-weight:700}.article-content :is(h2,h3,h4,h5,h6){scroll-margin-top:24px}.article-reading-layout{min-width:0}.article-reading-layout>.article-content{min-width:0;width:100%}
@media(min-width:1100px){.article-shell.has-toc{max-width:1160px}.has-toc .article-reading-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}.article-toc{position:sticky;top:24px;margin-bottom:0}.article-toc nav{max-height:calc(100vh - 120px)}}
@media print{.article-toc{display:none}.has-toc .article-reading-layout{display:block}}
/* Primary-color controls keep dark text for contrast on cyan. */
.button,button,.pagination a[aria-current=page]{background:var(--primary);border-color:var(--primary);color:var(--ink)}
button.secondary{background:#fff;color:var(--blue);border-color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-color:var(--blue)}
.article-toc a:hover,.article-toc a:focus-visible,.article-toc a[aria-current]{background:var(--brand-soft)}
.board-card{border-top-color:var(--primary)}
/* Keep long technical identifiers inside narrow articles; preserve source figure proportions. */
.article-content{overflow-wrap:anywhere}
.article-shell>h1,.article-shell>.dek{overflow-wrap:anywhere}
.article-content img{aspect-ratio:auto}
.article-content table{overflow-wrap:normal}
.article-content td,.article-content th{word-break:keep-all}
.article-content pre{overflow-wrap:normal;word-break:normal}
.home-hero{max-width:none;padding:66px 40px 45px;background:linear-gradient(120deg,#eaf2f8 0%,#f7f5ef 80%);border-bottom:1px solid var(--line)}.home-hero h1{max-width:940px;font-size:clamp(36px,4.6vw,62px);line-height:1.12;letter-spacing:-.035em}.home-hero>p:not(.eyebrow){max-width:800px;font-size:20px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin:24px 0}.hero-actions .button{margin:0;border-radius:6px}.home-hero .home-search{max-width:760px}.hero-topics{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;font:12px Arial,sans-serif;color:#52606f}.hero-topics span{padding:5px 10px;border:1px solid #ccd7e1;border-radius:20px}.board-section{padding:48px 28px 55px;scroll-margin-top:20px}.board-section h2{margin-bottom:14px;font-size:34px}.board-section .section-heading{margin-bottom:24px}.board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.board-card{display:flex;flex-direction:column;min-width:0;padding:24px;background:white;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:10px;border-top:3px solid var(--blue);transition:transform .15s,border-color .15s}.board-card:hover{transform:translateY(-3px);border-color:var(--blue)}.board-card:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.board-card-top,.board-card-bottom{display:flex;justify-content:space-between;gap:12px;font:12px/1.5 Arial,sans-serif}.board-card-top{color:#52606f}.board-card-top span:last-child{color:var(--blue);font-weight:700}.board-card h3{font:700 32px/1.2 Arial,sans-serif;letter-spacing:-1px;margin:24px 0 10px}.board-card p{font-size:15px;line-height:1.6;margin:0 0 24px}.board-card-bottom{margin-top:auto;padding-top:15px;border-top:1px solid var(--line);flex-wrap:wrap}.board-card-bottom strong{color:var(--blue)}
@media(max-width:900px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{padding:42px 24px}.home-hero h1{font-size:38px}}
@media(max-width:560px){.board-grid{grid-template-columns:1fr}.board-section{padding:36px 22px}.home-hero h1{font-size:33px}.home-hero>p:not(.eyebrow){font-size:18px}.board-card{padding:20px}}
.discovery-section{padding:48px 28px;border-top:1px solid var(--line)}.discovery-section h2{font-size:34px;margin-bottom:14px}.discovery-section .section-heading{margin-bottom:24px}.task-section{background:#edf2f6}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.task-card{padding:23px;border:1px solid #d2dce6;border-radius:8px;background:white;color:var(--ink);text-decoration:none}.task-number{font:700 12px Arial,sans-serif;color:var(--blue)}.task-card h3{font-size:21px;line-height:1.3;margin:12px 0}.task-card h3 span{float:right;color:var(--blue)}.task-card p{font-size:15px;margin:0;color:#52606f}.task-card:hover,.task-card:focus-visible{border-color:var(--blue)}.guide-card{padding:0;overflow:hidden;border-radius:9px;display:flex;flex-direction:column}.guide-cover{min-height:135px;padding:20px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;background:linear-gradient(125deg,#153b60,#226f91);color:white}.guide-cover span{font:11px Arial,sans-serif;color:#d5e7f5;letter-spacing:.06em}.guide-cover strong{font:700 32px/1.2 Arial,sans-serif;color:white}.guide-card-body{padding:24px;display:flex;flex-direction:column;flex:1}.guide-products{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 18px}.guide-products span{padding:3px 8px;background:#eef3f8;border-radius:4px;font:11px Arial,sans-serif;color:#405b75}.guide-card .card-meta{margin-top:auto}.related .guide-cover{min-height:100px}.related .guide-card-body{padding:18px}@media(max-width:760px){.task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.task-grid{grid-template-columns:1fr}.discovery-section{padding:36px 22px}.discovery-section h2{font-size:28px}}
