{"id":18088,"date":"2026-10-26T21:53:10","date_gmt":"2026-10-27T01:53:10","guid":{"rendered":"https:\/\/www.squawka.com\/ca\/?post_type=news&#038;p=18088"},"modified":"2026-10-26T21:53:10","modified_gmt":"2026-10-27T01:53:10","slug":"match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls","status":"publish","type":"news","link":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/","title":{"rendered":"Portland Timbers vs Houston Dynamo: Predictions, Picks, Odds &#038; Lineups"},"content":{"rendered":"<p><strong>Portland Timbers host Houston Dynamo at Providence Park on Sunday, November 1 (9:45 PM ET \/ 8:45 PM CT \/ 6:45 PM PT).<\/strong><\/p>\n<p>There are no fresh fitness concerns flagged for either side ahead of this one, so attention turns to the players already shaping the season. For Portland Timbers, Kristoffer Velde (8 goals) and Ariel Lassiter (7 goals) carry the attacking threat, with David Pereira da Costa (5 goals, 49 chances created) the creative hub in midfield. Houston Dynamo will again lean on Guilherme Augusto Vieira dos Santos, who leads all scorers in this fixture with 16 goals, alongside Mateusz Bogusz as the other attacking-midfield outlet.<\/p>\n<p>Houston arrive fifth in the <a href=\"https:\/\/www.squawka.com\/ca\/news\/mls\/\">Western Conference<\/a> on 48 points, well placed in the playoff picture, while Portland sit 11th on 37 points and can&#8217;t afford too many more non-wins if they want to get involved. Both sides have made a habit of low-scoring, tightly contested matches recently \u2014 Portland&#8217;s goalless draw with Colorado Rapids and Houston&#8217;s 0-0 with Minnesota United both point the same way \u2014 and neither has kept things open in recent weeks. Expect a cagey Providence Park night where one moment of quality, rather than an avalanche of chances, decides it.<\/p>\n\n\n<style>\n.sq-bpg{--lime:#a8e039;--glow:#c8f24c;--tx:#f4f8f1;--mut:rgba(244,248,241,.62);--line:rgba(255,255,255,.10);--gold:#F7B500;--b365:#ffdd00;position:relative;overflow:hidden;isolation:isolate;font-family:'Bricolage Grotesque',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--tx);max-width:960px;margin:12px auto 30px;border-radius:18px;background:radial-gradient(70% 90% at 18% 0%,rgba(168,224,57,.20) 0%,rgba(168,224,57,0) 60%),linear-gradient(135deg,#0e3f29 0%,#0a2c1f 60%,#08251a 100%);box-shadow:0 18px 44px rgba(10,44,31,.32)}\n.sq-bpg *{box-sizing:border-box}\n.sq-bpg::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:url(\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20preserveAspectRatio%3D%22xMidYMid%20slice%22%20viewBox%3D%220%200%203000%203000%22%3E%3Cdefs%3E%3Cpattern%20id%3D%22a%22%20width%3D%2278%22%20height%3D%22175.5%22%20x%3D%220%22%20y%3D%220%22%20patternTransform%3D%22rotate%28-45%29%22%20patternUnits%3D%22userSpaceOnUse%22%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22m-38.22%20157.05-.78-78%2078-.78c.45%2043.12-34.12%2078.33-77.22%2078.78%22%2F%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22M77.22%200%2078%2081.6l-78%20.78C-.45%2035.67%2034.12.45%2077.22%200%22%2F%3E%3Cpath%20fill%3D%22%2303261a%22%20d%3D%22m37.78%20158.05-.78-78%2078-.78c.45%2043.12-34.12%2078.33-77.22%2078.78%22%2F%3E%3C%2Fpattern%3E%3C%2Fdefs%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E\");background-position:top left;background-size:380px 380px;opacity:.4}\n.sq-bpg__r{position:absolute;width:0;height:0;opacity:0;pointer-events:none}\n.sq-bpg__wrap{position:relative;z-index:1;padding:26px 30px 24px}\n.sq-bpg__tag{display:inline-flex;align-items:center;gap:9px;border:1.5px solid rgba(168,224,57,.55);border-radius:999px;padding:7px 16px;color:var(--lime);font-weight:800;font-size:12px;letter-spacing:2.4px;text-transform:uppercase;background:rgba(10,44,31,.4)}\n.sq-bpg__tag::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px 1px var(--glow)}\n.sq-bpg__ttl{font-size:26px;font-weight:800;letter-spacing:-.3px;line-height:1.12;margin:0;color:var(--tx)}\n.sq-bpg__sub{margin:8px 0 0;font-size:14.5px;line-height:1.5;color:var(--mut);max-width:70ch}\n.sq-bpg__perf{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}\n.sq-bpg__perf-h{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--lime)}\n.sq-bpg__chip{font-size:12.5px;color:var(--mut);background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;padding:4px 11px}\n.sq-bpg__chip b{color:var(--tx)}\n.sq-bpg__chip--big{background:var(--lime);color:#08251a;border-color:var(--lime)}\n.sq-bpg__chip--big b{color:#08251a}\n.sq-bpg__siglink{margin-left:auto;font-size:13px;font-weight:700;color:var(--lime);text-decoration:none;border-bottom:2px solid rgba(168,224,57,.35)}\n.sq-bpg__geoq{margin-top:18px;font-size:13px;font-weight:700;color:var(--tx)}\n.sq-bpg__toggle{display:flex;gap:6px;margin-top:9px}\n.sq-bpg__tab{flex:1;text-align:center;cursor:pointer;user-select:none;font-size:14.5px;font-weight:800;line-height:1.2;padding:10px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--mut);transition:.15s}\n.sq-bpg__tab span{display:block;font-size:11px;font-weight:600;margin-top:3px;opacity:.8}\n.sq-bpg__r--us:checked ~ .sq-bpg__toggle .sq-bpg__tab--us,\n.sq-bpg__r--row:checked ~ .sq-bpg__toggle .sq-bpg__tab--row{background:var(--lime);color:#08251a;border-color:var(--lime)}\n.sq-bpg__list{margin-top:16px;border-top:1px solid var(--line)}\n.sq-bpg__row{display:grid;grid-template-columns:1fr 122px;gap:14px;align-items:center;padding:15px 2px;border-bottom:1px solid var(--line)}\n.sq-bpg__pk{font-size:16px;font-weight:800;line-height:1.25;color:var(--tx)}\n.sq-bpg__top{display:inline-block;vertical-align:middle;margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#5b3b00;background:linear-gradient(90deg,#ffe07a,var(--gold));padding:3px 8px;border-radius:6px}\n.sq-bpg__why{display:block;margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--mut)}\n.sq-bpg__pr{text-align:center}\n.sq-bpg__prob{display:block;font-size:26px;font-weight:800;color:var(--lime);line-height:1}\n\/* pre-odds confidence stars (shown at launch before prices post; the numeric\n   backfill swaps this cell for the .sq-bpg__prob %% when odds fill) *\/\n.sq-bpg__stars{display:block;font-size:17px;line-height:1;letter-spacing:1px}\n.sq-bpg__stars .d{opacity:.26}\n.sq-bpg__prl{display:block;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--mut);margin-top:3px}\n.sq-bpg__odd{display:none;margin-top:7px;font-size:12.5px;font-weight:700;color:var(--tx);background:rgba(255,255,255,.08);border-radius:7px;padding:3px 8px}\n.sq-bpg__odd--soon{color:var(--mut);font-weight:600}\n.sq-bpg__r--row:checked ~ .sq-bpg__list .sq-bpg__odd{display:inline-block}\na.sq-bpg__prob,a.sq-bpg__odd{cursor:pointer}\na.sq-bpg__prob{color:var(--lime);text-decoration:none}\na.sq-bpg__prob:hover{text-decoration:underline}\na.sq-bpg__odd{text-decoration:none}\na.sq-bpg__odd:hover{filter:brightness(1.08)}\n.sq-bpg__r--row:checked ~ .sq-bpg__list a.sq-bpg__prob{pointer-events:none;cursor:default}\n.sq-bpg__approach{margin:15px 0 0;font-size:13.5px;line-height:1.55;color:var(--tx)}\n.sq-bpg__panel{display:none;margin-top:16px}\n.sq-bpg__r--us:checked ~ .sq-bpg__panel--us{display:block}\n.sq-bpg__r--row:checked ~ .sq-bpg__panel--row{display:block}\n.sq-bpg__act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}\n.sq-bpg__act-txt{flex:1;min-width:200px}\n.sq-bpg__act-txt b{display:block;font-size:16px;color:var(--tx)}\n.sq-bpg__act-txt span{display:block;font-size:13px;color:var(--mut);margin-top:2px}\n.sq-bpg__cta{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:800;text-decoration:none;padding:13px 22px;border-radius:11px;white-space:nowrap}\n.sq-bpg__cta--kal{background:linear-gradient(135deg,var(--lime),var(--glow));color:#08251a;box-shadow:0 8px 18px rgba(168,224,57,.28)}\n.sq-bpg__cta--b365{background:var(--b365);color:#1a1a1a;box-shadow:0 8px 18px rgba(0,0,0,.28)}\n.sq-bpg__altsdiv{height:1px;background:var(--line);margin:16px 0 0}\n.sq-bpg__altslead{margin:14px 0 0;font-size:13px;color:var(--mut)}\n.sq-bpg__altslead a{color:var(--lime);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(168,224,57,.35)}\n.sq-bpg__altsrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}\n.sq-bpg__altsbtn{flex:1 1 160px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:11px 16px;border-radius:11px;background:#5a26d6;border:1px solid rgba(255,255,255,.10);color:#fff;font-weight:800;font-size:14px;text-decoration:none;box-shadow:0 4px 14px rgba(90,38,214,.30);transition:.15s}\n.sq-bpg__altsbtn:hover{background:#6b34e8}\n.sq-bpg__altsbtn img{height:18px;width:auto;display:block;filter:brightness(0) invert(1);opacity:.97}\n.sq-bpg__disc{margin:12px 0 0;font-size:11.5px;line-height:1.5;color:rgba(244,248,241,.5)}\n@media(max-width:640px){\n .sq-bpg__wrap{padding:22px 16px 20px}\n .sq-bpg__ttl{font-size:21px}\n .sq-bpg__sub{font-size:14px}\n .sq-bpg__perf{gap:7px}\n .sq-bpg__siglink{margin-left:0;flex-basis:100%;margin-top:2px}\n .sq-bpg__row{grid-template-columns:1fr 96px;gap:10px}\n .sq-bpg__prob{font-size:22px}\n .sq-bpg__odd{font-size:11px;padding:2px 6px;line-height:1.3}\n .sq-bpg__act{padding:14px}\n .sq-bpg__act-txt{min-width:0}\n .sq-bpg__cta{width:100%;justify-content:center}\n .sq-bpg__altsbtn{flex:1 1 120px}\n}\n@media(max-width:400px){\n .sq-bpg__ttl{font-size:19px}\n .sq-bpg__pk{font-size:15px}\n .sq-bpg__why{font-size:12.5px}\n .sq-bpg__row{grid-template-columns:1fr 82px}\n .sq-bpg__prob{font-size:19px}\n .sq-bpg__altsbtn{flex:1 1 100%}\n}\n<\/style>\n<style>.sq-bpg--b365 .sq-bpg__odd{display:inline-flex !important}<\/style>\n\n<div class=\"sq-bpg sq-bpg--b365\" id=\"sq-bpg-portla-cmmrba6q8ao26q8ttvhvhd7v8\">\n <div class=\"sq-bpg__wrap\">\n  <h2 class=\"sq-bpg__ttl\">Portland Timbers vs Houston Dynamo: Best Bets &amp; Predictions<\/h2>\n  <p class=\"sq-bpg__sub\">Houston Dynamo&#x27;s playoff push meets a tight Portland Timbers side at Providence Park.<\/p>\n  <div class=\"sq-bpg__list\">\n    <div class=\"sq-bpg__row\" data-market=\"Result\" data-selection=\"Portland Timbers\" data-prob=\"43\" data-odds=\"\" data-confidence=\"3\">\n      <div><span class=\"sq-bpg__pk\">Portland Timbers<\/span><span class=\"sq-bpg__top\">Top pick<\/span><span class=\"sq-bpg__why\">Portland&#x27;s only win in this run came at home against Charlotte FC (3-2), and that pattern of needing Providence Park to generate results points to a narrow Timbers win here too.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"\/en\/go\/bet365?q=ca-all-tmp-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">43%<\/a><span class=\"sq-bpg__prl\">win prob.<\/span><span class=\"sq-bpg__odd sq-bpg__odd--soon\">opening soon @ bet365<\/span><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Correct Score\" data-selection=\"Portland Timbers 1-0 Houston Dynamo\" data-prob=\"9\" data-odds=\"\" data-confidence=\"3\">\n      <div><span class=\"sq-bpg__pk\">Portland Timbers 1-0 Houston Dynamo<\/span><span class=\"sq-bpg__why\">Portland&#x27;s -4 goal difference this season and Houston&#x27;s defensively tight recent draws (0-0, 2-2, 3-3, 2-2) both suggest few clear chances, which fits a narrow 1-0 Timbers win.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"\/en\/go\/bet365?q=ca-all-tmp-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">9%<\/a><span class=\"sq-bpg__prl\">chance<\/span><span class=\"sq-bpg__odd sq-bpg__odd--soon\">opening soon @ bet365<\/span><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Both Teams to Score\" data-selection=\"No\" data-prob=\"43\" data-odds=\"\" data-confidence=\"3\">\n      <div><span class=\"sq-bpg__pk\">No<\/span><span class=\"sq-bpg__why\">Houston&#x27;s goalless draw with Minnesota United and Portland&#x27;s 0-0 with Colorado Rapids both show either side can go quiet in front of goal, supporting a BTTS No.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"\/en\/go\/bet365?q=ca-all-tmp-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">43%<\/a><span class=\"sq-bpg__prl\">chance<\/span><span class=\"sq-bpg__odd sq-bpg__odd--soon\">opening soon @ bet365<\/span><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Over 2.5 Goals\" data-selection=\"Under 2.5\" data-prob=\"47\" data-odds=\"\" data-confidence=\"3\">\n      <div><span class=\"sq-bpg__pk\">Under 2.5<\/span><span class=\"sq-bpg__why\">Portland&#x27;s -4 goal difference and a string of low-scoring draws for Houston (0-0, 2-2, 2-2) point to a tight match that fits the Under 2.5 pick.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><a class=\"sq-bpg__prob\" href=\"\/en\/go\/bet365?q=ca-all-tmp-wof-s-spo\" rel=\"sponsored nofollow noopener\" target=\"_blank\">47%<\/a><span class=\"sq-bpg__prl\">chance<\/span><span class=\"sq-bpg__odd sq-bpg__odd--soon\">opening soon @ bet365<\/span><\/div>\n    <\/div>\n    <div class=\"sq-bpg__row\" data-market=\"Anytime Goalscorer\" data-selection=\"Kristoffer Velde\" data-prob=\"\" data-odds=\"\" data-confidence=\"3\" data-player-id=\"f1zilbsvn2cftezzxdiex51pl\">\n      <div><span class=\"sq-bpg__pk\">Anytime Goalscorer &#8211; Kristoffer Velde<\/span><span class=\"sq-bpg__why\">Kristoffer Velde leads Portland with 8 goals from 100 shots, making him their most likely source of a goal.<\/span><\/div>\n      <div class=\"sq-bpg__pr\"><span class=\"sq-bpg__stars\" role=\"img\" aria-label=\"Confidence 3 of 5\">\u2b50\u2b50\u2b50<span class=\"d\">\u2b50\u2b50<\/span><\/span><span class=\"sq-bpg__prl\">chance<\/span><span class=\"sq-bpg__odd sq-bpg__odd--soon\">opening soon @ bet365<\/span><\/div>\n    <\/div>\n  <\/div>\n  <p class=\"sq-bpg__approach\">Our approach: Signal weighs current form, standings position, and underlying shot and chance-creation numbers from both squads to land on these picks, then we build the stats case for each.<\/p>\n  <div class=\"sq-bpg__panel sq-bpg__panel--row\" style=\"display:block\">\n    <div class=\"sq-bpg__act\">\n      <div class=\"sq-bpg__act-txt\"><b>Back these with bet365<\/b><span>Odds shown in American format; your local odds may vary.<\/span><\/div>\n      <a class=\"sq-bpg__cta sq-bpg__cta--b365\" href=\"\/en\/go\/bet365?q=ca-all-tmp-wof-s-spo\" rel=\"sponsored nofollow\" target=\"_blank\">Bet with bet365 &rarr;<\/a>\n      <a class=\"sq-bpg__review\" href=\"https:\/\/www.squawka.com\/ca\/bet\/betting-sites\/bet365\/\">bet365 review<\/a>\n    <\/div>\n    <p class=\"sq-bpg__disc\">Odds correct at time of writing and shown in American format for illustration; your local odds may vary. 19+ (18+ in AB\/MB\/QC). Please play responsibly. ConnexOntario: 1-866-531-2600 (ON).<\/p>\n  <\/div>\n <\/div>\n<\/div>\n\n\n<h2>Season Form &amp; Standings<\/h2>\n<style>\n.sq-standings table{width:100%;border-collapse:collapse;table-layout:auto}\n.sq-standings th,.sq-standings td{text-align:center;padding:8px 10px;white-space:nowrap;vertical-align:middle}\n.sq-standings th:first-child,.sq-standings td:first-child{text-align:left}\n@media (max-width:600px){\n  .sq-standings{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}\n  .sq-standings table{min-width:560px}\n  .sq-standings th,.sq-standings td{padding:6px 8px;font-size:13px}\n}\n<\/style>\n\n<p>Houston Dynamo sit fifth in the Western Conference with 48 points, firmly in the playoff picture, while Portland Timbers are 11th on 37 points, well adrift of that pace.<\/p>\n\n<p><strong>Western Conference<\/strong><\/p>\n<figure class=\"wp-block-table sq-standings\"><table>\n<thead>\n<tr><th>Team<\/th><th>Pos<\/th><th>GP<\/th><th>W<\/th><th>D<\/th><th>L<\/th><th>GF<\/th><th>GA<\/th><th>GD<\/th><th>Pts<\/th><\/tr>\n<\/thead>\n<tbody>\n<tr><td>Houston Dynamo<\/td><td>5<\/td><td>31<\/td><td>13<\/td><td>9<\/td><td>9<\/td><td>41<\/td><td>39<\/td><td>+2<\/td><td>48<\/td><\/tr>\n<tr><td>Portland Timbers<\/td><td>11<\/td><td>31<\/td><td>10<\/td><td>7<\/td><td>14<\/td><td>54<\/td><td>58<\/td><td>-4<\/td><td>37<\/td><\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<!-- SQ-LINEUPS-START -->\n\n\n<div class=\"sq-teamnews sq-teamnews--theme-mls sq-teamnews--predicted sq-teamnews--state-predicted\">\n<style>\n.sq-teamnews,.sq-teamnews *{box-sizing:border-box}\n.sq-teamnews{\n  \/* \u2500\u2500 THEME TOKENS \u2014 only these values change per competition \u2500\u2500 *\/\n  --sq-primary:#1B5E3B;      \/* forest green \u2014 accents, formation chip        *\/\n  --sq-accent:#A8E039;       \/* electric lime \u2014 chevron + confirmed pill      *\/\n  --sq-accent-2:#C8F24C;     \/* brighter lime \u2014 chevron highlight             *\/\n  --sq-gold:#F0B429;         \/* gold \u2014 goalkeeper jersey + note markers       *\/\n  --sq-ink:#16201b;          \/* body text                                     *\/\n  --sq-surface:#ffffff;      \/* card background                               *\/\n  --sq-ground:#F4F6F2;       \/* inset background                              *\/\n  --sq-line:#E4E7E2;         \/* hairline borders                             *\/\n  --sq-muted:#6B7770;        \/* caveat \/ footnote text                       *\/\n  --sq-headA:#0e3f29; --sq-headB:#08251a;  \/* header gradient stops          *\/\n  --sq-turfA:#1c7d4b; --sq-turfB:#125e37;  \/* pitch gradient stops           *\/\n  \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  font-family:inherit;\n  color:var(--sq-ink);background:var(--sq-surface);\n  border:1px solid var(--sq-line);border-radius:16px;overflow:hidden;\n  box-shadow:0 18px 42px -30px rgba(14,36,25,.55);\n  max-width:100%;line-height:1.4;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;\n  margin:24px 0 32px;\n}\n\/* \u2500\u2500 header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__head{position:relative;overflow:hidden;padding:16px 18px 15px;\n  background:linear-gradient(105deg,var(--sq-headA) 0%,var(--sq-headB) 100%);\n  border-left:5px solid var(--sq-accent);color:#f4f8f1;}\n.sq-teamnews__head::before{content:\"\";position:absolute;inset:0;opacity:.06;pointer-events:none;\n  background-size:560px 560px;\n  background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 3000 3000' preserveAspectRatio='xMidYMid slice'><defs><pattern id='a' width='78' height='175.5' patternTransform='rotate(-45)' patternUnits='userSpaceOnUse'><path fill='%23ffffff' d='m-38.22 157.05-.78-78 78-.78c.45 43.12-34.12 78.33-77.22 78.78'\/><path fill='%23ffffff' d='M77.22 0 78 81.6l-78 .78C-.45 35.67 34.12.45 77.22 0'\/><path fill='%23ffffff' d='m37.78 158.05-.78-78 78-.78c.45 43.12-34.12 78.33-77.22 78.78'\/><\/pattern><\/defs><rect width='100%25' height='100%25' fill='url(%23a)'\/><\/svg>\");}\n.sq-teamnews__brandrow{position:relative;display:flex;align-items:center;gap:9px;margin-bottom:10px;}\n.sq-teamnews__chev{width:19px;height:19px;flex:none;display:block;}\n.sq-teamnews__kicker{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--sq-accent-2);}\n.sq-teamnews__pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;\n  letter-spacing:.12em;text-transform:uppercase;font-weight:800;padding:5px 11px;border-radius:999px;white-space:nowrap;}\n.sq-teamnews__pill-dot{width:6px;height:6px;border-radius:50%;flex:none;}\n.sq-teamnews--predicted .sq-teamnews__pill{background:rgba(240,180,41,.16);color:var(--sq-gold);border:1px solid rgba(240,180,41,.5);}\n.sq-teamnews--predicted .sq-teamnews__pill-dot{background:var(--sq-gold);}\n.sq-teamnews--confirmed .sq-teamnews__pill{background:var(--sq-accent);color:var(--sq-headB);border:1px solid var(--sq-accent);}\n.sq-teamnews--confirmed .sq-teamnews__pill-dot{background:var(--sq-headB);}\n.sq-teamnews__h2{position:relative;margin:0;font-size:18px;line-height:1.15;font-weight:800;letter-spacing:-.015em;color:#fff;text-wrap:balance;}\n\/* \u2500\u2500 caveat \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__caveat{display:flex;gap:8px;align-items:flex-start;margin:0;padding:11px 18px;\n  background:var(--sq-ground);border-bottom:1px solid var(--sq-line);\n  font-size:12px;line-height:1.45;color:var(--sq-muted);font-style:italic;}\n.sq-teamnews__caveat svg{flex:none;margin-top:1px;opacity:.8;}\n\/* \u2500\u2500 teams grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__teams{display:grid;grid-template-columns:1fr;gap:16px;padding:16px;}\n.sq-teamnews__team{min-width:0;}\n.sq-teamnews__teamhead{display:flex;align-items:center;gap:10px;margin-bottom:10px;}\n.sq-teamnews__crest{width:32px;height:32px;flex:none;border-radius:7px;overflow:hidden;object-fit:cover;\n  background:var(--sq-ground);box-shadow:inset 0 0 0 1px var(--sq-line);}\n.sq-teamnews__name{flex:1;margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em;}\n.sq-teamnews__formation{flex:none;font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--sq-primary);\n  background:rgba(27,94,59,.09);border:1px solid rgba(27,94,59,.2);border-radius:7px;padding:4px 9px;}\n\/* \u2500\u2500 the pitch \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__pitch{position:relative;overflow:hidden;border-radius:11px;min-height:330px;\n  background:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 12.5%,rgba(0,0,0,.05) 12.5% 25%),\n    linear-gradient(180deg,var(--sq-turfA) 0%,var(--sq-turfB) 100%);\n  box-shadow:inset 0 0 0 2px rgba(255,255,255,.14),0 6px 18px -12px rgba(14,36,25,.5);}\n.sq-teamnews__pk{position:absolute;pointer-events:none;}\n.sq-teamnews__pk--half{left:7%;right:7%;top:50%;border-top:2px solid rgba(255,255,255,.18);}\n.sq-teamnews__pk--circle{left:50%;top:50%;width:86px;height:86px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.18);border-radius:50%;}\n.sq-teamnews__pk--spot{left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);background:rgba(255,255,255,.3);border-radius:50%;}\n.sq-teamnews__pk--boxb{left:24%;right:24%;bottom:0;height:19%;border:2px solid rgba(255,255,255,.18);border-bottom:none;}\n.sq-teamnews__pk--boxt{left:24%;right:24%;top:0;height:19%;border:2px solid rgba(255,255,255,.18);border-top:none;}\n.sq-teamnews__pk--goalb{left:41%;right:41%;bottom:-2px;height:7px;border:2px solid rgba(255,255,255,.28);border-bottom:none;background:rgba(255,255,255,.06);}\n.sq-teamnews__pk--goalt{left:41%;right:41%;top:-2px;height:7px;border:2px solid rgba(255,255,255,.28);border-top:none;background:rgba(255,255,255,.06);}\n\/* bands: GK at the bottom (goal), FWD at the top (attacking) *\/\n.sq-teamnews__bands{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column-reverse;padding:12px 4px;}\n.sq-teamnews__band{flex:1;display:flex;align-items:center;justify-content:space-evenly;gap:2px;}\n.sq-teamnews__node{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:0;max-width:98px;}\n.sq-teamnews__jersey{width:27px;height:24px;flex:none;color:#ffffff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));}\n.sq-teamnews__band[data-role=\"GK\"] .sq-teamnews__jersey{color:var(--sq-gold);}\n.sq-teamnews__pname{font-size:10.5px;font-weight:700;line-height:1.12;color:#fff;text-align:center;\n  letter-spacing:-.01em;max-width:100%;overflow-wrap:break-word;\n  text-shadow:0 1px 3px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.55);}\n.sq-teamnews__mark{color:var(--sq-gold);font-weight:800;}\nsup.sq-teamnews__mark{font-size:.72em;margin-left:1px;text-shadow:none;}\n\/* \u2500\u2500 cold-start placeholder body \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__placeholder{margin:0;padding:22px 18px;background:var(--sq-ground);\n  font-size:13.5px;line-height:1.5;color:var(--sq-muted);text-align:center;}\n\/* \u2500\u2500 footnotes (auto-hides when there are none) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__notes{list-style:none;margin:0;padding:14px 16px 2px;display:flex;flex-direction:column;gap:5px;}\n.sq-teamnews__notes:empty{display:none;}\n.sq-teamnews__notes li{font-size:11.5px;line-height:1.4;color:var(--sq-muted);}\n.sq-teamnews__notes strong{color:var(--sq-ink);font-weight:700;}\n.sq-teamnews__notes .sq-teamnews__mark{text-shadow:none;}\n\/* \u2500\u2500 footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sq-teamnews__foot{display:flex;align-items:center;gap:7px;margin-top:14px;padding:10px 16px;\n  border-top:1px solid var(--sq-line);background:var(--sq-ground);\n  font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--sq-muted);}\n\/* \u2500\u2500 narrow phones: stop the header pill + 4-across bands clipping \u2500\u2500 *\/\n@media(max-width:559px){\n  .sq-teamnews__head{padding:14px 14px 13px;}\n  .sq-teamnews__kicker{font-size:10px;letter-spacing:.12em;}\n  .sq-teamnews__pill{font-size:9.5px;padding:4px 9px;letter-spacing:.08em;}\n  .sq-teamnews__h2{font-size:16.5px;}\n  .sq-teamnews__teams{padding:12px;gap:12px;}\n  .sq-teamnews__bands{padding:10px 2px;}\n  .sq-teamnews__band{gap:1px;}\n  .sq-teamnews__node{max-width:none;}\n  .sq-teamnews__pname{font-size:9px;line-height:1.05;}\n  .sq-teamnews__jersey{width:23px;height:20px;}\n}\n\/* \u2500\u2500 desktop: pitches side-by-side \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media(min-width:560px){\n  .sq-teamnews__teams{grid-template-columns:1fr 1fr;}\n  .sq-teamnews__head{padding:18px 20px 17px;}\n  .sq-teamnews__h2{font-size:21px;}\n  .sq-teamnews__name{font-size:17px;}\n  .sq-teamnews__pitch{min-height:372px;}\n  .sq-teamnews__pname{font-size:11px;}\n}\n<\/style>\n\n  <!-- \u2500\u2500 HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <div class=\"sq-teamnews__head\">\n    <div class=\"sq-teamnews__brandrow\">\n      <svg class=\"sq-teamnews__chev\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M4 5l7 7-7 7\" stroke=\"var(--sq-accent-2)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <path d=\"M13 5l7 7-7 7\" stroke=\"var(--sq-accent)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n      <\/svg>\n      <span class=\"sq-teamnews__kicker\">Team News<\/span>\n      <span class=\"sq-teamnews__pill\"><span class=\"sq-teamnews__pill-dot\"><\/span>Predicted<\/span>\n    <\/div>\n    <h2 class=\"sq-teamnews__h2\">Portland Timbers vs Houston Dynamo Predicted Lineups<\/h2>\n  <\/div>\n\n  <!-- \u2500\u2500 CAVEAT (predicted only) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  \n  <p class=\"sq-teamnews__caveat\">\n    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"2\"\/>\n      <path d=\"M12 11.2v5M12 7.4v.4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <\/svg>\n    <span>Predicted XI \u2014 updated for the latest team news.<\/span>\n  <\/p>\n  \n\n  \n  <!-- \u2500\u2500 TWO TEAMS, each on a pitch \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <div class=\"sq-teamnews__teams\">\n    \n    <section class=\"sq-teamnews__team\">\n      <div class=\"sq-teamnews__teamhead\">\n        \n        <h3 class=\"sq-teamnews__name\">Portland Timbers<\/h3>\n        <span class=\"sq-teamnews__formation\">4-3-3<\/span>\n      <\/div>\n      <div class=\"sq-teamnews__pitch\">\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--half\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--circle\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--spot\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxb\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalb\"><\/div>\n        <!-- bands render GK\u2192FWD; column-reverse puts GK at the goal end -->\n        <div class=\"sq-teamnews__bands\">\n          \n          <div class=\"sq-teamnews__band\" data-role=\"GK\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Pantemis<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DEF\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Fory<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">K. Miller<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Waterman<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">R. Hernandez<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"MID\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">David da Costa<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Caicedo<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">E. Izoita<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"FWD\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">K. Velde<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">V. Janssen<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">A. Lassiter<\/span>\n            <\/div>\n            \n          <\/div>\n          \n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <section class=\"sq-teamnews__team\">\n      <div class=\"sq-teamnews__teamhead\">\n        \n        <h3 class=\"sq-teamnews__name\">Houston Dynamo<\/h3>\n        <span class=\"sq-teamnews__formation\">4-2-3-1<\/span>\n      <\/div>\n      <div class=\"sq-teamnews__pitch\">\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalt\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--half\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--circle\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--spot\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--boxb\"><\/div>\n        <div class=\"sq-teamnews__pk sq-teamnews__pk--goalb\"><\/div>\n        <!-- bands render GK\u2192FWD; column-reverse puts GK at the goal end -->\n        <div class=\"sq-teamnews__bands\">\n          \n          <div class=\"sq-teamnews__band\" data-role=\"GK\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">J. Bond<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DEF\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">F. Negri<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Lucas Halter<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Antonio Carlos<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">L. Ennali<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"DM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Artur<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">H. Herrera<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"AM\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">Guilherme<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">A. Bouzat<\/span>\n            <\/div>\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">M. Bogusz<\/span>\n            <\/div>\n            \n          <\/div>\n          \n          <div class=\"sq-teamnews__band\" data-role=\"FWD\">\n            \n            <div class=\"sq-teamnews__node\">\n              <svg class=\"sq-teamnews__jersey\" viewBox=\"0 0 36 32\" aria-hidden=\"true\"><path fill=\"currentColor\" stroke=\"rgba(0,0,0,.22)\" stroke-width=\"1\" d=\"M13 3 4 7 1 14 6 17 10 14 10 30 26 30 26 14 30 17 35 14 32 7 23 3C22 7 14 7 13 3Z\"\/><\/svg>\n              <span class=\"sq-teamnews__pname\">L. Foster<\/span>\n            <\/div>\n            \n          <\/div>\n          \n        <\/div>\n      <\/div>\n    <\/section>\n    \n  <\/div>\n\n  <!-- \u2500\u2500 FOOTNOTES: one line per player with a note (any team) \u2500\u2500 -->\n  <ul class=\"sq-teamnews__notes\">\n    \n  <\/ul>\n  \n\n  <div class=\"sq-teamnews__foot\">\n    <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M5 6l6 6-6 6\" stroke=\"var(--sq-primary)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n      <path d=\"M13 6l6 6-6 6\" stroke=\"var(--sq-primary)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <\/svg>\n    <span>Squawka \u00b7 Team News<\/span>\n  <\/div>\n\n<\/div>\n\n<!-- SQ-LINEUPS-END -->\n\n<h2>Potential Match-Winners<\/h2>\n\n<ul>\n<li><strong>Kristoffer Velde (Portland Timbers):<\/strong> Kristoffer Velde leads Portland Timbers with 8 goals from 100 shots, 29 of them on target, making him the squad&#8217;s likeliest source of a goal.<\/li>\n<li><strong>David Pereira da Costa (Portland Timbers):<\/strong> David Pereira da Costa has added 5 goals from midfield and tops Portland&#8217;s chance creation with 49 created, the engine behind what Portland manage going forward.<\/li>\n<li><strong>Guilherme Augusto Vieira dos Santos (Houston Dynamo):<\/strong> Guilherme Augusto Vieira dos Santos has been the standout for either side with 16 goals and 68 chances created, the clearest individual threat on the pitch.<\/li>\n<\/ul>\n\n<h2>Recent Form<\/h2>\n\n<h3>Portland Timbers: L D L D W<\/h3>\n<ul>\n<li>2026-10-25: Portland Timbers 3-2 Charlotte FC (W, home)<\/li>\n<li>2026-10-18: Portland Timbers 0-0 Colorado Rapids (D, home)<\/li>\n<li>2026-10-15: LA Galaxy 2-0 Portland Timbers (L, away)<\/li>\n<li>2026-10-11: Sporting KC 3-3 Portland Timbers (D, away)<\/li>\n<li>2026-09-27: San Jose Earthquakes 3-1 Portland Timbers (L, away)<\/li>\n<\/ul>\n<p>Portland Timbers&#8217; form reads L D L D W: a 3-1 loss at San Jose Earthquakes, a 3-3 draw at Sporting KC, a 2-0 loss at LA Galaxy, a goalless draw with Colorado Rapids, then a 3-2 home win over Charlotte FC most recently.<\/p>\n\n<h3>Houston Dynamo: L D D D D<\/h3>\n<ul>\n<li>2026-10-25: Houston Dynamo 0-0 Minnesota United (D, home)<\/li>\n<li>2026-10-18: Houston Dynamo 2-2 FC Dallas (D, home)<\/li>\n<li>2026-10-15: San Diego FC 3-3 Houston Dynamo (D, away)<\/li>\n<li>2026-10-11: Minnesota United 2-2 Houston Dynamo (D, away)<\/li>\n<li>2026-09-27: Houston Dynamo 0-2 Sporting KC (L, home)<\/li>\n<\/ul>\n<p>Houston Dynamo&#8217;s form reads L D D D D: a 0-2 home loss to Sporting KC, a 2-2 draw at Minnesota United, a 3-3 draw at San Diego FC, a 2-2 home draw with FC Dallas, then a goalless home draw with Minnesota United most recently.<\/p>\n\n<h2>Portland Timbers vs Houston Dynamo Prediction<\/h2>\n\n<p>This looks set to be a tight night at Providence Park. Houston Dynamo head into it fifth in the Western Conference on 48 points, still firmly in the playoff picture, while Portland Timbers are 11th on 37 points and need the 3 points to keep any late push alive. Chances should be at a premium, and we&#8217;re backing the Timbers to find the single goal that settles it: Portland Timbers 1-0 Houston Dynamo.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.<\/p>\n","protected":false},"author":393,"featured_media":18089,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"portland timbers vs houston dynamo","_yoast_wpseo_title":"Portland Timbers vs Houston Dynamo: MLS Lineups & Prediction","_yoast_wpseo_metadesc":"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.","footnotes":""},"tags":[],"news-category":[324],"class_list":["post-18088","news","type-news","status-publish","has-post-thumbnail","hentry","news-category-mls"],"acf":{"external_featured_image_url":"","hide_featured_image_pattern":true},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.0 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Portland Timbers vs Houston Dynamo: MLS Lineups &amp; Prediction<\/title>\n<meta name=\"description\" content=\"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Portland Timbers vs Houston Dynamo: Predictions, Picks, Odds &amp; Lineups\" \/>\n<meta property=\"og:description\" content=\"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/\" \/>\n<meta property=\"og:site_name\" content=\"Squawka | CA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SquawkaFootballNews\/\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/10\/26215308\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1167\" \/>\n\t<meta property=\"og:image:height\" content=\"590\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Squawka\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/\",\"name\":\"Portland Timbers vs Houston Dynamo: MLS Lineups & Prediction\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/15\\\/2026\\\/10\\\/26215308\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg\",\"datePublished\":\"2026-10-27T01:53:10+00:00\",\"description\":\"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/#primaryimage\",\"url\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/15\\\/2026\\\/10\\\/26215308\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg\",\"contentUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/15\\\/2026\\\/10\\\/26215308\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg\",\"width\":1167,\"height\":590,\"caption\":\"Portland Timbers vs Houston Dynamo predicted formations\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/mls\\\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"News\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/news\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Portland Timbers vs Houston Dynamo: Predictions, Picks, Odds &#038; Lineups\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#website\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/\",\"name\":\"Squawka | CA\",\"description\":\"Soccer Stats, Predictions &amp; Betting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#organization\",\"name\":\"Squawka | CA\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/15\\\/2026\\\/06\\\/10210812\\\/Squawka-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/15\\\/2026\\\/06\\\/10210812\\\/Squawka-Logo.jpg\",\"width\":1000,\"height\":1000,\"caption\":\"Squawka | CA\"},\"image\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/ca\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SquawkaFootballNews\\\/\",\"https:\\\/\\\/x.com\\\/Squawka\",\"https:\\\/\\\/www.instagram.com\\\/squawkafootball\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Portland Timbers vs Houston Dynamo: MLS Lineups & Prediction","description":"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/","og_type":"article","og_title":"Portland Timbers vs Houston Dynamo: Predictions, Picks, Odds & Lineups","og_description":"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.","og_url":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/","og_site_name":"Squawka | CA","article_publisher":"https:\/\/www.facebook.com\/SquawkaFootballNews\/","og_image":[{"width":1167,"height":590,"url":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/10\/26215308\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@Squawka","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/","url":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/","name":"Portland Timbers vs Houston Dynamo: MLS Lineups & Prediction","isPartOf":{"@id":"https:\/\/www.squawka.com\/ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/#primaryimage"},"image":{"@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/#primaryimage"},"thumbnailUrl":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/10\/26215308\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg","datePublished":"2026-10-27T01:53:10+00:00","description":"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.","breadcrumb":{"@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/#primaryimage","url":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/10\/26215308\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/10\/26215308\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls-banner.jpg","width":1167,"height":590,"caption":"Portland Timbers vs Houston Dynamo predicted formations"},{"@type":"BreadcrumbList","@id":"https:\/\/www.squawka.com\/ca\/news\/mls\/match-preview-portland-timbers-vs-houston-dynamo-11-01-26-mls\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.squawka.com\/ca\/"},{"@type":"ListItem","position":2,"name":"News","item":"https:\/\/www.squawka.com\/ca\/news\/"},{"@type":"ListItem","position":3,"name":"Portland Timbers vs Houston Dynamo: Predictions, Picks, Odds &#038; Lineups"}]},{"@type":"WebSite","@id":"https:\/\/www.squawka.com\/ca\/#website","url":"https:\/\/www.squawka.com\/ca\/","name":"Squawka | CA","description":"Soccer Stats, Predictions &amp; Betting","publisher":{"@id":"https:\/\/www.squawka.com\/ca\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.squawka.com\/ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/www.squawka.com\/ca\/#organization","name":"Squawka | CA","url":"https:\/\/www.squawka.com\/ca\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/www.squawka.com\/ca\/#\/schema\/logo\/image\/","url":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/06\/10210812\/Squawka-Logo.jpg","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/15\/2026\/06\/10210812\/Squawka-Logo.jpg","width":1000,"height":1000,"caption":"Squawka | CA"},"image":{"@id":"https:\/\/www.squawka.com\/ca\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SquawkaFootballNews\/","https:\/\/x.com\/Squawka","https:\/\/www.instagram.com\/squawkafootball\/"]}]}},"yoast_title":"Portland Timbers vs Houston Dynamo: MLS Lineups & Prediction","yoast_description":"Predicted lineups and team news for Portland Timbers vs Houston Dynamo, plus our prediction, odds and best bets. Team news inside. Kick-off 9:45 PM ET.","yoast_keyword":"portland timbers vs houston dynamo","_links":{"self":[{"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/news\/18088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/news"}],"about":[{"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/types\/news"}],"author":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/users\/393"}],"version-history":[{"count":1,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/news\/18088\/revisions"}],"predecessor-version":[{"id":18090,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/news\/18088\/revisions\/18090"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/media\/18089"}],"wp:attachment":[{"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/media?parent=18088"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/tags?post=18088"},{"taxonomy":"news-category","embeddable":true,"href":"https:\/\/www.squawka.com\/ca\/wp-json\/wp\/v2\/news-category?post=18088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}