@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fd9301f2837c99df.ttf) format('truetype');
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/4ad53eac036092be.ttf) format('truetype');
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./assets/557a1c42a7f8eb83.ttf) format('truetype');
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./assets/cbf437bf71c8536a.ttf) format('truetype');
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./assets/aef76cd15b8c9faa.ttf) format('truetype');
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(./assets/116124d76142998e.ttf) format('truetype');
}
/* Each portrait is one fifth of a 2172 × 724 sprite: ratio 0.6 */
.portrait,.portrait-stage .portrait,.vote-img .portrait{width:auto!important;aspect-ratio:3/5;flex-shrink:0;background-size:500% 100%;max-width:none}.portrait-stage .portrait{height:350px}.vote-img .portrait{height:210px}@media(max-width:760px){.portrait-stage .portrait{height:280px}.vote-img .portrait{height:180px}}


:root{--paper:#faf7ee;--ink:#22251f;--orange:#f95b31;--green:#d9eb75;--lilac:#d9cafa;--line:#22251f;--muted:#68695f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Be Vietnam Pro',sans-serif;font-size:16px;line-height:1.7}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:5px}a{color:inherit}header{height:76px;padding:0 5%;border-bottom:1px solid #22251f25;display:flex;align-items:center;justify-content:space-between}.logo{font-weight:800;letter-spacing:-1px;font-size:25px;text-decoration:none}.logo span{color:var(--orange)}.edition,.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.edition{color:var(--muted)}.progress{position:fixed;top:0;height:4px;background:var(--orange);width:0;z-index:30}main{overflow:hidden}.wrap{max-width:1180px;margin:auto;padding:0 35px}h1,h2,h3,p{margin-top:0}h1,h2,.big{font-family:'Anton',sans-serif;font-weight:400;line-height:1.12;letter-spacing:-1px}h1{font-size:clamp(44px,4.9vw,65px);margin-bottom:25px}h2{font-size:clamp(38px,4.8vw,64px);margin-bottom:26px}h3{font-size:23px;line-height:1.4;letter-spacing:-.5px}p{margin-bottom:20px}.hero{padding-top:64px;padding-bottom:55px;display:grid;grid-template-columns:1.12fr 1fr;gap:45px;align-items:center}.hero .eyebrow{margin-bottom:25px}.orange{color:var(--orange)}.lead{font-size:18px;max-width:570px;line-height:1.8}.underline{position:relative;white-space:nowrap}.underline:after{content:'';position:absolute;height:8px;border-bottom:4px solid var(--orange);border-radius:50%;left:0;right:0;bottom:-7px;transform:rotate(-2deg)}.primary{border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);padding:15px 26px;border-radius:50px;font-weight:600;display:inline-flex;gap:25px;align-items:center;text-decoration:none}.primary:hover{background:var(--orange);color:var(--ink)}.small{font-size:12px;color:var(--muted)}.hero-art{height:470px;position:relative}.orb{width:390px;height:390px;position:absolute;top:40px;left:10px;border-radius:48% 52% 44% 56%;background:var(--green);transform:rotate(-8deg)}.cup{background-image:url('./assets/4f6fee105deeb21e.png');background-repeat:no-repeat;background-size:300% 100%;aspect-ratio:1/1}.hero-art .cup{position:absolute;width:300px;top:10px;left:0;transform:rotate(-10deg)}.pot{background-image:url('./assets/33721237b9309cf1.png');background-size:200% 100%;background-repeat:no-repeat;aspect-ratio:1.5}.hero-art .pot{width:295px;position:absolute;bottom:10px;right:-12px;transform:rotate(9deg)}.sticker{position:absolute;background:var(--paper);border:1.5px solid var(--ink);border-radius:8px;padding:9px 16px;transform:rotate(7deg);right:0;top:70px;font-size:15px;font-weight:700;box-shadow:3px 4px 0 var(--ink)}.hand-note{position:absolute;left:0;bottom:40px;font-size:15px;transform:rotate(-9deg)}.ticker{border-block:1px solid var(--line);padding:15px 0;display:flex;justify-content:space-around;gap:25px;font-size:12px;letter-spacing:1px;white-space:nowrap}.ticker span:nth-child(even){color:var(--orange)}section{scroll-margin-top:25px}.chapter{padding:90px 0}.section-top{display:flex;align-items:center;gap:15px;margin-bottom:30px}.num{width:35px;height:35px;border:1px solid;border-radius:50%;display:grid;place-items:center;font-size:12px}.intro{max-width:650px}.game{background:#eeeadd;border:1px solid var(--ink);border-radius:22px;padding:35px;display:grid;grid-template-columns:1fr 1fr;gap:45px;position:relative;min-height:425px}.game-visual{display:flex;align-items:center;justify-content:center;position:relative}.game-visual .cup{width:290px}.game-visual .pot{width:360px}.state-button{position:absolute;bottom:0;border:0;border-bottom:1px dashed;background:none;font-size:12px;padding:5px}.game-copy{align-self:center}.tag{display:inline-block;padding:5px 11px;border-radius:5px;background:var(--lilac);font-size:11px;font-weight:700;margin-bottom:18px}.options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option{border:1px solid var(--ink);border-radius:10px;background:var(--paper);padding:12px 15px;text-align:left;transition:.2s}.option:hover{transform:translateY(-2px);box-shadow:2px 3px 0 var(--ink)}.option.selected{background:var(--green);box-shadow:2px 3px 0 var(--ink)}.option:disabled{cursor:default;opacity:.65}.option.selected:disabled{opacity:1}.feedback{margin-top:20px;border-top:1px solid #22251f30;padding-top:18px;font-size:15px}.next{background:none;border:0;border-bottom:1px solid;padding:4px 0;font-weight:700;margin-top:10px}.hidden{display:none!important}.game-count{font-size:11px;color:var(--muted);margin-bottom:10px}.reveal-banner{margin-top:25px;background:var(--green);border-radius:16px;padding:30px;display:grid;grid-template-columns:110px 1fr;gap:25px;align-items:center}.reveal-banner img{width:110px;height:145px;object-fit:contain;object-position:bottom}.reveal-banner h3{margin-bottom:10px}.reveal-banner p{margin:0}.divider{height:1px;background:var(--ink);opacity:.2}.statement{background:var(--ink);color:var(--paper);padding:80px 0}.statement h2{max-width:950px;font-size:clamp(35px,4.3vw,60px)}.statement p{max-width:650px;color:#d6d6cb}.select-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:35px}.habit{background:transparent;border:1px solid #22251f55;border-radius:13px;padding:22px 18px;min-height:130px;text-align:left;position:relative}.habit b{display:block;margin:12px 0 4px;font-size:16px}.habit span{font-size:12px;color:var(--muted)}.habit:before{content:'+';position:absolute;right:13px;top:8px;font-size:21px;font-weight:400}.habit.active{background:var(--green);border-color:var(--ink)}.habit.active:before{content:'✓'}.hint{margin-top:15px}.result-preview{margin-top:30px;border-left:3px solid var(--orange);padding:0 20px;font-size:19px}.story{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center;margin-top:70px;padding-bottom:70px;border-bottom:1px solid #22251f30}.portrait-stage{height:370px;position:relative;display:flex;align-items:end;justify-content:center}.portrait-stage:before{content:'';position:absolute;width:310px;height:310px;border-radius:50%;background:var(--lilac);bottom:0}.portrait-stage.green:before{background:var(--green)}.portrait-stage.orange-bg:before{background:#ffd0ae}.portrait{width:260px;height:350px;position:relative;background:url('./assets/26a900a0aec8f003.png') no-repeat;background-size:500% 100%;background-position:0 0}.portrait.thao{background-position:25% 0}.portrait.duong{background-position:50% 0}.portrait-stage img{height:350px;max-width:100%;object-fit:contain;z-index:1}.caption{position:absolute;bottom:-18px;left:25px;background:var(--paper);border:1px solid;border-radius:50px;padding:7px 16px;font-size:13px;z-index:2;transform:rotate(-4deg)}.story h3{font-family:'Anton';font-size:38px;font-weight:400;line-height:1.2}.brand-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.brand{font-size:12px;border:1px solid #22251f50;border-radius:30px;padding:4px 12px}.fact{font-size:16px}.so-what{padding:18px 22px;background:#eeeadd;border-radius:10px;font-size:14px;line-height:1.8}.so-what b{display:block;margin-bottom:6px}.source{font-size:11px;color:var(--muted);display:inline-block;margin-top:15px}.future{padding:70px 35px;background:var(--lilac);border-radius:24px;position:relative;margin-top:40px}.future h2{max-width:850px}.future-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}.future-grid div{border-top:1px solid;padding-top:20px}.future-grid strong{display:block;font-size:18px;margin-bottom:12px}.future-grid p{font-size:14px}.receipt-section{padding:90px 0;background:#e4e9dc}.receipt-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.receipt{background:var(--paper);padding:35px;box-shadow:8px 10px 0 #22251f15;transform:rotate(2deg);position:relative}.receipt:after{content:'';position:absolute;bottom:-12px;left:0;right:0;height:15px;background:linear-gradient(135deg,var(--paper) 25%,transparent 25%) -10px 0,linear-gradient(225deg,var(--paper) 25%,transparent 25%) -10px 0;background-size:20px 20px}.receipt-head{text-align:center;border-bottom:1px dashed;padding-bottom:20px}.receipt-head .big{font-size:35px}.receipt-line{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px dashed #22251f30;font-size:13px}.receipt-line span:last-child{font-weight:700;text-align:right}.receipt-foot{font-size:12px;margin-top:23px}.closing{text-align:center;padding:90px 0}.closing h2{max-width:850px;margin:0 auto 25px}.votes{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:45px 0 25px}.vote{background:none;border:1px solid #22251f30;border-radius:15px;padding:15px 10px 20px;overflow:hidden}.vote:hover,.vote.chosen{background:var(--green);border-color:var(--ink)}.vote-img{height:210px;display:flex;align-items:end;justify-content:center;margin-bottom:18px}.vote-img img{height:210px;max-width:100%;object-fit:contain}.vote-img .portrait{height:210px;width:150px}.vote b{display:block;font-size:14px}.vote small{font-size:11px;color:var(--muted)}.vote-feedback{font-size:14px;max-width:650px;margin:0 auto 30px}.fchoice{max-width:760px;margin:60px auto 0;border-top:1px solid #22251f30;padding-top:30px}.fchoice p{font-size:15px;line-height:1.9;text-align:left}.fchoice h3{text-align:left;font-size:22px;line-height:1.5}.fchoice .logo{font-size:35px}footer{padding:25px 5%;border-top:1px solid #22251f30;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:15px}.reveal{animation:appear .45s ease-out}@keyframes appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){header{height:64px}.edition{font-size:9px;letter-spacing:1px}.wrap{padding-inline:22px}.hero{padding-top:40px;grid-template-columns:1fr;gap:5px}.hero-art{height:330px;max-width:410px;width:100%;margin:auto}.orb{width:280px;height:280px;top:15px;left:20px}.hero-art .cup{width:220px;top:0}.hero-art .pot{width:220px;bottom:0;right:0}.sticker{top:30px;font-size:12px}.hand-note{bottom:20px;font-size:12px}.lead{font-size:16px}.ticker{justify-content:flex-start;padding-left:22px;overflow:hidden;font-size:10px}.chapter{padding:55px 0}.game{grid-template-columns:1fr;padding:23px;gap:15px}.game-visual{height:240px}.game-visual .cup{width:220px}.game-visual .pot{width:290px}.game-copy h3{font-size:21px}.reveal-banner{padding:20px;grid-template-columns:75px 1fr;gap:15px}.reveal-banner img{width:75px;height:110px}.reveal-banner h3{font-size:18px}.reveal-banner p{font-size:13px}.select-grid{grid-template-columns:1fr 1fr;gap:10px}.habit{min-height:120px;padding:16px}.habit b{font-size:14px}.habit span{font-size:11px}.story{grid-template-columns:1fr;gap:35px;margin-top:45px;padding-bottom:40px}.portrait-stage{height:290px}.portrait-stage:before{width:250px;height:250px}.portrait-stage .portrait{height:280px;width:210px}.portrait-stage img{height:280px}.story h3{font-size:32px}.caption{left:calc(50% - 100px)}.future{padding:35px 23px}.future-grid{grid-template-columns:1fr;gap:10px}.receipt-layout{grid-template-columns:1fr;gap:35px}.receipt-section{padding:55px 0}.receipt{padding:25px;transform:rotate(1deg)}.votes{grid-template-columns:1fr 1fr;gap:10px}.vote-img,.vote-img .portrait,.vote-img img{height:180px}.vote-img .portrait{width:130px}.vote b{font-size:12px}.closing{padding:55px 0}.statement{padding:50px 0}.statement p{font-size:14px}footer{display:block}footer span{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.metro-module{margin:15px 0 75px;background:#e1eacb;border:1px solid var(--ink);border-radius:24px;overflow:hidden}.metro-top{padding:45px 45px 0}.metro-top h2{max-width:850px}.metro-top>p{max-width:650px}.metro-art{width:100%;height:170px;margin:15px 0 0}.metro-inner{padding:25px 45px 45px}.rail-question{max-width:850px;margin:15px 0 22px;font-size:23px}.rail-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rail-response{min-height:55px;margin:18px 0;font-size:15px}.city-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.city-tab{border:1px solid var(--ink);border-radius:30px;padding:9px 18px;background:transparent}.city-tab.active{background:var(--ink);color:var(--paper)}.rail-projects{display:grid;grid-template-columns:1fr 1fr;gap:20px}.rail-project{background:var(--paper);border-radius:12px;padding:25px}.rail-project .big{font-size:48px;color:var(--orange);margin:12px 0}.rail-project h3{font-size:20px}.rail-project p{font-size:14px}.rail-status{display:inline-block;font-size:10px;font-weight:700;letter-spacing:1px;border-bottom:1px solid;padding-bottom:4px}.home-twist{border-top:1px solid #22251f40;margin-top:30px;padding-top:30px}.metro-takeaway{font-family:Anton,sans-serif;font-size:clamp(25px,3vw,38px);line-height:1.3;margin:30px 0 0}@media(max-width:760px){.metro-top{padding:28px 22px 0}.metro-inner{padding:15px 22px 28px}.rail-options,.rail-projects{grid-template-columns:1fr}.metro-art{height:120px}.rail-question{font-size:19px}.rail-project{padding:20px}.metro-module{margin-bottom:40px}}
.ecosystem-note{margin-top:24px;padding-top:22px;border-top:1px dashed #22251f55}.ecosystem-note h4{font-size:18px;line-height:1.55;margin:0 0 12px;letter-spacing:-.3px}.ecosystem-note p{font-size:14px;line-height:1.85;margin-bottom:13px}.life-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0}.life-item{padding:13px 14px;background:#eeeadd;border-radius:9px;line-height:1.5}.life-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.life-item b{font-size:13px;font-weight:600}.life-item.future-life{background:#e6dfef}.ecosystem-note .context-note{font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:0}.banana-note{display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:18px;background:#eef0d7;border-radius:10px}.banana-note svg{flex:0 0 35px;margin-top:4px}.banana-note p{margin:0;font-size:14px;line-height:1.85}@media(max-width:480px){.life-grid{gap:8px}.life-item{padding:12px}.ecosystem-note h4{font-size:17px}}
.editorial-stat{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:center}.editorial-stat h2{font-size:clamp(34px,4.1vw,58px)}.editorial-stat h2 em{font-style:normal;color:var(--green)}.editorial-stat p{font-size:13px;line-height:1.9;color:#d0d1c4;margin:20px 0 0}.households{width:100%;max-width:330px;aspect-ratio:1;display:grid;grid-template-columns:repeat(10,1fr);gap:7px;margin:auto}.households i{background:var(--green);border-radius:3px;aspect-ratio:1}.households i:nth-last-child(-n+2){background:transparent;border:1px solid #c9cdbe}.stat-pair{display:flex;gap:30px;padding:15px 0 20px}.stat-pair b{display:block;font-family:Anton,sans-serif;font-size:44px;line-height:1.2;font-weight:400;color:var(--orange)}.stat-pair span{display:block;font-size:12px;max-width:190px;margin-top:7px}.charging-line{padding:15px 0 0;border-top:1px solid #22251f30;font-size:13px;line-height:1.9;margin-bottom:0}.charging-line b{color:var(--orange)}.rail-heading{font-size:clamp(35px,4.2vw,59px)!important}.rail-route{margin-top:30px;background:var(--paper);border-radius:14px;padding:30px}.rail-route h3{font-family:Anton,sans-serif;font-weight:400;font-size:32px;line-height:1.2;margin-bottom:18px}.rail-route p{font-size:14px}.route-track{display:flex;align-items:center;gap:12px;margin:25px 0;font-weight:700;font-size:14px}.route-track .rail-time{flex:1;border-bottom:3px solid var(--orange);text-align:center;padding-bottom:9px;color:var(--orange);font-family:Anton,sans-serif;font-size:32px;font-weight:400}.route-track .rail-time small{font-family:'Be Vietnam Pro',sans-serif;font-size:10px;display:block;color:var(--muted);letter-spacing:1px}.wide-life{padding:35px 0 5px;margin-bottom:70px}.wide-life h2{font-size:clamp(34px,4vw,52px)}.wide-life>p{max-width:850px}.wide-life .life-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.wide-life .life-item{min-height:90px;padding:17px}.wide-life .life-item b{font-size:15px}.service-caption{font-size:12px!important;color:var(--muted);margin-bottom:0}.hero-bite{position:absolute;left:45px;bottom:12px;z-index:3;background:var(--paper);border:1px solid var(--ink);border-radius:30px;padding:8px 16px;font-size:12px}.hero-bite:hover{background:var(--green)}.hero-art .pot{width:235px;bottom:45px;right:-5px}.hero-art .cup{width:320px;top:5px;left:0}.hero-art .hand-note{display:none}.hero-art .sticker{top:45px;font-size:13px}.hero .eyebrow{color:var(--muted)}.editorial-copy p{font-size:15px;line-height:1.85}.receipt-foot{font-size:11px}.fchoice p{font-size:14px}.rail-response:empty{display:none}.receipt-layout h2{font-size:clamp(35px,4vw,52px)}.sources-inline{font-size:10px;color:var(--muted);margin-top:12px}.story{align-items:start}.portrait-stage{position:sticky;top:50px}.story h4{font-size:20px;margin:25px 0 13px}.mini-services{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.mini-service{padding:7px 12px;background:#eeeadd;font-size:12px;border-radius:6px}.vote-feedback{min-height:45px}.receipt{transform:rotate(1deg)}.section-top .eyebrow{letter-spacing:1.7px}@media(max-width:760px){.editorial-stat{grid-template-columns:1fr;gap:30px}.households{max-width:245px;gap:5px}.hero-art .cup{width:235px}.hero-art .pot{width:180px;bottom:42px}.hero-bite{left:25px;bottom:0;font-size:11px}.hero-art .sticker{top:25px;font-size:11px}.wide-life{margin-bottom:40px;padding-top:15px}.wide-life .life-grid{grid-template-columns:1fr 1fr}.wide-life .life-item{padding:13px;min-height:80px}.rail-route{padding:22px 18px}.rail-route h3{font-size:27px}.route-track{gap:8px;font-size:12px}.route-track .rail-time{font-size:29px}.portrait-stage{position:relative;top:auto}.stat-pair b{font-size:36px}.stat-pair{gap:25px}.story{gap:32px}}
header{height:auto;min-height:132px;padding-top:56.7px;padding-bottom:15px}.program-link{display:inline-block;border:2px solid var(--ink);border-radius:9px;padding:3px 16px;font-family:Anton,sans-serif;font-size:30px;text-decoration:none;color:var(--orange)}#rail-response,#home-response{margin-top:20px;font-size:17px;line-height:1.8}.closing{padding-top:30px} @media(max-width:760px){header{min-height:120px;padding-top:56.7px}} 

.mobile-guess{display:none}
button{touch-action:manipulation}
@media(max-width:760px){
html,body{width:100%;max-width:100%;margin:0;overflow-x:clip}
main{width:100%;overflow:clip}
main .wrap,main .wrap.chapter,main .wrap.closing{width:100%;max-width:100%;padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right));box-sizing:border-box}
main .wrap .wrap{padding-left:0;padding-right:0}
main .wrap>*,.story>*,.receipt-layout>*,.game>*,.select-grid>*,.votes>*{min-width:0}
.desktop-guess{display:none!important}.mobile-guess{display:flex;justify-self:start;margin-top:18px;max-width:100%;font-size:13px;padding:14px 18px;gap:12px;white-space:normal}
.hero-art{margin-bottom:0}.hero-bite{bottom:0}
h1,h2,h3,h4,p,.habit,.receipt-line{overflow-wrap:break-word}
.underline{white-space:normal}
.receipt{transform:none;width:100%;min-width:0}.receipt-line{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}.receipt-line span{min-width:0;overflow-wrap:anywhere}
.select-grid,.options,.votes{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat-pair,.life-grid,.metro-projects{min-width:0;max-width:100%}
.wide-life{margin-left:0;margin-right:0}
.route-track{max-width:100%;gap:8px}.route-track>span{font-size:12px}
}
@media(max-width:360px){.options{grid-template-columns:1fr}.habit{padding:16px 12px}.habit b{font-size:12px}}

/* Keep input controls usable inside a publisher layout */
button{touch-action:manipulation}img{vertical-align:middle}
