:root{font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;color:#17333e;background:#f5f3ed;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
button{font:inherit;cursor:pointer}
header{display:flex;align-items:center;justify-content:space-between;padding:22px 4vw;border-bottom:1px solid #d6dedb;gap:20px}
.brand{font-size:23px;letter-spacing:.08em;font-weight:700;white-space:nowrap}
.brand span{font-size:16px;margin-left:10px;font-weight:400}
nav{display:flex;gap:6px}
button{border:0;background:transparent;color:#50646c;padding:10px 16px;border-radius:6px;font-size:15px}
button:hover{background:#e4e9e5}
button:focus-visible{outline:3px solid #e5a044;outline-offset:3px}
nav button[aria-current=page]{background:#17333e;color:white}
#full{border:1px solid #bac9c6}
main{max-width:1600px;margin:auto;padding:30px 5vw 20px}
.heading{position:relative}
.eyebrow{font-size:15px;color:#087a67;letter-spacing:.13em;font-weight:600}
h1{font-size:clamp(30px,3.1vw,52px);line-height:1.22;letter-spacing:-.035em;margin:12px 0 13px;font-weight:650}
h1 br{display:none}
.heading>p{font-size:clamp(17px,1.4vw,22px);margin:0;line-height:1.6;color:#52686e}
.content{display:grid;grid-template-columns:1.4fr 1fr;gap:4vw;align-items:center;margin-top:24px;min-height:360px}
figure{margin:0}
img{display:block;width:100%;max-height:48vh;object-fit:contain}
figcaption{font-size:12px;color:#6b7b80;margin-top:8px}
article h2{font-size:clamp(20px,1.65vw,27px);margin:0 0 7px;font-weight:600}
article p{font-size:clamp(17px,1.3vw,21px);line-height:1.6;margin:0;color:#51666c}
.points article{display:flex;gap:19px;padding:17px 0;border-bottom:1px solid #d5deda}
.points article:last-child{border:0}
.points article>span{font-family:Georgia,serif;font-size:25px;color:#087a67;padding-top:3px}
.roles article{display:grid;grid-template-columns:135px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #d5deda}
.roles h2{font-size:20px;color:#087a67;margin:0;line-height:1.6}
.roles p{font-size:17px}
.careers{grid-template-columns:1.15fr 1fr}
.takeaway{border-top:2px solid #17333e;margin-top:24px;padding:18px 0 0;display:flex;align-items:baseline;gap:22px}
.takeaway small{font-size:14px;color:#087a67;white-space:nowrap}
.takeaway strong{font-size:clamp(17px,1.45vw,23px);line-height:1.55;font-weight:550}
footer{display:flex;justify-content:space-between;align-items:center;max-width:1600px;margin:auto;padding:6px 5vw 18px;color:#677b80;font-size:14px}
footer>div{display:flex;align-items:center;gap:15px}
footer button{font-size:22px;border:1px solid #cad5d2;padding:5px 14px}
button:disabled{opacity:.3;cursor:default}
#count{font-variant-numeric:tabular-nums;min-width:65px;text-align:center}
[hidden]{display:none!important}
@media(min-width:1000px) and (min-height:900px){main{padding-top:48px}
.content{margin-top:40px}
.takeaway{margin-top:40px}
}
@media(max-width:900px){header{flex-wrap:wrap;padding:15px 5vw}
.brand{font-size:20px}
nav{order:3;width:100%}
nav button{flex:1;padding:10px 6px;font-size:14px}
.content,.careers{grid-template-columns:1fr;gap:15px}
img{max-height:none}
.heading>p{font-size:17px}
h1 br{display:block}
main{padding-top:24px}
.roles article{grid-template-columns:120px 1fr}
.takeaway{display:block}
.takeaway small{display:block;margin-bottom:8px}
.hint{display:none}
footer{padding-top:20px}
}
@media(prefers-reduced-motion:no-preference){.slide:not([hidden]){animation:appear .22s ease-out}
@keyframes appear{from{opacity:.6;transform:translateY(6px)}
to{opacity:1;transform:none}
}
}
@media print{header,footer{display:none}
.slide[hidden]{display:block!important}
.slide{break-after:page}
main{padding:0}
.content{grid-template-columns:1.2fr 1fr}
img{max-height:45vh}
}

/* 04: company growth routes, learning and a shared future */

/* Internal vision: our future work, shared capabilities and company support. */
.engineer-future{display:grid;grid-template-columns:1fr 1.04fr;gap:28px;margin-top:28px;align-items:start}
.future-work,.capability-panel{min-width:0}
.work-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:13px;flex-wrap:wrap}
.work-heading h2{font-size:1.125rem;font-weight:600;margin:0}
.work-heading small{color:#687d80;font-size:.8125rem}
.work-scenes{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.work-scenes>li{display:grid;grid-template-columns:31% 1fr;gap:18px;align-items:start;padding-bottom:14px;border-bottom:1px solid #cbd8d3}
.work-scenes>li:last-child{padding-bottom:0;border:0}
.scene-art{position:relative;aspect-ratio:4/3;overflow:hidden;background:#c5d4cc}
.scene-art img{position:absolute;width:200%;height:200%;max-width:none;max-height:none;object-fit:fill;left:0;top:0}
.work-scenes .scene-art{border-radius:8px;margin-top:5px}
.scene-demo img{top:-100%}
.scene-research img{left:-100%;top:-100%}
.work-copy>span{color:#08705c;font-size:.875rem;font-weight:550}
.work-copy h3{font-size:1.25rem;line-height:1.5;margin:3px 0 6px;font-weight:600}
.work-copy p{font-size:1rem;line-height:1.65;color:#52686e;margin:0}
.work-copy button,.capability-note button{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#08705c;font-size:.875rem;padding:8px 0;margin-top:3px;min-height:44px;text-align:left;width:100%}
.work-copy button:hover{background:#e4e9e5}
.capability-panel{border:1px solid #c2d3c9;border-radius:12px;background:#eaf0e8;padding:22px 20px 12px}
.capability-panel h2{font-size:clamp(22px,1.8vw,28px);font-weight:600;line-height:1.4;margin:8px 0}
.capability-panel>p{font-size:1rem;color:#52686e;line-height:1.6;margin:0}
.capability-hex{display:block;width:100%;height:auto;margin:6px 0;overflow:visible}
.hex-grid{fill:none;stroke:#9cbaaa;stroke-width:1.2}
.hex-grid path:nth-child(2){stroke-dasharray:4 5;opacity:.7}
.hex-core{fill:#17333e}
.hex-dots{fill:#087a67;stroke:#eaf0e8;stroke-width:3}
.hex-center{fill:#f2f7ef;text-anchor:middle;font-size:16px;font-weight:600}
.hex-labels{text-anchor:middle;fill:#17333e;font-weight:600;font-size:20px}
.hex-labels tspan{fill:#52686e;font-weight:400;font-size:17px}
.capability-list{display:none;list-style:none;margin:16px 0;padding:0}
.capability-list li{padding:10px 0;border-top:1px solid #c2d3c9;font-size:1rem;line-height:1.6}
.capability-list strong,.capability-list span{display:block}
.capability-list span{color:#52686e}
.capability-note{border-top:1px solid #c2d3c9;padding-top:13px;font-size:1rem;line-height:1.65}
.capability-note strong{font-weight:600}
.capability-note>span{display:block;color:#52686e;font-size:.875rem}
.team-support{display:grid;grid-template-columns:1fr 2.3fr;gap:24px;align-items:center;padding:22px 25px;margin-top:24px;background:#17333e;color:#f1f6ef;border-radius:10px}
.team-support>div>span{font-size:.875rem;color:#b9d5c9}
.team-support h2{font-size:1.125rem;line-height:1.5;font-weight:550;margin:5px 0 0}
.team-support ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:0;margin:0}
.team-support li{font-size:1rem;line-height:1.6;padding-left:18px;border-left:1px solid #587d7d}
.team-support strong{display:block;font-weight:550}
.team-support li>span{display:block;color:#c3d9d0;font-size:.875rem;margin-top:4px}
.atlas-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:34px}
.atlas-heading h2{font-size:clamp(23px,2vw,30px);font-weight:600;line-height:1.35;margin:7px 0 0}
.atlas-heading>p{font-size:.875rem;color:#66776f;line-height:1.6;margin:0}
.atlas-heading+.growth-map{margin-top:16px}
.growth-route{scroll-margin-top:24px}
@media(max-width:1200px){
.engineer-future{grid-template-columns:1fr}
.capability-panel{display:grid;grid-template-columns:1fr 1.3fr;column-gap:28px;align-items:start}
.capability-panel>.eyebrow,.capability-panel>h2,.capability-panel>p,.capability-note{grid-column:1}
.capability-hex{grid-column:2;grid-row:1/6;max-width:650px;justify-self:center;margin:0}
.capability-note{margin-top:20px}
.work-scenes{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.work-scenes>li{display:flex;flex-direction:column;gap:12px;border:0;padding:0}
.work-scenes .scene-art{width:100%;margin:0}
.work-copy{display:flex;flex-direction:column;flex:1}
.work-copy button{margin-top:auto}
.team-support{grid-template-columns:1fr}
}
@media(max-width:1100px){
.capability-panel{display:block}
.capability-hex{max-width:650px;margin:12px auto}
.capability-note{margin-top:12px}
}
@media(max-width:700px){
.atlas-heading{display:block}
.atlas-heading>p{margin-top:10px}
.work-scenes{grid-template-columns:1fr}
.work-scenes>li{display:grid;grid-template-columns:32% 1fr;gap:16px;border-bottom:1px solid #cbd8d3;padding-bottom:16px}
.work-copy button{margin-top:4px}
.capability-panel{display:block}
.capability-hex{max-width:600px;margin:12px auto}
.capability-note{margin-top:12px}
.team-support ul{grid-template-columns:1fr;gap:14px}
.team-support{gap:18px;padding:22px}
}
@media(max-width:540px){
.work-scenes>li{display:flex;gap:14px}
.work-scenes .scene-art{max-width:100%}
.capability-hex{display:none}
.capability-list{display:block}
}
@media print{
.engineer-future{display:block}
.work-scenes{grid-template-columns:repeat(3,minmax(0,1fr));break-inside:avoid}
.work-scenes>li{display:flex;flex-direction:column}
.work-copy button,.capability-note button{display:none}
.capability-panel{display:block;margin-top:20px;break-inside:avoid}
.capability-hex{display:block;max-width:540px;margin:auto}
.capability-list{display:none}
.team-support{print-color-adjust:exact;break-inside:avoid}
.atlas-heading{break-before:page;padding-top:20px}
}
.future{--map-columns:1.12fr 1.02fr 1.02fr 1.16fr}
.map-kicker{display:flex;justify-content:space-between;align-items:center;gap:16px}
.map-version{color:#687d80;font-size:.8125rem;white-space:nowrap}
.future-heading h1{font-size:clamp(30px,2.85vw,46px);margin:9px 0}
.future-heading>p{font-size:clamp(16px,1.25vw,20px)}
.growth-map{margin-top:22px;border:1px solid #cbd8d3;border-radius:12px;overflow:hidden;background:#fcfbf7}
.map-columns,.growth-route summary{display:grid;grid-template-columns:var(--map-columns)}
.map-columns{background:#e6ece8}
.map-columns>span{padding:13px 20px;font-size:.875rem;color:#48615e;display:flex;align-items:center;gap:9px}
.map-columns b{font-size:.75rem;border:1px solid #9bb2a9;border-radius:4px;padding:2px 5px;white-space:nowrap}
.map-columns .destination-label{background:#17333e;color:#e7f3ee}
.destination-label b{color:#bce0cf;border-color:#668d80}
.growth-route{border-top:1px solid #d5dfd8}
.growth-route summary{position:relative;cursor:pointer;list-style:none;min-height:105px;outline-offset:-3px}
.growth-route summary::-webkit-details-marker{display:none}
.growth-route summary::marker{content:""}
.growth-route summary:focus-visible{outline:3px solid #cb8530;z-index:1}
.growth-route summary:hover,.growth-route[open] summary{background:#edf3ed}
.growth-route summary>span{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:15px 20px;gap:5px}
.growth-route summary strong{font-size:1rem;font-weight:600;line-height:1.5}
.growth-route summary .route-start{position:relative;padding-left:53px;gap:3px}
.route-index{position:absolute;left:14px;top:19px;display:grid;place-items:center;width:27px;height:27px;border:1px solid #82a698;border-radius:50%;color:#087a67;font-size:.8125rem;font-variant-numeric:tabular-nums;background:#fcfbf7}
.growth-route summary .route-start>strong{font-size:1.0625rem}
.route-baseline{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;color:#56706a;font-size:.875rem;line-height:1.5}
.route-state{display:inline-block;font-size:.875rem;font-weight:500;white-space:nowrap}
.route-state::after{content:"・"}
.route-state.moving{color:#08705c}
.route-state.starting{color:#956119}
.route-expand{font-size:.8125rem;color:#607774;margin-top:2px}
.route-expand::before{content:"＋ ";color:#08705c}
.growth-route[open] .route-expand::before{content:"－ "}
.route-obstacle>span:not(.mobile-label){font-size:.875rem;line-height:1.5;color:#63736f}
.growth-route summary .route-skills{position:relative;border-left:1px dashed #c5d4cc}
.route-skills strong{color:#17634e}
.route-skills::after{content:"";position:absolute;right:-5px;top:calc(50% - 4px);width:8px;height:8px;border-top:1px solid #bad7c8;border-right:1px solid #bad7c8;transform:rotate(45deg);z-index:1}
.growth-route summary .route-destination{background:#17333e;color:#f3f8f3;padding-left:24px}
.growth-route summary:hover .route-destination,.growth-route[open] .route-destination{background:#204a51}
.growth-route summary .route-destination>strong{font-size:1.0625rem}
.route-destination>span:not(.mobile-label){font-size:.875rem;line-height:1.5;color:#bcd4cd}
.route-detail{display:grid;grid-template-columns:1.1fr 1.1fr .9fr;gap:26px;padding:23px 25px 23px 53px;background:#edf2eb;border-top:1px solid #c9d7cd}
.route-detail h2{font-size:.875rem;color:#08705c;font-weight:600;margin:0 0 8px}
.route-detail p{font-size:1rem;line-height:1.7;margin:0;color:#29463f}
.route-detail small{display:block;font-size:.875rem;line-height:1.6;margin-top:9px;color:#61766f}
.map-foundation{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:15px}
.map-foundation p{margin:0;font-size:.875rem;line-height:1.6;color:#63766f}
.map-foundation strong{color:#29463f;font-weight:550}
.map-foundation p>span{display:block}
.map-key{display:flex;flex-wrap:wrap;gap:6px 15px;font-size:.8125rem;color:#60736c}
.map-key>span::before{content:"";display:inline-block;width:14px;height:3px;margin:0 5px 3px 0;background:#08705c}
.map-key>span:last-child::before{background:#956119}
.future-takeaway{margin-top:16px;padding-top:14px;gap:16px}
.future-takeaway strong{font-size:clamp(17px,1.45vw,23px)}
.map-horizon{font-size:.8125rem;color:#697970;line-height:1.6;margin:8px 0 0}
.growth-route summary .mobile-label{display:none}

@media(max-width:1200px) and (min-width:1001px){
.future{--map-columns:1.1fr 1fr 1fr 1.08fr}
.map-columns>span{padding:12px;font-size:.8125rem;gap:6px}
.growth-route summary>span{padding:14px 12px}
.growth-route summary .route-start{padding-left:43px}
.route-index{left:9px;width:25px;height:25px}
.growth-route summary .route-destination{padding-left:16px}
}
@media(max-width:1050px){
body>header{flex-wrap:wrap;padding:15px 5vw}
.brand{font-size:20px}
nav{order:3;width:100%;overflow-x:auto}
nav button{flex:1;min-width:max-content;padding:10px 9px;font-size:14px}
}
@media(max-width:1000px){
.map-kicker{align-items:flex-start}
.map-version{font-size:.75rem}
.map-columns{display:none}
.growth-map{border:0;background:transparent;border-radius:0;overflow:visible}
.growth-route{border:1px solid #cbd8d3;border-radius:10px;margin-bottom:14px;overflow:hidden;background:#fcfbf7}
.growth-route summary{grid-template-columns:1fr 1fr}
.growth-route summary .route-start{grid-column:1/-1;padding:16px 20px 14px 53px;border-bottom:1px solid #d5dfd8}
.growth-route summary .route-obstacle,.growth-route summary .route-skills{justify-content:flex-start}
.growth-route summary .route-destination{grid-column:1/-1;padding:16px 20px}
.growth-route summary .mobile-label{display:block;font-size:.875rem;color:#72857b;margin-bottom:2px}
.growth-route summary .route-destination>.mobile-label{color:#adccbd}
.route-skills::after{display:none}
.route-detail{grid-template-columns:1fr;padding:22px 20px;gap:20px}
.map-foundation{display:block}
.map-key{margin-top:10px}
.future-takeaway{display:block}
.future-takeaway small{display:block;margin-bottom:6px}
}
@media(max-width:480px){
.map-kicker{flex-wrap:wrap;gap:4px}
.growth-route summary{grid-template-columns:1fr}
.growth-route summary .route-skills{border-left:0;border-top:1px dashed #d5dfd8;padding-top:14px}
.growth-route summary .route-obstacle{padding-bottom:14px}
}
@media print{
.map-columns{display:grid}
.growth-map{border:1px solid #cbd8d3;border-radius:0}
.growth-route{border:0;border-top:1px solid #cbd8d3;margin:0;border-radius:0;break-inside:avoid}
.growth-route summary{display:grid;grid-template-columns:var(--map-columns);min-height:0}
.growth-route summary>span{padding:12px;grid-column:auto!important}
.growth-route summary .route-start{border:0;padding-left:42px}
.growth-route summary .route-destination{padding:12px}
.growth-route summary .mobile-label,.route-expand,.map-key,.map-version,.map-foundation p>span{display:none}
.route-detail{display:none!important}
.growth-route summary .route-destination,.map-columns .destination-label{background:#e3eee6;color:#17333e;print-color-adjust:exact}
.route-destination>span:not(.mobile-label){color:#48645a}
}
