
/* v2.0: preserve all v1.9.1 articles, original logo, and scientific content */
:root{--twi2-cyan:#34e5e4;--twi2-dark:#061c2a;--twi2-mid:#0a3247;--twi2-coral:#fa685d}
.site-header{background:#041b29}.nav-shell{height:75px}.approved-brand-image{max-width:300px!important;height:auto!important;width:min(300px,30vw)!important;object-fit:contain}.site-nav{gap:clamp(8px,1.15vw,20px)}.site-nav a{font-size:clamp(10px,0.85vw,13px)}.site-nav a:first-child{color:var(--twi2-cyan)}
.twi2-home{background:linear-gradient(180deg,#041b29,#083047 72%,#061e2e);color:#f3f8fa;padding-bottom:25px;font-size:14px}
.twi2-home h1,.twi2-home h2,.twi2-home h3,.twi2-explained-strip h2{font-family:Georgia,'Times New Roman',serif;font-weight:700;letter-spacing:-.4px}.twi2-hero{min-height:245px;position:relative;isolation:isolate;padding:38px 30px 31px}.twi2-hero:before{content:"";position:absolute;z-index:-1;inset:0 -1px;background:linear-gradient(90deg,#041b29 0%,rgba(4,27,41,.94) 36%,rgba(4,27,41,.17) 100%),url('twi-hero-atmosphere-v2.jpg') center right/cover no-repeat}
.twi2-kicker{font-size:10px;color:#75eeee;letter-spacing:2px;font-weight:800}.twi2-hero h1{font-size:clamp(32px,3.5vw,49px);line-height:1.1;max-width:760px;margin:12px 0 14px;letter-spacing:-.6px}.twi2-hero p{max-width:595px;line-height:1.52;margin-bottom:15px;color:#d9e7ec;font-size:14px}.twi2-buttons{display:flex;gap:12px;flex-wrap:wrap}.twi2-btn{display:inline-flex;justify-content:center;align-items:center;line-height:1.2;border-radius:50px;padding:11px 20px;font-weight:700;border:1px solid #a4c6d0;font-size:12px;transition:filter .18s}.twi2-btn:hover{filter:brightness(1.18)}.twi2-btn.coral{background:var(--twi2-coral);border-color:var(--twi2-coral);color:white}.twi2-btn.ghost{color:white;border-color:#b9d9e2;background:#09293b}
.twi2-forecast{display:grid;grid-template-columns:250px 1fr;gap:12px;align-items:stretch;border:1px solid #5d8290;background:rgba(8,43,60,.94);border-radius:12px;padding:13px 18px;margin-top:0}.twi2-forecast-label{border-right:1px solid #52717e;padding-right:18px}.twi2-forecast-label h2{font-size:25px;margin:0 0 4px}.twi2-forecast-label p{font-size:11px;line-height:1.45;margin-bottom:3px;color:#c8d8de}.twi2-source{color:#88e9e9;font-size:10px;text-decoration:underline;text-underline-offset:2px}.twi2-cities{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.twi2-cities button{color:#e7f4f7;background:transparent;border:1px solid transparent;border-radius:8px;min-height:78px;padding:8px 4px;font-weight:700;font-size:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}.twi2-cities button.active,.twi2-cities button:hover{border-color:var(--twi2-cyan);background:#0b3d50}.twi2-cities button .twi2-city-icon{font-size:25px;line-height:1.3}.twi2-cities button .twi2-city-temp{font-size:13px;color:#fff}.twi2-cities button .twi2-city-short{color:#bfdde3;font-size:10px;font-weight:400}
.twi2-dashboard{display:grid;grid-template-columns:minmax(0,2.08fr) minmax(265px,1fr);gap:18px;margin-top:17px}.twi2-panel{border:1px solid #4c8191;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,rgba(10,51,70,.94),rgba(5,31,46,.96));min-width:0}.twi2-map-panel{padding:14px 16px}.twi2-panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.twi2-panel-top h2,.twi2-support h2{font-size:26px;margin:0}.twi2-panel-top p{font-size:11px;margin:0;color:#c2d6dd}.twi2-time{color:#b1d9df;font-size:10px;text-align:right}.twi2-map-body{display:grid;grid-template-columns:1fr 208px;gap:14px;min-height:210px;margin-top:12px}.twi2-map-illustration{position:relative;border:1px solid #267d93;min-height:205px;border-radius:8px;background:radial-gradient(ellipse at 28% 55%,rgba(16,198,190,.36),transparent 19%),radial-gradient(ellipse at 70% 35%,rgba(29,131,190,.5),transparent 22%),linear-gradient(120deg,#0a3a50,#031e30 65%,#0b3a55);overflow:hidden}.twi2-grid-overlay{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 27px,rgba(155,233,224,.1) 28px 29px),repeating-linear-gradient(90deg,transparent 0 36px,rgba(155,233,224,.1) 37px 38px);transform:rotate(-7deg) scale(1.2)}.twi2-map-illustration:after{content:'◌   ⇢   ⇢   ◌     ⇢    ◌';position:absolute;top:40%;left:10%;color:#7bdcde;opacity:.55;font-size:23px;letter-spacing:9px}.twi2-map-title{position:absolute;left:18px;top:15px;font-size:11px;letter-spacing:2px;color:#c1eff0}.twi2-corner-mark{position:absolute;bottom:13px;right:13px;font-size:10px;color:#a2cbd6}.twi2-detail{padding:9px 0}.twi2-detail-location{font:700 19px Georgia,serif;color:#e5fbfd}.twi2-large-temperature{font:700 33px Georgia,serif;margin-top:6px}.twi2-conditions{font-size:12px;color:#b7dadf}.twi2-detail-metrics{display:grid;gap:5px;margin-top:11px}.twi2-detail-metrics div{display:flex;justify-content:space-between;border-bottom:1px solid #285266;font-size:10px;gap:8px}.twi2-detail-metrics strong{white-space:nowrap;font-size:11px;color:#7af0ee}.twi2-three-days{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px}.twi2-day{background:#174758;border-radius:6px;text-align:center;padding:6px 3px;font-size:10px}.twi2-day strong{display:block;font-size:11px}.twi2-day span{display:block;color:#cbeced}.twi2-caveat{color:#b9d5dc;font-size:10px;margin:10px 0 0}
.twi2-support{background:linear-gradient(0deg,rgba(2,24,38,.94),rgba(3,29,45,.70)),url('twi-hero-atmosphere-v2.jpg') center/cover}.twi2-support-inner{padding:27px 24px}.twi2-support h2{font-size:30px;line-height:1.1;margin:13px 0 13px;max-width:280px}.twi2-support p{font-size:13px;color:#d4e4e7;line-height:1.5}.twi2-support-note{margin-top:9px;color:#a6c5cd;font-size:10px}
.twi2-editorial-row{display:grid;grid-template-columns:1.14fr 1fr .86fr;gap:16px;margin-top:16px}.twi2-editorial-row .twi2-panel{padding:15px 16px}.twi2-editorial-row h2{font-size:23px;margin:0 0 14px;padding-bottom:8px;border-bottom:2px solid #247589}.twi2-editorial-feature{display:grid;grid-template-columns:42% 1fr;gap:12px;align-items:center}.twi2-editorial-feature img{width:100%;height:117px;object-fit:cover;border-radius:7px}.twi2-editorial-feature small,.twi2-news-item small{display:block;font-size:9px;letter-spacing:.4px;color:#59e6e8;margin-bottom:4px}.twi2-editorial-feature strong,.twi2-news-item strong{font:700 15px/1.28 Georgia,serif;display:block}.twi2-editorial-feature span span{display:block;color:#7ff5ec;font-size:11px;margin-top:7px}.twi2-row-head{display:flex;gap:10px;justify-content:space-between;align-items:center}.twi2-row-head a{font-size:10px;color:#80eff0}.twi2-news-item{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #1e5365}.twi2-news-symbol{font-size:25px;color:var(--twi2-cyan);width:35px;text-align:center}.twi2-for-media{text-align:left}.twi2-mic{font-size:28px;color:#70e4e8}.twi2-for-media h3{font-size:17px;margin-bottom:7px}.twi2-for-media p{font-size:11px;color:#b5d6df;margin-bottom:10px}.twi2-for-media .twi2-btn{font-size:11px;padding:9px 13px}
.twi2-shortcuts{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:16px;border:1px solid #477d90;border-radius:12px}.twi2-shortcuts a{text-align:center;padding:14px 7px;color:#d3f3f4;font-weight:700;font-size:12px}.twi2-shortcuts a+a{border-left:1px solid #52798c}.twi2-shortcuts a:hover{color:var(--twi2-cyan);background:#0c4352}
.twi2-explained-strip{background:#eaf4f4;padding:30px 0}.twi2-explained-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}.twi2-explained-inner h2{font-size:25px;margin:4px 0}.twi2-explained-inner p{font-size:12px;color:#4a6b76;margin:0}.twi2-explain-links{display:grid;gap:10px;min-width:320px;font-size:13px;color:#117e84;font-weight:700}.twi2-footer-extra{display:flex;flex-wrap:wrap;gap:16px;font-size:10px;color:#afd1d6}.twi2-footer-extra a:hover{color:#81f4ef}
@media(max-width:1050px){.nav-shell{height:auto;min-height:72px}.approved-brand-image{width:220px!important}.site-nav{gap:9px}.site-nav a{font-size:10px}.twi2-forecast{grid-template-columns:1fr}.twi2-forecast-label{border-right:0;border-bottom:1px solid #4a6a78;padding:0 0 8px}.twi2-dashboard{grid-template-columns:1fr 260px}.twi2-map-body{grid-template-columns:1fr 190px}}
@media(max-width:760px){.nav-shell{min-height:72px}.approved-brand-image{width:220px!important;max-width:75vw!important}.twi2-hero{min-height:275px;padding:35px 0}.twi2-hero:before{background:linear-gradient(90deg,rgba(4,27,41,.95),rgba(4,27,41,.58)),url('twi-hero-atmosphere-v2.jpg') center/cover}.twi2-hero h1{font-size:clamp(31px,8vw,42px)}.twi2-forecast{padding:12px}.twi2-cities{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:5px}.twi2-cities button{min-width:100px;scroll-snap-align:start}.twi2-dashboard,.twi2-editorial-row{grid-template-columns:1fr}.twi2-map-body{grid-template-columns:1fr}.twi2-map-illustration{min-height:125px}.twi2-detail{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}.twi2-detail-metrics,.twi2-three-days{grid-column:1/-1}.twi2-shortcuts{display:flex;flex-wrap:wrap}.twi2-shortcuts a{flex:1 1 45%;border-bottom:1px solid #37596b}.twi2-explained-inner{display:block}.twi2-explain-links{margin-top:12px;min-width:0}.twi2-hero p{font-size:13px}.twi2-support-inner{padding:22px}.twi2-editorial-feature img{height:112px}}
@media(max-width:420px){.twi2-editorial-feature{grid-template-columns:38% 1fr}.twi2-hero h1{font-size:31px}.twi2-panel-top{align-items:start;flex-direction:column}.twi2-detail{display:block}.twi2-cities button{min-width:92px}.twi2-forecast-label h2{font-size:23px}}

/* TWI v2.1: accurate coastlines + real model API city readings; no synthetic rainfall raster. */
.twi2-geography{background:#08334b url('twi-indonesia-geography-v21.png') center center/100% 100% no-repeat;isolation:isolate;min-height:236px}
.twi2-geography:after{content:none!important}
.twi2-geography .twi2-map-title{font-size:9px;letter-spacing:.9px;left:10px;top:8px;text-shadow:0 2px 4px #012}
.twi2-geography .twi2-corner-mark{right:7px;bottom:5px;font-size:8px;background:#05283acb;padding:4px;border-radius:3px}
.twi2-city-points{position:absolute;inset:0;z-index:1}
.twi2-location-pin{position:absolute;transform:translate(-50%,-50%);border:1px solid #70e6ef;border-radius:6px;padding:3px 5px;background:#06293fe8;color:#e7ffff;white-space:nowrap;cursor:pointer;text-align:center;min-width:36px;font:600 9px/1.15 system-ui,sans-serif;box-shadow:0 2px 7px #001a2d}
.twi2-location-pin span{display:block;color:#7afff4;font-size:10px}.twi2-location-pin.active,.twi2-location-pin:hover{border-color:#ffb775;background:#12485d;box-shadow:0 0 0 2px #f6a25f66}
@media(max-width:760px){.twi2-geography{min-height:210px}.twi2-location-pin{font-size:8px;padding:2px 3px;min-width:30px}.twi2-location-pin span{font-size:9px}}

/* v2.2: editorial explainer covers and lazy-loaded 3D Learjet feature */
.twi22-explain{padding:34px 0 42px}.twi22-explain-head{margin-bottom:20px}.twi22-explain-head h2{max-width:720px}.twi22-explain-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.twi22-explain-card{display:grid;grid-template-columns:minmax(135px,36%) 1fr;gap:16px;border:1px solid #b5d8df;border-radius:14px;overflow:hidden;background:#fff;color:#07283a;text-decoration:none;box-shadow:0 5px 18px rgba(1,33,48,.055);transition:transform .2s,box-shadow .2s;min-width:0}.twi22-explain-card:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(1,33,48,.15)}.twi22-explain-card img{width:100%;height:100%;min-height:174px;object-fit:cover;object-position:center}.twi22-explain-text{padding:17px 16px 17px 0;display:flex;flex-direction:column;gap:8px}.twi22-explain-text h3{font:700 clamp(17px,1.6vw,22px)/1.14 Georgia,serif;margin:0;color:#062d43}.twi22-explain-text p{font-size:12px;line-height:1.55;margin:0;color:#476378}.twi22-eyebrow{font:700 10px/1.1 sans-serif;color:#008b9a;letter-spacing:1.3px}.twi22-read{font-size:12px;font-weight:700;color:#008f98;margin-top:auto}
.twi22-visual-lab{background:linear-gradient(112deg,#022033,#07334c 60%,#0c4059);padding:34px 0 40px;color:#f5fdff;border-top:1px solid #3c7085;border-bottom:1px solid #3c7085}.twi22-lab-inner{display:grid;grid-template-columns:1.15fr minmax(260px,.85fr);align-items:center;gap:28px;border:1px solid #4e8295;border-radius:16px;padding:25px;background:linear-gradient(110deg,#062a42,#0b3548aa);box-shadow:0 12px 40px #0003}.twi22-lab-kicker{display:block;color:#49e5e4;font:700 11px/1.3 sans-serif;letter-spacing:2px;margin-bottom:15px}.twi22-lab-copy h2{font:700 clamp(28px,3.3vw,45px)/1.1 Georgia,serif;color:#fff;margin:0 0 15px;max-width:600px}.twi22-lab-copy>p{font-size:14px;line-height:1.65;color:#d1e3eb;max-width:610px}.twi22-lab-actions{display:flex;flex-wrap:wrap;gap:10px;margin:19px 0}.twi22-lab-actions .twi2-btn{font-size:12px}.twi22-lab-method{opacity:.86;font-size:11px!important;max-width:590px}.twi22-lab-video{max-width:470px;margin:auto;width:100%;position:relative}.twi22-lab-video video{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:contain;background:#001522;border:1px solid #368ca1;border-radius:10px}.twi22-video-caption{display:block;text-align:center;font-size:11px;color:#bfe9ed;margin:8px auto 0}
@media(max-width:950px){.twi22-explain-grid{grid-template-columns:1fr}.twi22-lab-inner{grid-template-columns:1fr 1fr;gap:15px}.twi22-explain-card img{min-height:155px}}
@media(max-width:700px){.twi22-explain{padding:25px 0}.twi22-explain-card{grid-template-columns:38% 1fr;gap:12px}.twi22-explain-card img{min-height:140px}.twi22-explain-text{padding:12px 9px 12px 0;gap:6px}.twi22-explain-text h3{font-size:17px}.twi22-explain-text p{font-size:11px}.twi22-lab-inner{display:flex;flex-direction:column;padding:15px}.twi22-lab-copy h2{font-size:30px}.twi22-lab-video{max-width:420px}.twi22-visual-lab{padding:20px 0}}
@media(max-width:390px){.twi22-explain-card{grid-template-columns:1fr}.twi22-explain-card img{aspect-ratio:16/9;min-height:0;height:auto}.twi22-explain-text{padding:8px 14px 14px}}

/* TWI v2.2.1: phone-first homepage. Desktop layout unchanged. */
@media(max-width:760px){
 .twi2-home,.twi22-explain,.twi22-visual-lab{max-width:100%;overflow-x:clip}
 .twi2-hero{padding:34px 8px 38px!important;min-height:0!important}
 .twi2-hero h1{font-size:clamp(30px,8vw,40px)!important;line-height:1.13!important;letter-spacing:-.5px!important;overflow-wrap:break-word}
 .twi2-hero p{font-size:13px!important;max-width:100%}
 .twi2-kicker{font-size:9px!important;letter-spacing:1.1px!important}
 .twi2-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
 .twi2-buttons .twi2-btn{padding:10px 8px;font-size:11px;min-width:0;text-align:center}
 .twi2-forecast{display:block!important;margin-top:0!important;padding:14px 12px!important;min-width:0!important;border-radius:10px!important}
 .twi2-forecast-label{padding-bottom:10px!important;margin-bottom:10px!important}
 .twi2-cities{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;width:100%!important;gap:6px!important;padding-bottom:10px!important;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .twi2-cities button{flex:0 0 90px!important;min-width:90px!important;min-height:87px!important;padding:8px 4px!important;scroll-snap-align:start;font-size:12px!important}
 .twi2-dashboard,.twi2-editorial-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 .twi2-map-panel{padding:14px 12px!important}
 .twi2-map-body{display:flex!important;flex-direction:column!important;gap:8px!important;min-height:0!important}
 .twi2-map-illustration.twi2-geography{width:100%!important;min-height:0!important;height:auto!important;aspect-ratio:1.9/1!important;background-size:contain!important;background-position:center!important}
 .twi2-map-title{font-size:8px!important;letter-spacing:.35px!important;max-width:72%}
 .twi2-corner-mark{font-size:7px!important;max-width:65%;text-align:right}
 .twi2-detail{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px 10px!important;min-width:0}
 .twi2-detail-metrics,.twi2-three-days{grid-column:1/-1!important}
 .twi2-detail-location{font-size:19px!important}.twi2-large-temperature{font-size:27px!important;text-align:right;margin:0!important}
 .twi2-conditions{grid-column:1/-1!important}.twi2-detail-metrics{margin-top:6px!important}
 .twi2-three-days{gap:6px!important}.twi2-day{min-width:0!important}
 .twi2-support-inner{padding:20px!important}.twi2-support h2{font-size:28px!important}
 .twi2-editorial-row .twi2-panel{padding:16px 13px!important}
 .twi2-editorial-feature{grid-template-columns:minmax(95px,38%) minmax(0,1fr)!important;gap:10px!important}
 .twi2-editorial-feature img{height:110px!important;object-fit:cover!important}
 .twi2-editorial-feature strong,.twi2-news-item strong{font-size:14px!important;overflow-wrap:anywhere}
 .twi2-shortcuts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important}
 .twi2-shortcuts a{font-size:11px!important;padding:13px 7px!important;min-width:0!important;overflow-wrap:anywhere;border-bottom:1px solid #37596b}
 .twi2-shortcuts a+a{border-left:0!important}.twi2-shortcuts a:nth-child(even){border-left:1px solid #37596b!important}
 .twi22-explain-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 .twi22-explain-card{grid-template-columns:minmax(110px,40%) minmax(0,1fr)!important;gap:10px!important}
 .twi22-explain-card img{width:100%!important;height:100%!important;min-height:140px!important;object-fit:cover!important}
 .twi22-explain-text{padding:12px 10px 12px 0!important;min-width:0!important}
 .twi22-explain-text h3{font-size:clamp(16px,4.1vw,19px)!important;overflow-wrap:anywhere}
 .twi22-lab-inner{display:flex!important;flex-direction:column!important;gap:12px!important;padding:15px!important}
 .twi22-lab-copy,.twi22-lab-video{width:100%!important;min-width:0!important}
 .twi22-lab-copy h2{font-size:clamp(26px,7vw,34px)!important;overflow-wrap:anywhere}
 .twi22-lab-actions{gap:9px!important}.twi22-lab-actions .twi2-btn{font-size:11px!important;padding:10px 12px!important}
 .twi22-lab-video video{max-width:100%!important;height:auto!important;aspect-ratio:1!important;object-fit:contain!important}
}
@media(max-width:520px){
 /* Seven cities remain in the scrollable selector; map labels would overlap on small phones.
    Show location dots for other cities and a readable label for the selected city. */
 .twi2-location-pin{font-size:0!important;line-height:0!important;min-width:15px!important;width:15px!important;height:15px!important;padding:0!important;border-radius:50%!important;border-width:2px!important;overflow:visible!important}
 .twi2-location-pin span{display:none!important}
 .twi2-location-pin.active{font-size:9px!important;line-height:1.15!important;min-width:0!important;width:auto!important;height:auto!important;border-radius:6px!important;padding:4px 5px!important;z-index:3!important}
 .twi2-location-pin.active span{display:block!important;font-size:9px!important}
}
@media(max-width:375px){
 .twi2-hero h1{font-size:29px!important}
 .twi2-buttons{grid-template-columns:1fr!important}
 .twi22-explain-card{grid-template-columns:1fr!important}
 .twi22-explain-card img{height:auto!important;aspect-ratio:16/9!important;min-height:0!important}
 .twi22-explain-text{padding:12px 14px 15px!important}
}
