/* Only original cropped PNG artwork supplies UI appearance, as on slide 24. */
@font-face{font-family:CampaignOswald;src:url('../../assets/experience/fonts/oswald-vietnamese.woff2') format('woff2');font-style:normal;font-weight:200 700;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:CampaignOswald;src:url('../../assets/experience/fonts/oswald-latin.woff2') format('woff2');font-style:normal;font-weight:200 700;font-display:swap}
.teaching-slide:is(.slide-tay-nguyen,.slide-hue-danang,.slide-hcm-map),body.lesson-presenting .teaching-slide:is(.slide-tay-nguyen,.slide-hue-danang,.slide-hcm-map){container-type:size;padding:clamp(10px,2cqh,22px) 3%;background:#091e18 url('../../assets/experience/allied/map-background.png') center/cover no-repeat;color:#dfbb6c;overflow:hidden;border:1px solid #a6955d;border-radius:6px}
.teaching-slide .campaign-stage{position:relative;display:flex;flex:1;flex-direction:column;gap:clamp(12px,2cqh,22px);width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;overflow:visible;isolation:isolate;font-family:CampaignOswald,var(--sans)}
.campaign-stage::before,.campaign-stage::after{display:none!important}
.campaign-header{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,2fr);gap:3%;align-items:center;flex:none;min-width:0}
.teaching-slide .campaign-title{margin:0;min-width:0;padding:0;width:100%;line-height:0}
.campaign-title img{display:block;width:100%;height:auto;margin:0;max-height:125px;object-fit:contain;object-position:left center;border:0;border-radius:0}
.campaign-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.campaign-tabs button{display:block;min-width:0;width:100%;height:auto;aspect-ratio:318/110;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}
.campaign-tabs button img{display:block;width:100%;height:100%;max-height:none;margin:0;object-fit:contain;border:0;border-radius:0}
.campaign-main{display:grid;grid-template-columns:minmax(0,2.95fr) minmax(220px,1fr);gap:22px;min-height:0;flex:1;align-items:center;align-self:center}
.campaign-map-frame{position:relative;min-width:0;width:100%;padding:0;max-height:100%;border:14px solid transparent;border-image:url('../../assets/experience/campaign-reference/map-frame.png') 32 stretch;border-radius:0;background:transparent;background-clip:padding-box;overflow:hidden}
.campaign-stage :is(.tn-viewport,.hd-viewport,.hcm-viewport){position:relative;inset:auto;display:block;flex:none;width:100%;height:auto;aspect-ratio:16/9;min-height:0;margin:0;border:0;border-radius:0;overflow:hidden;clip-path:none!important;background:#122b22}
.campaign-map-hint{position:relative;z-index:3;margin:0!important;padding:3px 4px!important;min-height:20px;background:#17241d;color:#d3b36e!important;font:400 clamp(10px,1cqw,15px)/1.3 CampaignOswald,var(--sans)!important;text-align:center}
.campaign-timeline{position:relative;display:flex;flex-direction:column;align-self:stretch;justify-content:center;min-width:0;min-height:0;padding:clamp(10px,1.2cqw,18px);border:14px solid transparent;border-image:url('../../assets/experience/campaign-reference/timeline-frame.png') 32 stretch;border-radius:0;background:#243026 url('../../assets/experience/campaign-reference/panel-texture.png') center/cover;background-clip:padding-box;overflow:hidden}
.campaign-rail{position:absolute;top:15px;bottom:42px;left:clamp(28px,3.2cqw,49px);width:clamp(26px,2.9cqw,44px);background:url('../../assets/experience/campaign-reference/rail-top.png') center top/100% 25px no-repeat,url('../../assets/experience/campaign-reference/rail-bottom.png') center bottom/100% 18px no-repeat,url('../../assets/experience/campaign-reference/rail-middle.png') center/100% auto repeat-y;pointer-events:none}
.campaign-stage :is(.tn-controls,.hd-controls,.hcm-controls){position:relative;inset:auto;display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(15px,4cqh,44px);width:100%;margin:0;padding:25px 0 0;transform:none;flex:1;min-height:0}
.campaign-stage button.campaign-step{position:relative;display:grid;grid-template-columns:clamp(58px,6.2cqw,98px) minmax(0,1fr);align-items:center;gap:clamp(10px,1cqw,17px);width:100%;height:auto;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:left;transform:none;color:#c7ad72;cursor:pointer;font-family:CampaignOswald,var(--sans)}
.campaign-step .campaign-medallion{display:block;width:100%;height:auto;aspect-ratio:120/117;object-fit:contain;margin:0;max-height:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;filter:brightness(.75);opacity:1}
.campaign-step .campaign-step-text{padding:0;color:inherit;font:400 clamp(15px,1.4cqw,25px)/1.35 CampaignOswald,var(--sans)}
.campaign-stage button.campaign-step[aria-pressed=true]{color:#efcb85;box-shadow:none;background:transparent}.campaign-step[aria-pressed=true] .campaign-medallion{filter:brightness(1.08);opacity:1}
.campaign-stage button.campaign-reset{width:100%;height:auto;min-height:32px;padding:2px 0;margin-top:auto;border:0;border-radius:0;background:transparent;color:#cbb77d;box-shadow:none;font:400 13px/1.4 CampaignOswald,var(--sans);text-align:right;text-decoration:underline;text-underline-offset:3px}
.campaign-stage :is(.tn-controls,.hd-controls,.hcm-controls) button::after{display:none!important}
.campaign-journal{display:grid;grid-template-columns:minmax(160px,.9fr) minmax(0,3.5fr);align-items:center;gap:18px;flex:none;min-height:76px;padding:3px 10px;border:13px solid transparent;border-image:url('../../assets/experience/campaign-reference/journal-frame.png') 27 stretch;border-radius:0;background:#243026 url('../../assets/experience/campaign-reference/panel-texture.png') center/cover;background-clip:padding-box;box-shadow:none}
.campaign-journal>div{min-width:0;padding:0 8px 0 0}.campaign-journal>div img{display:block;width:100%;height:auto;margin:0;max-height:28px;object-fit:contain;object-position:left center;border:0;border-radius:0}.campaign-journal time{display:block;color:#d0b276;font:400 clamp(12px,1.3cqw,22px)/1.4 CampaignOswald,var(--sans);margin-top:3px}
.teaching-slide .campaign-journal p{margin:0;color:#d8b978;font:400 clamp(15px,1.5cqw,25px)/1.35 CampaignOswald,var(--sans)}
.campaign-stage>:is(.tn-title,.tn-caption,.tn-map-credit,.hd-heading,.hd-status,.hcm-status){display:none!important}
.campaign-stage .hd-legend{position:absolute;left:10px;bottom:10px;top:auto;right:auto;padding:5px 8px;background:#14271ed9;border-radius:0;z-index:2}.campaign-stage .hd-legend p{margin:0;color:#f0dfae;font-size:clamp(9px,1cqw,14px)}
.campaign-stage .hcm-world{background-image:url('../../assets/experience/hcm-relief-wide.png')}.campaign-stage .hcm-viewport{touch-action:none}.campaign-stage .hcm-info{left:69.17%;top:43.7%}.campaign-stage .hcm-map-title{display:none}.campaign-stage .hcm-legend{transform:translate(-145px,0)}
.campaign-stage button:focus-visible{outline:2px solid #ffe6a4;outline-offset:3px}.campaign-tabs button:hover img{filter:brightness(1.12)}.campaign-step:hover .campaign-medallion{filter:brightness(1.15)}
@media(max-width:900px){.teaching-slide:is(.slide-tay-nguyen,.slide-hue-danang,.slide-hcm-map),body.lesson-presenting .teaching-slide:is(.slide-tay-nguyen,.slide-hue-danang,.slide-hcm-map){container-type:inline-size;overflow:auto;padding:16px 3%}.teaching-slide .campaign-stage{height:auto;min-height:100%;gap:18px}.campaign-header{grid-template-columns:1fr;gap:16px}.campaign-title img{width:min(100%,410px);max-height:none}.campaign-tabs{gap:5px}.campaign-tabs button{min-height:0;aspect-ratio:318/110}.campaign-main{grid-template-columns:1fr;gap:15px;flex:none}.campaign-map-frame{border-width:10px;max-height:none}.campaign-timeline{padding:12px;border-width:10px}.campaign-stage :is(.tn-controls,.hd-controls,.hcm-controls){gap:16px;padding:10px 0 0}.campaign-stage button.campaign-step{grid-template-columns:76px minmax(0,1fr)}.campaign-rail{left:34px;width:34px;top:16px;bottom:45px}.campaign-step .campaign-step-text{font-size:21px}.campaign-journal{grid-template-columns:1fr;padding:5px 7px;gap:9px;min-height:110px;border-width:11px}.campaign-journal>div{padding:0}.campaign-journal>div img{width:220px;max-height:24px}.campaign-journal time{font-size:16px}.teaching-slide .campaign-journal p{font-size:20px}.campaign-map-hint{font-size:10px!important}.campaign-stage .hd-legend p{font-size:9px}}
@media(max-height:600px) and (min-width:901px){.teaching-slide:is(.slide-tay-nguyen,.slide-hue-danang,.slide-hcm-map){overflow:auto;container-type:inline-size}.teaching-slide .campaign-stage{min-height:580px;height:auto}}
@media(max-width:600px){.campaign-tabs{grid-template-columns:1fr;gap:8px}.campaign-tabs button{width:min(100%,380px);justify-self:center}.campaign-title img{max-width:380px;margin-inline:auto}}
@media(prefers-reduced-motion:reduce){.campaign-step,.campaign-tabs button{transition:none}}

/* Scale the whole composition together. The map owns the available height;
   header and journal follow the board instead of spanning the outer slide. */
@media(min-width:901px){
 .teaching-slide .campaign-stage{--campaign-board:100%;gap:8px;justify-content:center;align-items:center}
 .campaign-header,.campaign-main,.campaign-journal{width:var(--campaign-board);max-width:100%;align-self:center}
 .campaign-header{height:calc(var(--campaign-board)*.075);min-height:0;grid-template-columns:minmax(0,.82fr) minmax(0,2fr);grid-template-rows:minmax(0,1fr);gap:2.5%}
 .teaching-slide .campaign-title{height:100%;min-height:0;max-height:100%}.campaign-title img{height:100%;min-height:0;max-height:100%;object-fit:contain}
 .campaign-tabs{height:100%;min-height:0;max-height:100%;gap:8px;grid-template-rows:minmax(0,1fr)}.campaign-tabs button{height:100%;min-height:0;max-height:100%;aspect-ratio:auto}.campaign-tabs button img{height:100%;max-height:100%;object-fit:contain}
 .campaign-main{flex:none;gap:14px;grid-template-columns:minmax(0,2.95fr) minmax(0,1fr)}
 .campaign-map-frame{border-width:10px;max-height:none}.campaign-map-hint{min-height:18px;padding:2px!important;font-size:11px!important}
 .campaign-timeline{container-type:inline-size;padding:10px;border-width:10px;overflow:auto}
 .campaign-stage :is(.tn-controls,.hd-controls,.hcm-controls){flex:1;gap:18px;padding:10px 0 0;justify-content:flex-start}
 .campaign-stage button.campaign-step{flex-shrink:0;grid-template-columns:minmax(52px,34%) minmax(0,1fr);gap:10px;align-items:center}
 .campaign-step .campaign-medallion{width:100%;max-width:88px;justify-self:center}
 .campaign-step .campaign-step-text{font-size:clamp(15px,9cqw,23px);line-height:1.32;overflow-wrap:normal}
 .campaign-rail{left:calc(10px + (100% - 20px)*.17 - 16px);top:18px;bottom:37px;width:32px}
 .campaign-stage button.campaign-reset{flex-shrink:0;min-height:24px;font-size:11px}
 .campaign-journal{container-type:inline-size;min-height:0;grid-template-columns:minmax(135px,21%) minmax(0,1fr);gap:12px;padding:3px 7px;border-width:7px}
 .campaign-journal>div img{max-height:18px}.campaign-journal time{font-size:clamp(11px,1.5cqw,17px);line-height:1.2;margin-top:2px}
 .teaching-slide .campaign-journal p{font-size:clamp(14px,1.8cqw,20px);line-height:1.25}
}
/* Equal-height milestone cells consume the panel above its fixed reset row. */
.campaign-stage .campaign-timeline :is(.tn-controls,.hd-controls,.hcm-controls){display:grid;grid-template-rows:repeat(var(--campaign-step-count),minmax(min-content,1fr)) auto;gap:0;padding-top:0}
.campaign-stage .campaign-timeline button.campaign-step{align-self:center}
.campaign-stage .campaign-timeline button.campaign-reset{align-self:end;margin-top:8px}
